Sometimes when you perform a Business Object Model (BOM) Update using ODM’s Rule Designer you will receive unexpected errors on attributes that were previously error free. Luckily there exists a mechanism within ODM to configure how BOM Updates work. This allows you to selectively ignore certain BOM elements while updating the remainder. In this article, I illustrate the use case for using these BOM Update Configurations.

In the sample below, I have a virtual domain with a String underlying base class that causes an error whenever the BOM Update is performed. Before the update, the agreementVersion member is of type Agreements. After the BOM Update it is changed to a type of String. Once I assign this member back to the Agreements virtual type, I want it to be ignored in future BOM Updates. The attribute defined as a string is illustrated here:

  1. First I change the type of the member from String to the ‘Agreement’ virtual domain type.

2. Then I create a text file at the same place in the project hierarchy as the BOM entry. This file has the same base name as the BOM entry and an extension of ‘.cfg’.

3. Then I add regex elements to match the members to be ignored in the cfg file:

/** During BOM updates: ignore these entities that are cast to a type in the BOM but not in the XOM*/update.ignoreDifferences = +*.agreementVersion

4. Now when I perform a BOM Update the agreementVersion type will be ignored and not converted back to a String type.

More examples for the regex syntax can be found within ODM’s product documentation here.