Compare if a node in import set exist in network table . If it does not then stop the transform map
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2023 05:27 AM
I want to compare each nodeid from import set table with network table to see if the node is already present in it or no. If it is not then I want the transform map to not occur.
var importSetRow = new GlideRecord('u_maintenance_table_import_set');
importSetRow.addQuery('sys_import_set', currentImportSetSysID);
importSetRow.addEncodedQuery('sys_import_set.data_source.sys_idSTARTSWITH271d09e79795311046933dafe153afde');
importSetRow.query();
var shouldAbort = false;
//check if node or site present in database
var networknode = new GlideRecord('cmdb_ci_network_node');
networknode.query();
while (importSetRow.next()) {
var nodeID = importSetRow.u_node.toString();
gs.log("Checking for node: " + nodeID);
if (nodeExistsInNetworkNodeTable(networknode, nodeID)) {
shouldAbort = false;
}
else {
var s = "Node Not existing in database: " + nodeID;
addWorkNotes(s);
shouldAbort = true;
break
// Set shouldAbort to true if at least one node is not found
}
}
if (shouldAbort) {
ignore = true;
return; // Exit the script if shouldAbort is true
}
while (importSetRow.next()) {
var siteID = importSetRow.u_site_id.toString();
if (!siteExistsInNetworkNodeTable(networknode, siteID)) {
var s = "Site Not existing in database: " + siteID;
addWorkNotes(s);
shouldAbort = true;
break
// Set shouldAbort to true if at least one site is not found
}
}
if (shouldAbort) {
ignore = true;
return; // Exit the script if shouldAbort is true
}
function nodeExistsInNetworkNodeTable(networknode, nodeID) {
networknode.addQuery('name', nodeID);
networknode.query();
gs.log("Node Found"+nodeID)
return networknode.hasNext();
}
But this code checks only for one record. I am doing this in ON Start Script
0 REPLIES 0