Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Principal Class CMDB !!

SandeepKSingh
Kilo Sage

Can we make let say computer class as principal class and how it will help us? Can anyone help here 

 

3 ACCEPTED SOLUTIONS

Dr Atul G- LNG
Tera Patron
Tera Patron

Hi @SandeepKSingh 

 

You can enable the "Principal" checkbox for any CI class in the CI Class Manager table. Example, I can make "Computer" as a principal class. The exact usage of enabling a class as a principal class lies in the "com.snc.task.principal_class_filter" system property. This system property contains the list of tables whose records will only show the CIs under principal class. Example, if I add incident table in the above mentioned system property, and enable Computer as a Principal Class, then only computers can be selected in the "Configuration item" field on any incident record. Note that, in this example, CIs falling under child classes of Computer class (Example, server) cannot be selected. Only specific CIs under Computer class can be selected on the form.

 

*************************************************************************************************************
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.

Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]

****************************************************************************************************************

View solution in original post

Dr Atul G- LNG
Tera Patron
Tera Patron

https://www.youtube.com/watch?v=ulhJjxH6gfI

 

*************************************************************************************************************
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.

Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]

****************************************************************************************************************

View solution in original post

In this video practical implementation of principal ci class in ServiceNow CMDB has been demonstrated. Along with this system property which is leveraging this functionality and the table which helps to see all the class which are marked as principle has been demonstrated. Different ways to make ...

Ravi Gaurav
Giga Sage
Giga Sage

@SandeepKSingh 

 

 

A Principal CI Class

In a nutshell, a CI class that gets set as a Principal CI class is a CI class that you'd use in most people's day-to-day operations, especially in ITIL processes like incident, problem, and change management.

Common Principal CI classes include:

  • Computers and servers
  • Network gear
  • Printers

Note: principal CI classes do not extend to child classes. Making the "Computer" CI classes a principal CI class will not automatically make principal CI classes out of "Server", "Windows server", or "Personal Computer".

By default, no classes are set as principal CI classes. The filter which filters non-principal CI classes will take effect as soon as you set your first class as a principal CI class.

Once some CI classes are set as principal CI classes, the "Configuration item" fields on most ITIL tables will be limitied to only show CI's for those principal CI classes.

You set a CI class as a principal CI class by:

  1. Navigating to Configuration > CI Class Manager
  2. Opening the class
  3. Tick the "Principal CI" class and click "Save"
 

 

Filtering lists

You can also filter a list of configuration items to only show CI's from principcal CI classes.

 

 

How it works

Setting a CI class as a principal CI class actually saves to the "CMDB Class Information" [cmdb_class_info] table.

 

 

On many task-related tables, especially incident and problem, there are reference qualifiers / filters on the "Configuration item" [cmdb_ci] field which will:

  1. Check if the task table is included in the system property com.snc.task.principal_class_filter.
    Default is incident, incident_task, problem, problem_task, change_request, change_task
  2. Get a list of CI classes which are principal classes by querying the "CMDB Class Information" [cmdb_class_info] table.
  3. Apply a filter to only show those classes.

Here is the out-of-the-box reference qualifier for the incident table:

new TaskUtils().getConfigurationItemFilter(current);

TaskUtils calls the script include PrincipalClass which fetches a list of principal CI classes.

--------------------------------------------------------------------------------------------------------------------------


If you found my response helpful, I would greatly appreciate it if you could mark it as "Accepted Solution" and "Helpful."
Your support not only benefits the community but also encourages me to continue assisting. Thank you so much!

Thanks and Regards
Ravi Gaurav | ServiceNow MVP 2025,2024 | ServiceNow Practice Lead | Solution Architect
CGI
M.Tech in Data Science & AI

 YouTube: https://www.youtube.com/@learnservicenowwithravi
 LinkedIn: https://www.linkedin.com/in/ravi-gaurav-a67542aa/

View solution in original post

4 REPLIES 4

Dr Atul G- LNG
Tera Patron
Tera Patron

Hi @SandeepKSingh 

 

You can enable the "Principal" checkbox for any CI class in the CI Class Manager table. Example, I can make "Computer" as a principal class. The exact usage of enabling a class as a principal class lies in the "com.snc.task.principal_class_filter" system property. This system property contains the list of tables whose records will only show the CIs under principal class. Example, if I add incident table in the above mentioned system property, and enable Computer as a Principal Class, then only computers can be selected in the "Configuration item" field on any incident record. Note that, in this example, CIs falling under child classes of Computer class (Example, server) cannot be selected. Only specific CIs under Computer class can be selected on the form.

 

*************************************************************************************************************
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.

Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]

****************************************************************************************************************

Dr Atul G- LNG
Tera Patron
Tera Patron

https://www.youtube.com/watch?v=ulhJjxH6gfI

 

*************************************************************************************************************
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.

Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]

****************************************************************************************************************
In this video practical implementation of principal ci class in ServiceNow CMDB has been demonstrated. Along with this system property which is leveraging this functionality and the table which helps to see all the class which are marked as principle has been demonstrated. Different ways to make ...

Ravi Gaurav
Giga Sage
Giga Sage

@SandeepKSingh 

 

 

A Principal CI Class

In a nutshell, a CI class that gets set as a Principal CI class is a CI class that you'd use in most people's day-to-day operations, especially in ITIL processes like incident, problem, and change management.

Common Principal CI classes include:

  • Computers and servers
  • Network gear
  • Printers

Note: principal CI classes do not extend to child classes. Making the "Computer" CI classes a principal CI class will not automatically make principal CI classes out of "Server", "Windows server", or "Personal Computer".

By default, no classes are set as principal CI classes. The filter which filters non-principal CI classes will take effect as soon as you set your first class as a principal CI class.

Once some CI classes are set as principal CI classes, the "Configuration item" fields on most ITIL tables will be limitied to only show CI's for those principal CI classes.

You set a CI class as a principal CI class by:

  1. Navigating to Configuration > CI Class Manager
  2. Opening the class
  3. Tick the "Principal CI" class and click "Save"
 

 

Filtering lists

You can also filter a list of configuration items to only show CI's from principcal CI classes.

 

 

How it works

Setting a CI class as a principal CI class actually saves to the "CMDB Class Information" [cmdb_class_info] table.

 

 

On many task-related tables, especially incident and problem, there are reference qualifiers / filters on the "Configuration item" [cmdb_ci] field which will:

  1. Check if the task table is included in the system property com.snc.task.principal_class_filter.
    Default is incident, incident_task, problem, problem_task, change_request, change_task
  2. Get a list of CI classes which are principal classes by querying the "CMDB Class Information" [cmdb_class_info] table.
  3. Apply a filter to only show those classes.

Here is the out-of-the-box reference qualifier for the incident table:

new TaskUtils().getConfigurationItemFilter(current);

TaskUtils calls the script include PrincipalClass which fetches a list of principal CI classes.

--------------------------------------------------------------------------------------------------------------------------


If you found my response helpful, I would greatly appreciate it if you could mark it as "Accepted Solution" and "Helpful."
Your support not only benefits the community but also encourages me to continue assisting. Thank you so much!

Thanks and Regards
Ravi Gaurav | ServiceNow MVP 2025,2024 | ServiceNow Practice Lead | Solution Architect
CGI
M.Tech in Data Science & AI

 YouTube: https://www.youtube.com/@learnservicenowwithravi
 LinkedIn: https://www.linkedin.com/in/ravi-gaurav-a67542aa/

SandeepKSingh
Kilo Sage

Thanks @Ravi Gaurav  and @Dr Atul G- LNG  for always helping in time !!