Interested in a ServiceNow event built for developers? Registration for now[dev]26 is officially open!

CMDB Import: Records missing discovery source attribute

benjaminayo
Tera Contributor

Hello,

I am pretty new to CMDB (about 3 months), We have integrated BMC Remedy and moving legacy data into ServiceNow via integrationhub/transform map using a staging table. Someone imported 22k records into the alm_hardware and now they are on the cmdb hardware table without going through the IRE engine. I have tried to rerun the integrationhub and been getting a "null" error which I learned that there was literal "null" some fields. I went through and removed those but still same error.  When I run the transform map nothing is being updated

anyone have steps and script I can use to initiate the IRE via transform map and or best practices for a situatuion like this as it is now affecting the CMDB foundation metric "CIs ran through IRE"

1 REPLY 1

Not applicable

 Hi @benjaminayo , 

 

The Best practice is to go through OOB Integration Plugins if installed and withing the subscription. If you do not have any plugin configured to bring the data. the best way to use below script in transform map by creating an On before script and activating the CI to Asset Sync business rule. 

 

    // 1. Initialize the CMDB Transform Utility
    var cmdbUtil = new global.CMDBTransformUtil();
    
    // 2. Set your Discovery Source (replace 'ImportSet' with your choice if necessary)
    cmdbUtil.setDataSource('ImportSet');
    
    // 3. Call the IRE engine to handle Identification and Reconciliation rules
    cmdbUtil.identifyAndReconcileEnhanced(source, map, log);
    
    // 4. IMPORTANT: Set ignore to true to prevent the transform map from 
    // trying to create/update a duplicate record through standard processing
    ignore = true; 
    
    // 5. Handle success or errors from the IRE
    if (cmdbUtil.hasError()) {
        var errorMessage = cmdbUtil.getError();
        log.error('IRE Error: ' + errorMessage);
    } else {
        log.info('IRE Output Payload: ' + cmdbUtil.getOutputPayload());
        log.info('Successfully Processed CI SysID: ' + cmdbUtil.getOutputRecordSysId());
    }

 

Please Mark Answer as Correct if it resolves your Query.