This documentation supports the 19.08 version of BMC CMDB.

To view an earlier version, select the version from the Product version menu.

Creating or modifying classes by using Class Manager

The Common Data Model (CDM) that is shipped with the BMC CMDB may require modifications for your specific business requirements. In such a scenario, a configuration manager defines properties for Configuration Items (CI) and relationship classes by using Class Manager. The properties of a class define the class, and how the class stores data.

Process overview of creating or modifying classes

The following overview diagram shows you the steps required to add a new class to the data model. 

When creating a new class you must first specify the properties and optionally, auditing settings, before you save it. After you save the properties, the class is created. After this, you can add or edit the attributes.  If you want to modify an existing class, you need not start from the beginning of this process.

Creating a class by using Class Manager comprises the following tasks:


ActionReference

1

Define the properties of the class, which include its type, how it stores data, and (for relationship classes) the relationship type.Create new classes
2(Optional) Configure instance auditing for the class. Auditing enables you to track the changes made to instances of a class.Specify auditing for a new class
3Define one or more CI and relationship class attributes.Define or edit attributes of a class
4(Optional) Specify permissions. If you do not specify permissions for a class, BMC CMDB assigns default permissions.To define or edit permissions for a class
5(Optional) Specify indexes. Indexing can reduce database query time, so index those attributes that you expect users to use in queries frequently.Create or edit indexes for a class
6(Optional) Propagate attributes in a weak relationship. This step is necessary only if you have created a relationship class that has a weak relationship in which the attributes from one class should be propagated to another class. Propagate attributes for weak relationships

Note

In some test environments, when you create a new class, there may be a delay of up to five minutes before you can start creating instances of that class in CMDB Explorer. This delay may not occur in your production environment.

For more information about class and relationship properties, see Common CI and relationship class properties.


Before you begin

  • You must have AR Administrator (ARADMIN) permissions to create or edit classes.
  • Before creating an attribute for a CI class, determine whether you want to store configuration data or lifecycle data for the CI in the new attribute. You must create a new attribute to store only configuration data for the CI. To store lifecycle data for the CI, you must add a field on the BMC Remedy ITSM Foundational form, AST:Attributes.
  • Review the information in the following topics:

To create new classes by using Class Manager

Best Practices

  • Whenever you extend the data model, use your own namespace instead of BMC.CORE. This prevents your extensions from being overwritten by new classes when you upgrade to a future version of the Common Data Model (CDM).
  • Do not modify the core CDM class attributes. Upgrades across versions overwrite these customizations. For example, modifications to the CDM, such as changing the attribute field length in a class are not preserved during upgrades.
  • Extend the CDM by creating a new class or an extended class with additional attributes as these changes are not overwritten during an upgrade.
  • Carefully plan the creation and extension of a class as these modifications may have an impact on other ITIL processes in your organization.

  1. Open Class Manager.
    Select Class Management > Classes.
  2. In the Create list in the left pane, select Regular or Relationship.
    Depending on your selection, either the Create New Regular Class or the Create New Relationship Class page opens.
  3. In the Properties section, for both a new class and a relationship class, you must configure the following:

    PropertyAction
    Super Class NameSelect the class under which you want to add the new class
    NamespaceSelect the namespace to which you want to assign the new class
    Class NameEnter a name for the new class
    Custom Properties

    You can enter customer properties in the following format: {"fieldID"

    {"100050":1,"400090":"PrimaryCapability"} 
  4. In the Audit information section, select one of these options:

    Audit Type
    Select this if you do not want an audit to be performed.
    CopySelect this option to create a copy of each audited instance. Each AR form related to a class and its super class is duplicated to create audit forms that hold audited instances. 
    LogSelect this option to create an entry in a log form that stores all attribute values from the audited instance in one field. 
    If you select this option, you must also specify the name of the log form to be used.

    If you have copy auditing enabled for a class, you cannot enable log auditing for any of its superclasses. If you already have log auditing enabled for a class, you cannot enable copy auditing for any of its subclasses.

  5. (Only for relationship classes) You must specify the following criteria:

    1. In the Class1 and Class2 fields, select the classes between which the relationship is applicable and other criteria.

    2. The cardinality between the two classes.
      • 1-1 — One instance of a class is associated with a single instance of another class.
      • Many-1 — One or more instances of a class are associated with one instance of another class.
      • 1-Many — One instance of a class is associated with one or more instances of another class.
      • Many-Many — Many instances of a class are associated with many instances of another class.
  6. Click Save.

You can now add attributes or indexes to the class.

Notes

  • Version 8.0 of BMC Remedy IT Service Management moved the CI lifecycle data out of BMC CMDB and included the data as fields in the BMC Remedy ITSM Foundational form, AST:Attributes. For detailed information about the changes, see Changes to the BMC CMDB for BMC Remedy ITSM.
  • When you use the Class Manager to create a new class, a delay of up to five minutes might occur before a user can start creating instances of that class in CMDB Explorer. This delay happens only rarely, typically in test environments, and is caused by how admin cache memory works in the BMC Remedy AR System when you create objects from a new form. In general, BMC CMDB users do not experience delays in a production environment.
  • Changes to base classes or relationships may take longer than other operations.

To define or edit attributes of a class

Before creating an attribute for a CI class, determine whether you want to store configuration data or lifecycle data for the CI in the new attribute. You must create a new attribute to store only configuration data for the CI. To store lifecycle data for the CI, you must add a field on the BMC Remedy ITSM Foundational form, AST:Attributes.

  1. Open Class Manager:
    Select Class Management > Classes.
  2. In the navigation pane, select the class for which you want to edit attributes. 
  3. On the Attributes tab, select the attribute you want to edit and click Edit at the top right corner of the page.
    You can now edit the attributes according to your business needs.
  4. Click Save to return to the Class Manager page.

To define or edit permissions for a class

  1. Open Class Manager.
    Select Class Management > Classes.
  2. In the navigation pane, select the class for which you want to set permissions.
  3. Click the Permissions tab and then click Edit on the top right corner of the properties pane.
    The Add/Edit Class Permissions page opens.
  4. Specify Visible Permissions and Hidden Permissions for specific groups and roles.
    If you do not set permissions in Class Manager, BMC CMDB automatically assigns the following default permissions:

View permissions

Change permissions

  • CMDB Data View
  • CMDB Data View All
  • CMDB Write Security
  • CMDB Data Change
  • CMDB Data Change All

To create or edit custom indexes for a class 

Custom indexes are those indexes that you define apart from the out-of-the-box system indexes. Indexes meant to reduce query time of searches for CIs. Based on your business requirements, you can create custom indexes using the Class Manager. You must index attributes that you expect users to query frequently, are used by discovery applications to identify Configuration Items (CIs), and are used in reconciliation identification rules.


Note

The following steps are for creating and editing custom indexes only. To edit or add missing system indexes, see Troubleshooting performance issues caused by missing CMDB indexes.

  1. Open Class Manager.
    Select Class Management > Classes.
  2. In the navigation pane, select the class for which you want to edit indexes.
  3. Click the Indexes tab and then click Add on the top right of the tab.
    The Add/Edit Class Indexes page opens.
  4. You can select Unique if all values for the field must be unique.
  5. You can select Primary key if the index is the primary key for the class.
    See Class attributes in the Class Manager.
  6. Add the attributes that you want to index to the Fields in Index list.
  7. Click Save.

Best practices

  • You must index attributes that match the following criteria:
    • Users frequently query the attributes.
    • Discovery applications use the attributes to identify Configuration Items (CIs).
    • Reconciliation identification rules use the attributes.

Indexing the classes that contain these attributes can reduce database query time.

  • Specifying or modifying indexes in a class that already holds a large number of instances can take a significant amount of time and disk space. Hence, you must avoid creating indexes during normal production hours. 
  • You may have to request the database administrator to run the database diagnostic tools to generate a query execution plan on the MS SQL Server or an Automatic Workload Registry (AWR) report on the Oracle server while the reconciliation job is running. Both, Log Analyzer and database reports, help the database administrator to decide which attributes need indexing and its sequence. Usually, the indexes are based on the attributes used in the identification rule. 

To display BMC_ApplicationSystemServices as a weak relationship

The BMC_ApplicationSystem and BMC_SystemService classes are related to each other through BMC_ApplicationSystemServices, which is shown as a strong relationship class in the Class Manager UI.


But, BMC_ApplicationSystemServices is a weak relationship. To propagate the attributes from the source CI class to the destination CI class, edit the relationship class and select Weak Reference as shown in the following figure.

This change makes the BMC_ApplicationSystemServices a weak relationship class, as shown in the following figure.


To propagate attributes for weak relationships

See Best practices for propagating attributes to weak relationships before you propagate attributes for weak relationships.

Class Manager helps you propagate (or copy) attributes for weak relationships. You can map attributes between members of a weak relationship. The value of a mapped attribute of the source class is copied, or propagated, to the corresponding attribute in the destination class. This enables you to view basic information about a source Configuration Item (CI) while viewing a destination CI, without having to follow the relationship and view the source CI.

  1. Open Class Manager.
    Select Class Management > Classes.
  2. In the navigation pane, select the weak relationship class to which you want to propagate attributes.
    For example, select BMC_HostedSystemComponents.
  3. On the Attributes tab, click Propagated Attributes.
  4. Click Add.
    The Weak Reference Attribute Propagation page opens.
  5. Select the source and destination attributes and click Map.
    Repeat this for each attribute you want to map.
  6. Click Save.


Best practice

To propagate a source attribute, you must map it to an existing attribute in the destination class. Create new attributes on the destination class for this purpose, instead of mapping to an attribute provided by Common Data Model (CDM). Doing so helps CDM attributes to serve their intended purpose and prevents you from accidentally overwriting the propagated source CI values with values from other CIs. 

Before you propagate attributes for weak relationships, make sure that you have:

  • A relationship class that connects two CI classes.
  • An attribute on the destination class for each attribute that is propagated from the source class.

Mapped attributes in a weak relationship

The attribute that you propagate to the destination class must be the same data type as the attribute on the source class, and it cannot be inherited from a superclass. When you set up propagation, the limit characteristics of the destination attribute are modified to match those of the source attribute. For example, if you propagate an integer attribute that has a Min value of 3 on the source side to a destination attribute with a Min value of 1, the Min value of the destination attribute changes to 3.


Related topics

FAQs and additional resources: set attribute permissions

Knowledge article 000088372: Example of how to create attributes using CMDB driver

Use case: Modification of your data model

Learning about the common data model

Defining indexes Open link

Generating Help for the data model by using the cdm2html utility

Modifying the data model by using Class Manager

Identification activities to match instances across datasets

Best practices for propagating attributes to weak relationships

Was this page helpful? Yes No Submitting... Thank you

Comments