- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2016 09:37 AM
I am new to SNC, and trying to figure out the CDM so that I can import the SNC CMDB into external database. I have imported all the CIs, CITypes, Properties and relations. However the problem I have is figuring out the direct parent of a CI as opposed to a parent defined with parent-child relationship.
For example, a Computer is direct parent of a Network Card Or a Disk Drive on itself. So we can call a Network Card or a Disk as a "component" of a Computer. Then there can be a DB2Instance running on it, which say is related as "dependent child" of a Computer with relationship definition, however its not a "Component" of a Computer.
So the question I have is, if there is a CI "A" in SNC cmdb_ci table, how to figure out which CIs from rest of the CIs are the "Components"and which ones are "dependent children" of "A"?
Please help.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-15-2016 07:40 AM
I am not aware of a document showing all the mappings for the CI types. From the Tables & Columns module within Service Now you can select a specific table and click the Schema Map button that will show you a graphical view of the table and its relationships to other tables. I know that isn't exactly what you are looking for, but it may help with some of the questions. Other than the software tables changing with the newer software asset management plugin (which has been around since, at least, the Calgary release) I'm not aware of any other CMDB tables that are no longer used, but I'm not a CMDB expert by any stretch of the imagination. My experience has been mostly from importing information from other sources into Service Now and our information is far from complete. I always want what is in the CMDB to be accurate so we have been careful with what we are import, but I know we don't use it to its fullest potential.
-Steve
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2016 10:22 AM
Hi Jay,
For the software part i know, There is a table called cmdb_software_instance.
That table records are used to say something like, On this computer this software is installed, I.e That table has reference fields for computer and software tables.
For the other tables you mentioned above i still need to look.
Please mark this response as helpful/correct if it does so
Srini
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2016 10:09 AM
Great, now the second part of your answer where the relationship is clearly defined in the relationships table, is clear. Thanks.
The problem is with the first part, the direct component. As you said the "cmdb_ci_disk" does have a column "computer" which refers to record in "cmdb_ci_computer", so that does say that the disk a component to computer. However some of the CI Types have multiple such columns. For example "cmdb_ci_msd" has two such references (attached_to and dr_backup, and both of them are computer type). We cant have multiple direct parents, so which one of these is the parent? Also many CI types which are supposed to have a direct parent, do not have any column that refers to another CI. For example, cmdb_ci_spkg should be having a reference to a computer on which that software package is installed. Or Network Card should have a column refering to the computer on this that card is installed. So in such case, how do I find a computer to which software package is a component?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2016 10:54 AM
I'm not sure on the cmdb_ci_msd table. It looks to me like the attached_to field would be the computer it is in and the dr_backup would be the computer it has its backup on for disaster recovery. Sometimes it is easiest to just pull up the data in your instance and right click on the fields that have what you want and see what they are called. The cmdb_ci_network_adapter table does have a cmdb_ci field that can point to any type of configuration item including a computer. That should be the parent field you are looking for there.
As for software, I would recommend looking at the Software Asset Management plugin. If that is active in your instance you shouldn't be using the cmdb_ci_spkg or cmdb_software_instance tables. Those tables are left for compatibility with older instances that used other methods of tracking software. Software Asset Management has several of its own tables that it uses to track software models(cmdb_software_product_model), licenses(alm_license), discovery models(cmdb_sam_sw_discovery_model), software installations(cmdb_sam_sw_install), and then uses the software counters (sam_sw_counter) to track license compliance. The software installations have a field that points to the computer the software is installed on and a field that points to the discovery model (this is the name and version of the software as reported by your discovery tool). The discovery models are related to a particular software model that is used for showing purchased license information. Each software license can be entitled to either a computer CI or a user. The software counters then go through all the installation information and entitlements tying them back through the licenses, computers, discovery models, etc. to see if each installation has a valid license for it.
Software asset management is a rather daunting task on its own. For what you are currently looking at, the table you are probably interested in is cmdb_sam_sw_install. That has the information about the individual pieces of software installed and a link to the computer that they are installed on.
-Steve
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-15-2016 02:22 AM
Steve,
Thanks for taking time to reply in details. As you said, I certainly can go in the table and right click on the field and get the details. However, I am writing a code to import the CMDB data, its relations and finally drawing a tree of CMDB CIs. So obviously the "right click" is not an option for me. I need to understand how the data is stored.
I am getting my way into it for most part, except the special case CI Types such as cmdb_ci_spkg, where as you mentioned the actual data is stored in cmdb_software_instance since the cmdb_ci_spkg is going away. That was the important piece of information I got on this thread. Now before closing this thread, I would like to ask you if you have a document or if you could point me to a list where I can see such mappings for all special case CI Types that are going away and their substitutes in new versions. That would be extremely helpful. Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-15-2016 07:40 AM
I am not aware of a document showing all the mappings for the CI types. From the Tables & Columns module within Service Now you can select a specific table and click the Schema Map button that will show you a graphical view of the table and its relationships to other tables. I know that isn't exactly what you are looking for, but it may help with some of the questions. Other than the software tables changing with the newer software asset management plugin (which has been around since, at least, the Calgary release) I'm not aware of any other CMDB tables that are no longer used, but I'm not a CMDB expert by any stretch of the imagination. My experience has been mostly from importing information from other sources into Service Now and our information is far from complete. I always want what is in the CMDB to be accurate so we have been careful with what we are import, but I know we don't use it to its fullest potential.
-Steve