Compare if a node in import set exist in network table . If it does not then stop the transform map

Hm10
Tera Contributor

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