What fields are used to determine duplicate CIs

Brian Lancaster
Tera Sage

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?

1 ACCEPTED SOLUTION

// 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());
}

View solution in original post

12 REPLIES 12

Its custom, as the service graph connector requires a discovery license.

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

RahulPriyadars_0-1676431705841.png

 

 

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

Richard Hine
Tera Guru
Tera Guru

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

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.

// 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());
}