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.
- 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.
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.