CMDB relationships: Creating the right ones when CIs have the same name

martinrymell
Kilo Contributor

I am using Discovery to populate the majority of hardware items in the CMDB, and am looking to use Service Mapping to create relationships to Business Services in the future.   Until then the team is creating relationships manually and by loading relationship data to cmdb_rel_ci.

The challenge we face when loading relationship data is when Discovery has created CIs with the same name but different classes (e.g., a server and a virtual instance).   Loading Parent / Type / Child to cmdb_rel_ci where Parent = Business Service and Child = asset CI sometimes relates the virtual instance instead of the intended server to the Business Service.   It looks as though the transform map creates the relationship for the first CI it finds where multiple CIs have identical names, although I haven't proved that conclusively.

I've considered the solution of exporting the server CIs I want to relate to Business Services and their sys_ids to create a data load and transform map to map the sys_ids to report_parent_sys_id and report_parent_child id.   The team is going to test that, however it feels like a reactive and inelegant solution to the challenge.

Does anyone have any experience of this and any other potential solutions to share please?   Thank you.

1 ACCEPTED SOLUTION

James Hammond
Giga Guru

Hello Martin,



How are you importing the relationships into your CMDB? If it is via an Import set/Transform Map method then you could add the CI Class (Windows Server for example) to your spreadsheet and use that as part of the Transform to ensure you are only updating the relevant CI by matching against both the CI Name and the CI Class?


View solution in original post

12 REPLIES 12

I have the same exact issue, and unfortunately, I'm not following the proposed solution. Can you elaborate please? When I am using the destination table of cmdb_rel_ci, there is no field to use for "Class".

Thanks in advance.

Hello Scott,

Its been a year so forgive me for taking a minute to go back through the problem.

We were specifically looking at transform maps, and coding around the issue of duplicate names with different classes as part of the identifying the correct CI.

My suggestion was to add two columns, which contained the class name of the CI; so instead of just:

Server 1 - Used By - Server 2

I suggested:

Server 1 - Windows Server - Used By - Server 2 - Linux Server

You would then need to code a lookup of the cmdb using name & class as your source, and use that in the field maps instead of just selecting Parent or Child.

Hi James - 

Thanks for the quick reply; I sincerely appreciate it. 

If I'm understanding you correctly, there's a coding aspect to properly setting up the T-map. That being the case, I'm at a loss as I haven't done any coding / scripting in the ServiceNow platform. My recourse at this point is to make contact with a developer colleague who may be able to help.

Thanks again for the response!

 

Hi James,

Request you to elaborate if this solves this issue.

Looking forward to your sincere response.

 

Thanks,

Suchi

Scott Oglesby1
Giga Contributor

I have the same exact issue, and unfortunately, I'm not following the proposed solution. Can you elaborate please? When I am using the destination table of cmdb_rel_ci, there is no field to use for "Class".

Thanks in advance.