This documentation supports the 9.1 to 9.1 Service Pack 3 version and its patches of BMC Atrium Core. The documentation for version 9.1.04 and its patches is available here.

To view the latest version, select the version from the Product version menu.

Creating an identification ruleset for reconciliation

A reconciliation job is provided with a standard rule set of identification rule. An Identification ruleset is a set of prioritized rules that define how CI instances in different datasets are identified as the same entity, such as comparing serial numbers and product names. A standard rule set is sufficient to reconcile data. However, you can create customized identification ruleset if required.

This topic provides the following information:

Characteristics of an identification ruleset 

The characteristics of an identification ruleset are as follows:

  • Each Identification ruleset applies its rules to specific classes. Unless an activity using the ruleset has its Exclude Subclasses selected, the ruleset also applies to subclasses of the specified class, so you can use inheritance to minimize the number of Identification rulesets you create.
  • The rules are executed according to an Execution value, where the lowest execution-order rule is processed first. After an instance is identified, the remaining rules in the ruleset are not processed.
  • An Identification ruleset is paired with a particular dataset in an Identify activity. It uses a sequence of rules to identify instances from that dataset against those from other datasets in a particular order.

Note

In an Identify activity, each participating dataset except the production dataset must be paired with an Identification ruleset. If the activity involves three or more datasets, including the master dataset, each dataset's Identification ruleset must include Identification rules comparing it to all the other datasets. Without these rules, a job that includes this activity will not run.

For instance, in an Identify activity involving datasets BMC Atrium Explorer, BMC Sample, and BMC Asset where BMC Asset is the master, the Identification ruleset paired with dataset BMC Atrium Explorer must have a rule that identifies its instances against BMC Asset first and then BMC Sample, and the ruleset paired with BMC Sample must have a rule identifying against BMC Asset first and then against BMC Atrium Explorer.

Recommendations for creating a identification ruleset

  • Use the highest class level possible to take advantage of inheritance and to use the Identification ruleset with multiple classes.
  • Always put the most specific identification rules first in the Identification ruleset execution order, so the best match is identified first.
  • After the production dataset is initially populated, set Generate IDs to No in the dataset and Identification ruleset entry. This helps prevent duplicate records by requiring a BMC Atrium CMDB administrator to manually identify new configuration items.
  • You can use multiple Identification rulesets in an Identify activity to identify multiple classes in one reconciliation job.
  • Regularly review your identification rules to make sure they are still appropriate for your environment and spot check instances to confirm that they are being identified properly.
  • Consider indexing attributes used in identification rules. Consult your DBA to determine what indexes would help you.
  • The standard identification rules use the following guidelines for identifying physical and virtual servers. If you create identification rules, consider these attributes to distinguish between physical and virtual servers and to uniquely identify each. You can use the standard rules as a guide to creating custom identification rules for servers.
    • For physical servers, BMC recommends that data providers populate the TokenID attribute with a concatenation of the host name and domain name.
    • For virtual servers, BMC recommends that data providers set the following attributes:
      • Set Name to the name of the virtual machine.
      • Set isVirtual to Yes.
      • Set TokenID to <prefix>:<uniqueID>, which is a concatenation of the virtual machine prefix and unique ID.
      • Typically, virtual machines have a unique identifier, which does not change when the virtual machine is moved to a new host. For example, the TokenID for a VMware virtual machine is VI-UUID:123456789.

Creating a customized identification ruleset

Before you begin

  • Plan how many rules are needed in what order.
  • Know what dataset to use as reference in each rule.
  • To create an Identification ruleset, clear the Use standard rules for participating datasets option for the job. Otherwise, your Identify activity uses the standard rules. See Standard reconciliation identification and merge job settings.

To create a customized identification ruleset

  1. In the Activities area, click New.
  2. For Type, select Identify.
  3. Click New/Edit Identification Ruleset to define identification rules.

    If you selected Use standard rules for participating datasets for the job, Create Identification Ruleset is not available.
  4. Enter the following required information.

    Field

    Description

    Set

    The name of the ruleset.

    Class

    From the appropriate namespace, select the namespace and class to identify.

    Namespace

    The namespace is selected with the class. Only classes in the selected namespaces can participate in the activity.

    For more information, see Dynamic dataset and qualification values in event-driven reconciliation jobs.

  5. Click Add Rule.
    You need one Identification Rule for each dataset against which you want to identify the dataset this ruleset is paired with.
  6. Enter the following required information:

    Field

    Description

    Identify Against

    Select the dataset where you want to find a match. This is often the production dataset, such as BMC.ASSET.

    Execution Order

    Select or type a number to identify this rule's position in the ruleset execution order (0 to 1000).

    All rules in the ruleset are processed according to this order.

    Namespace

    Use the same Namespace that you specified for the Identification ruleset.

    Class

    Use the same class that you specified for the Identification ruleset.

    Qualification

    Type the criteria that match the class between datasets, or click Build Qualification to create the criteria with a tool.

    Use dollar signs ($) to enclose attribute names from the dataset that is paired with this Identification ruleset in an Identify activity, and use single quotes (') to enclose attribute names from the dataset in the Find in Dataset field.

    Example: 'IP Address' = $IP Address$,

    The example qualification identifies instances of the class when they share the same IP address.

  7. Click OK.
  8. In the Set Editor, click Save.
Was this page helpful? Yes No Submitting... Thank you

Comments

  1. Stefan Hall

    Can I work with all the features from qualification builder?

    Your Qualification Example shows a very simple form. What about

    'IP Address' LIKE $IP Address$? How can I integrate set the % sign?

    Apr 20, 2017 08:41
    1. Stefan Hall

      After some hours of testing, it seems working. The syntax seems

      'SerialNumber' LIKE "%" + $SerialNumber$ - Can you confirm it?

      If yes, your explanation for $ and ' seems not correct.

      I've two Datasets say ADDM and ASSET. My ADDM CI has the Number '1234' and in Asset the CI has the Number 'X1234'. The "find in" Dataset is ASSET, the activity is paired with ADDM.

      'SerialNumber' LIKE "%" + $SerialNumber$ found the CI in ASSET, That's not what you described.

      Apr 20, 2017 10:33
    1. Nidhi Das

      Hello Stefan,

      I will verify this with the SME and will write back to you.

      Regards,
      Nidhi

      Apr 21, 2017 03:26
  2. Daniel Hudsky

     Stefan,

    the screen capture is in indeed incorrect. The syntax is sent to AR based API's and hence the use of single and double quote is usually necessary especially on multitenant systems where non-English localization can have a different ASCII table. Single quotes stand for 'FieldName' and double quotes stand for "$VALUE$". You can use wild cards in the same way you'd use them when searching with the typical AR clients like AR Midtier or the legacy AR User tool.

     

    The qualification implies the following pseudo query:

    (find me a match that is stored in the source field) 'Field in Source Dataset' from the destination dataset where "$Value found in a field whose name matches the Field in Source Dataset$"

     

    With that said. The goal for an identification rule is not to find a list of results. It needs to find one match only. Hence using a wild card would be a counterintuitive. Wildcard would only be used to find multiple matches and that is not how identification works.

    For example:

    'Name' = "$Name$" and 'SerialNumber' = "$SerialNumber$" and 'Account' like "BMCAcc%"

    Since Name and SerialNumber combo is usually unique in a dataset then adding the Account to it would have no benefit.

    I recommend this Community post for further reading on that topic:

    https://communities.bmc.com/community/bmcdn/bmc_atrium_and_foundation_technologies/bmc_atrium_cmdb/blog/2013/11/20/identifying-weak-reconciliation-identification-rules-can-be-done-with-ardriver

    Please note that the more complex the query the more of an impact on performance. Rules like this would benefit from having an index added for the class that is queried or the base class (parent) where the query is issued. Even then, AR Server generated SQL queries would add additional fields to the SQL query construct such as DatasetId, Instanceid, Classid and so on.

    Lastly, the given syntax for 'IP Address' is also invalid example because CDMB does not have any Attributes (fields) where we allow spaces in the Name of the field.

    'IPAddress' = "$IPAddress$" should have been give as example.

     

    Apr 21, 2017 09:08
  3. Stefan Hall

    Hi Daniel,

    i can't found the Image error you mentioned. My rules looks like these and works well.

    And believe me,the like operator is the only possibility to find the matching records in our case. One of our datasets has partial serialnumbers. Not Nice,but real world.

    anyway, thanks for your explanation.

     

    Apr 23, 2017 11:42
    1. Daniel Hudsky

      Hello Stefan, I was talking about the third image in the documentation above. The one that says "Set Editor".

      Sep 13, 2017 10:02