This documentation supports the 20.02 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 the 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 custom indexes. Indexing can reduce database query time, so create custom indexes for 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.

    For additional information about auditing, see Enabling audits for classes and attributes.

  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.

    Note

    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.

To To create CI type entries for custom classes in the Product Catalog

When you create a CI in a custom class and run a normalization job for the new CI, the CI type value in the Product Catalog form must have the same format as that of the classes provided out of the box. The format for the CI Type for out of the box classes is the Class ID.

To make sure that the CI type is correct and consistent with the out-of-the-box classes, you must manually create a record for CITYPE in the PCT:MenuItems form for every custom class.

  1. Log in to Remedy Mid Tier.
  2. Open the PCT:MenuItems form by using the URL format https://<arsystemhostname>/arsys/forms/<arsystemserver>/PCT:MenuItems.

  3. Click New request.
  4. Enter the following information:

    Menu CategorySelect from the list of categories.
    Menu TypeEnter CITYPE
    Menu Label 1Enter the class ID of the custom class.
    Menu Value 1Enter the namespace and the class ID of the custom class.
    Menu Order 1Enter 1.
    LocaleEnter the preferred locale. For example, for English, enter en.
    Description(Optional) Enter a description.

  5. Save the changes.

  6. Run the normalization job for the CI in the custom class.
    Make sure the Allow product catalog entries option is selected in the normalization job.

create CI type entries for custom classes in the Product CatalogTo define or edit attributes of a class

When you create a CI in a custom class and run a normalization job for the new CI, the CI type value in the Product Catalog must have the same format as that for the classes provided out-of-the-box. To make sure that the CI type is correct and consistent with the out-of-the-box classes, you must manually create a record for CITYPE in the PCT:MenuITems form.

  1. Log in to Remedy Mid Tier.
  2. Open the PCT:MenuItems form by using the URL format https://<arsystemhostname>/arsys/forms/<arsystemserver>/PCT:MenuItems.

  3. Click New request.
  4. Enter the following information:

    Menu CategorySelect from the list of categories.
    Menu TypeEnter CITYPE
    Menu Label 1Enter the class ID of the custom class.
    Menu Value 1Enter the namespace and the class ID of the custom class.
    Menu Order 1Enter 1.
    LocaleEnter the preferred locale. For example, for English, enter en.
    Description(Optional) Enter a description.

  5. Save the changes.

  6. Run the normalization job for the CI in the custom class.
    Make sure the Allow product catalog entries option is selected in the normalization job.

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 

BMC CMDB has out-of-the-box system indexes that are meant to reduce query time of searches for CIs. Based on your business requirements, to further reduce database query time used to identify CIs, you can create custom indexes using the Class Manager. 

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

Retrieving federated data stored externally by creating federated classes

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

Auditing changes to CIs

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

  1. Dieter Bertram

    Hi, seems that there is a typo in the Properties section and a part of the description is missing You can enter customer properties in the following format: {"fieldID" {"100050":1,"400090":"PrimaryCapability"} Can you also please describe what kind of impact this kind of configuration has? Is this a way to define a Default value for for a field in the process of creating of a CI?

    Nov 02, 2022 08:16
    1. Maithili Deshpande

      Hi Deiter,

      Thank you for your feedback on the documentation. We have corrected the typo. 
      About the impact of this configuration is mostly when BMC Helix IT Operations Management (ITOM) is integrated with BMC Helix CMDB. If not, then there is no impact of Custom Properties on the classes or attributes. 

      Custom properties are used by ITOM to identify the classes and attributes for its use. Custom Properties can also be used as criteria for CMDB APIs.
      Because this configuration applies to the class and the attribute definition, it is not used in creating a CI. 

      For additional information, you can reach out to BMC Support.


      Regards,
      Maithili

      Nov 21, 2022 10:59