Why does the CI class in model categories not allow duplication with other model categories?

senon
Tera Sage

Hello Experts,

I am currently working on the requirements for hardware asset management model categories and have encountered a question and an error in the process.

 

Requirements
I need to create a new model category called "Virtual Server."
This model category will not create assets and will assign only the CI class "cmdb_ci_server".

 

While OOTB already includes model categories such as "Virtual Machine" and "Virtual Machine Instance," the current requirement is to manage virtual servers under "cmdb_ci_server".

 

Question
When a similar CI class ("cmdb_ci_server") is already assigned to another model category, an error occurs, preventing the creation of a new model category.

senon_1-1737357874995.png


This error is triggered by the Business Rule "Protect cmdb_ci_class on insert", which outputs an error whenever the same CI class is used.

senon_2-1737357937392.png

 

 

Does anyone know why this Business Rule exists as OOTB? Speculative but logical reasoning would also be appreciated.


The following knowledge article suggests that there is a business rule that corresponds to the content of my question, but the unfortunate point of this article is that it does not clearly state why the business rule is necessary.
Knowledge Article View - Now Support Portal

senon_0-1737358750146.png

 

Is it acceptable to create model categories with duplicate CI class assignments, or would this cause any issues?

Since it exists as an OOTB rule, I assume there must be some rationale behind its implementation. Depending on this rationale, I may need to reconsider my approach to model categories.

 

I would greatly appreciate your insights and ideas.

 

Best regards.

senon

1 ACCEPTED SOLUTION

Teri Bobst
Mega Guru

Hello, You are correct a virtual server is typically still a Windows Server, or some other type of server that can also be physical, where assets are needed. My typical approach for this scenario is to use the "asset tracking strategy" at the model to set all Virtual models to "Don't create assets". This will prevent assets being created from those CI's while still maintaining the model category - CI Class - asset class mapping.

View solution in original post

9 REPLIES 9

Kieran Anson
Kilo Patron

Hi,

The rule exists as CI's can be discovered and a corresponding asset created at point of creation. The type of asset to create is determined on the model category assigned to the class. If there was more than one, the system wouldn't be able to auto-generate the related asset.

 

If a CI class is being used to represent a record that could be more than one category - you likely need to break that CI Class down into child classes.

Thank you for your response.

Could you provide more detailed information on why the system cannot automatically generate related assets when multiple model categories are assigned the same CI class?

Specifically, I would like to understand which script or process is being executed in this scenario.

Abhijeet_Pawar
Tera Guru

Hello @senon ,

We can create only one model category for a single class. If you check the out-of-the-box (OOTB) model categories, you will observe that there is only one category assigned to one class.

Additionally, instead of creating a new model category, I recommend updating the existing model category for the cmdb_ci_server class and enabling the "Enforce CI Verification" checkbox. This will prevent assets from being created for your configuration items (CIs).Please refer to the screenshot below for more clarity.

Thank you!

"Thank you for your response and for sharing the screenshots.  

The "cmdb_ci_server" class is already being used by an existing model category to create both CIs and assets. Therefore, modifying this model category is not an option, as asset items also need to be created.  

Given this situation, we require a new model category, such as "virtual server", which creates only CIs under "cmdb_ci_server".  

Does this mean that ServiceNow's specifications do not allow for such a configuration?