CMDB Import: Records missing discovery source attribute
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago - last edited 3 weeks ago
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"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
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.
