CMDB Custom Attribute Creation

sanjeev28 k
Giga Expert

Hi All,

We added all the custom attributes to OOB classes like port, service and circuits.. but there was a comment from servicenow that we should extend these classes as new custom class and then add the custom attributes there.. Ex. create a new class called u_Circuit for circuits which is   a new table and is an extension of cmdb_ci_circuits. The custom attribute that we need will now go into u_circuit instead of cmdb_ci_circuit.

so I just wanted to know what is the best practice for extending the CMDB class and creating custom attribute ...and is there any implications   if we will create custom attributes on OOB cmdb_ci child tables?

5 REPLIES 5

Chuck Tomasi
Tera Patron

Hi Sanjeev,



See section 2 here: Modifying the Application Design - ServiceNow Wiki



If you have additional questions, feel free to ask.


Hi Chuck,


This link does not state the implication about creating custom attribute in OOB cmdb child tables. Could you please let me know that?


In short, Sanjeev, if you create all the fields on one table, it can get "messy". There is a database limitation about how many fields can go in a single table (I believe it's 4096) so you should not have to worry about technical limitations.



There is a reason we have a hierarchical table structure for the CMDB. It helps separate and organize data. For example, it makes no sense to have a MAC address field on a software package. However, if a field like "assigned to" applies to multiple classes, then yes, it makes sense to place it on a parent table so it is available to all child tables.



As for performance, it's negligible, however there is a join that needs to be done to get data on child tables. As your CMDB grows, this can be more noticeable. Unless you are dealing with millions of CIs, you probably won't be impacted.



I hope that answers your questions.


Hi Chuck,



I have a requirement to create 5 custom attributes to Business Service (cmdb_ci_service) OOB Class.   Will I have to create a copy of the business service class and call it XYZ_Business_Service, and then add those 5 custom attributes to this newly created class?



What are the implications if I add the 5 custom attributes to the OOB Business Service Class?


Does it impact upgrade paths?


What are the best practices prescribed by ServiceNow?



Unfortunately I cannot find a documentation that will answer my questions above.



Can you please help?



Thanks


Satya