
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2023 04:25 PM
I'm finally working for a company that wants to setup a good CMDB. What fields does ServiceNow use to determine if a CI is duplicated. I have a couple duplicate CIs in IP Switch class but as far as I can tell the only duplicate field is name. Is that the only field used? Can you make it use other fields per class?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-14-2023 09:15 PM
// Add this code to the onBefore transform map script
// Call CMDB API to do Identification and Reconciliation of the current row
var cmdbUtil = new CMDBTransformUtil();
cmdbUtil.setDataSource('ImportSet');
cmdbUtil.identifyAndReconcileEnhanced(source, map, log);
ignore = true;
if (cmdbUtil.hasError()) {
var errorMessage = cmdbUtil.getError();
log.error(errorMessage);
} else {
log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());
log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-15-2023 07:55 AM
Its custom, as the service graph connector requires a discovery license.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-14-2023 07:28 PM
Solarwinds JDBC feed do not use IRE So these checks are not done while Creation or Update of CI.
You need to check the Transform Map in Service Now on what field Coalescing is done when Import is happening.
we have done similar setup for one of the engagements. SS of transform map
What is Coalescing--> The coalesce option allows you to update existing target table records when transforming import data. The coalesce option on a field map allows you to specify if the selected Target field should be used to coalesce on when import set records are transformed.
Regards
RP

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-14-2023 08:41 AM
Brian,
I would be looking at the duplicate records to check the discovery_source fields and then scrutinising why they might have been duplicated. Historically I have found when someone has manually loaded CIs prior to the automated feeds they can often have incorrect or dummy serial numbers, then when the auto feed comes along it creates issues.
If the duplicates are showing as recently discovered and via the same discovery_source then you need to be looking to see if the JDBC transform you are running them through is using the IRE (as others have said), I think this is likely where your issues lies.
One final thing of note, as I got caught out on this a while back, some of the bigger IP switches have line cards that have their own IP address but share a name with the host chassis so there is fun to be had if you encounter that!
Hope this helps a little,
Richard

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-14-2023 09:24 AM
I was told by the vendor that since we did not use discovery IRE could not be used. We use an import set so I'm guessing that what are showing as dups are because it is a bigger switch. I took a look at the setup by the vendor and they created a field called SolarWinds ID and that is what the import set Coalesces on. So is there a way to add that field so the CMDB Health dashboards will no longer see it as a duplicate. Right now it looks like it is just looking at name.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-14-2023 09:15 PM
// Add this code to the onBefore transform map script
// Call CMDB API to do Identification and Reconciliation of the current row
var cmdbUtil = new CMDBTransformUtil();
cmdbUtil.setDataSource('ImportSet');
cmdbUtil.identifyAndReconcileEnhanced(source, map, log);
ignore = true;
if (cmdbUtil.hasError()) {
var errorMessage = cmdbUtil.getError();
log.error(errorMessage);
} else {
log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());
log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());
}