Best practices for extending the data model


This section lists the best practices to be followed when extending the data model.

Guidelines for adding attributes and subclasses

If you decide to add attributes or subclasses, follow these guidelines:

  • Use the Class Manager, an API program, or the cmdbdriver command.
    Modifying the BMC Helix CMDB data model requires more than just editing a form, and you might break some functionality.
  • Use Developer Studio to modify field layout and labels.

    Error
    Important

    Never make those changes directly on class forms using Developer Studio.

  • Because CMDB gets its value by sharing data among applications, make your extensions as widely useful as possible, so that they can meet multiple needs.
    Avoid extensions that narrowly cater to one application, even for high-volume uses.
  • Do not create classes more than five database join levels deep.
    For information about the classes that use joins, see How-CMDB-data-is-stored-in-forms.
  • Determine whether you want to store configuration data or lifecycle data for the CI in the new attribute.
    You must add a new attribute to a class to store only configuration data about a CI.
  • To store lifecycle data for a CI, you must add a field on the AST:Attributes form that is installed by BMC Helix ITSM
    For more information about Adding data to AST:Attributes in relation to CIs, see 
    Understanding tools and guidelines for extending your asset and CMDB data model.

Warning

Important

In older versions, BMC Helix ITSM extended CI lifecycle data as attributes in BMC Helix CMDB. With multiple datasets, multiple copies of the CI lifecycle data were created and stored in BMC Helix CMDB. However, CI lifecycle data is not discovered and does not have to be reconciled across multiple datasets. Because of this issue, BMC Helix ITSM moved the CI lifecycle data out of BMC Helix CMDB and included the data as fields in the BMC Helix ITSM Foundational form, AST:Attributes. When creating the BMC Helix ITSM: Asset Management UI, the CMDB2ASSET process joins the BMC Helix CMDB class table and the AST:Attributes table.

The change in the process of storing the CI lifecycle data greatly improves the performance of BMC Helix CMDB, creates only a single instance of CI lifecycle data, and gives control of the CI lifecycle data to the Asset Manager instead of the Configuration Manager. For detailed information about the changes, see Changes to the BMC CMDB for BMC Remedy ITSM.

Naming and numbering rules for new classes and attributes

  • If you create classes or attributes in your data model, use the following guidelines:
    • Item names like Class name, Attribute name, and Dataset name are case sensitive. However, it depends on the case sensitivity for fields configured in the database tables. CMDB inherits the database configuration for case sensitivity.
      Consider the following:

      • You have configured a unique index for the item names in the database table
      • Case sensitivity configuration in the database is disabled
      • You have created two classes, BMC_Test and BMC_TEST, in CMDB

      In such cases, the database will create two class names with a unique index violation exception warning message.

    • Name a new class with a prefix other than BMC_ to identify it as your own, and make the name descriptive.
    • Give an attribute an Attribute Name that is unique across your entire data model.
    • Give attributes a Field ID greater than 536870911 or leave this field blank to automatically generate an ID. 

      Specifying a value greater than 536870911 enables you to create custom AR System workflow on the field and share the workflow between forms, because you can give the same ID to a field on another form. 

      It is better to give attributes a Field ID that is unique across your entire data model; therefore you should share workflow only between a BMC Helix CMDB form and a form that is not part of BMC Helix CMDB. See the Action Request System documentation for information about sharing workflow and other benefits of specifying a Field ID. 

      BMC Software reserves numbers 536870911 and lower.

Documentation of data model extensions

Just as you need to occasionally look up information about classes in the Common Data Model (CDM), you will need to look up information about classes and attributes that you create. Enter descriptions for each in the Description fields available in the Class Manager.

You can generate an updated version of BMC Helix CMDB Data Model Help — the HTML Help system that provides information about the data model — to reflect your current data model and to include the descriptions for the classes and attributes that you add.

For instructions on generating updated BMC Helix CMDB Data Model Help with the cdm2html utility, see Creating Data Model Help with the cdm2html utility.

Visibility of data model changes to applications

When you add classes and attributes to your data model, they are not automatically picked up by BMC Software products that use BMC Helix CMDB, such as BMC Impact Solutions or BMC Helix ITSM: Asset Management. To use the new classes and attributes with one of these applications, you must customize the application.

AR System applications

Some AR System applications, such as BMC Helix ITSM: Asset Management, maintain their own set of join forms for viewing and modifying BMC Helix CMDB instance data. After you add a new class, BMC Helix CMDB can generate these join forms for such an application and arrange the fields according to view templates specified by the application. For information about controlling the layout of class forms, see Control-of-the-layout-of-class-forms.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC Helix CMDB 25.4