Required Fields for CMDB Health

pramodkumar
Tera Expert

Hi All,

 

I am looking to make the Serial Number attribute mandatory on the cmdb_ci_computer table. However, the field is inherited from the CMDB Base (cmdb_ci) table. How can I enforce it as required only for the cmdb_ci_computer class? Also, how is this related to CMDB Completeness? I was unable to make the serial_number field mandatory on cmdb_ci_computer through CI Class Manager.

 

Thanks!

4 REPLIES 4

21121A3359
Tera Expert

Hai @pramodkumar 

The Serial Number field is inherited from the CMDB Base table (cmdb_ci), so it cannot be made mandatory directly on the cmdb_ci_computer table via CI Class Manager. That’s why you’re unable to enforce it there.

However, you have two supported ways to handle this requirement:


Option 1: Use a Data Policy (Recommended)

A Data Policy allows you to make a field mandatory only for a specific CI class, without impacting other child classes.

Steps:

  1. Navigate to System Policy → Data Policies
  2. Create a new Data Policy:
    • Table: cmdb_ci_computer
    • Active: true
  3. Under Data Policy Rules:
    • Field: serial_number
    • Mandatory: true
  4. Save the record

This enforces the Serial Number as mandatory both in UI and API for cmdb_ci_computer only.


Option 2: Use a UI Policy (UI-only)

If you only need this enforcement in the UI, you can use a UI Policy.

Note:
 UI Policies do not apply to imports, integrations, or APIs.


How This Relates to CMDB Completeness

CMDB Completeness is calculated based on Identification Rules and Completeness Rules, not mandatory fields.

  • Making a field mandatory does not automatically improve CMDB Completeness
  • To include Serial Number in completeness:
    • Add it as a required attribute in CMDB Completeness Rules
    • Or include it in Identification Rules, if applicable

GaganR021259991
Tera Contributor

Hi @pramodkumar 
To satisfy this condition where you want the Serial Number Field mandatory only on the cmdb_ci_computer table You can create a Data Policy
Please follow the below steps:

  1. Navigate to System Policy → Data Policies
    GaganR021259991_0-1779257324321.png
  2. Create a new Data Policy:

    • Table: cmdb_ci_computer
      GaganR021259991_1-1779257421752.png
    • save the form 
    • Then scroll down to find Data Policy Rules in the related list.
  3. Create a new Data Policy Rule:
    • Field: serial_number
    • Mandatory: true
      GaganR021259991_2-1779257681723.png
    • update the form.

       

       

  4. GaganR021259991_4-1779257793637.png

     

    Please mark this response as Helpful & Accept it as solution if it assisted you with your question.
    Regards,
    Gagan R Prasad.



GaganR021259991
Tera Contributor

Hi @pramodkumar 
Forgot to Answer the question how is this related to CMDB Completeness?

CMDB Health measures data quality across three pillars — Completeness, Compliance, and Correctness. Completeness specifically asks: "Are the required attributes populated for this CI class?"

Serial number is typically included as a tracked completeness attribute for cmdb_ci_computer. Even if you enforce it as mandatory on the form, that only prevents future bad data — it does nothing for CIs already in the CMDB with a blank serial number. This is where Completeness Rules come in.

Completeness Rules defines which fields must be populated for a CI to be considered "complete." CIs missing serial_number will be flagged and pull down the completeness score on your CMDB Health Dashboard.
Please refer below documents for additional details
https://www.servicenow.com/community/cmdb-forum/cmdb-health-dashboard-completeness-compliance-amp-co...

https://www.servicenow.com/community/itsm-articles/understanding-cmdb-health/ta-p/2307033

Nishant8
Tera Sage

Hello @pramodkumar, I'm not sure about the underlying business requirement, but applying this logic means many of your CIs might fail to create if they lack a serial number. Instead, you can create a Completeness metric as follows

CI Class Manager -> Computer Class -> Expand Health on the left menu and click Completeness -> Add serial_number to the Selected fields list

as a result if a CI is discovered or created without a serial number, it flags a completeness failure.

 

Technically, you can mark Serial Number mandatory as well - Go to Hardware Class ( parent of Computer ) and open the Attributes -> Derived -> Serial number, and create new Dictionary Overrides by selecting the Computer class and mark it mandator as below:

Nishant8_0-1779292993616.png

 

 

Regards,

Nishant