Configuring Record and Override Lifecycles
Record lifecycle
Master authoring (that is, creating a new record on the master layer using the MDM Web App) is enabled on the entity level by the authoring
element.
The default value is enabled=true
.
In the authoring
element, you can define a lifeCycle
, which will make changes to the record based on set conditions.
Currently, the only available option is for the entity to loseOwnership
if given conditions are met: this means the record nature will change from Authored to Consolidated.
<entity class="com.ataccama.nme.engine.model.PersistentMasterEntity" groupingColumn="master_id" instanceEntity="party" name="party">
<!-- columns and other stuff -->
<authoring>
<enable>true</enable> <!-- default true -->
<lifeCycle class="com.ataccama.nme.engine.model.lifecycle.LoseOwnership"> <!-- all conditions must be met -->
<conditions>
<condition class="com.ataccama.nme.engine.model.lifecycle.ExpressionCondition">
<expression>math.abs(current.cmo_number - new.cmo_number) < 100</expression> <!-- current and new dot-sources -->
</condition>
<condition class="com.ataccama.nme.engine.model.lifecycle.ColumnsEqualCondition">
<columns> <!-- if columns element is missing, all columns of origin MERGE will be considered -->
<column>cmo_type</column>
<column>cmo_name</column>
<column>cmo_number</column>
</columns>
</condition>
</conditions>
</lifeCycle>
</authoring>
</entity>
To set loseOwnership
conditions, select the entity in ONE Desktop and use the Lifecycle tab.
There are several scenarios in which the record nature can be automatically altered:
-
If a record meets a condition based on an expression defined in Condition satisfied. The condition can be any expression using
current
andnew
dot source inputs. -
If selected record attributes are the same for current and new records (define the necessary columns).
-
If all attributes are the same (select All columns are equal).
-
If selected attributes meet the conditions based on an expression defined in Condition satisfied
AND
selected attributes are the same (define the necessary columns). -
If selected attributes meet the conditions based on an expression defined in Condition satisfied
AND
all attributes are the same (select All columns are equal).
The last two scenarios are suitable for complex situations when certain attributes have a special or cross-column dependent logic, and others can be just equal.
New records refer to incoming records. Current records are those currently processed. |
Expression templates are available: select Template and define the Expression template columns. |
Override lifecycle
Two types of override are available: permanent and temporary.
Overrides are considered permanent if the overrides lifeCycle
is not enabled, as they can only be removed manually.
With the overrides lifeCycle
enabled, overrides are removed automatically if certain conditions are met.
To configure the overrides lifecycle, select the entity in your Logical Model in the Model Explorer, navigate to the Lifecycle tab and then Overrides.
There are three scenarios in which overrides can be removed automatically when the overrides lifeCycle
is enabled:
-
When the override value is equal to the incoming value (regardless of the original value). The use case for this would be that an attribute value has been fixed and the override is no longer necessary.
To select this option, enable
ifSame
. To enableifSame
on all columns, select All Columns if Same. To enableifSame
only for selected columns, add the columns and in the Selected Columns section select If Same on a column by column basis as required. -
When the original value is different from the incoming value (regardless of the override value). The use case for this would be when an attribute value has changed and the override might now be wrong.
To select this option, enable
ifChanged
. To enableifChanged
on all columns, select All Columns if Changed. To enableifChanged
only for selected columns, add the columns and in the Selected Columns section select If Changed on a column by column basis as required. -
If an expression condition is satisfied. Expression conditions need to be configured on a column by column basis in the Selected Columns section.
<lifeCycle class="com.ataccama.nme.engine.model.lifecycle.RemoveOverrides">
<columns>
<column name="cmo_type" ifChanged="true" />
<column name="cmo_number" ifSame="true" />
<column name="cmo_name">
<expression>levenshtein(current.cmo_name,new.cmo_name) < 2 and current.cmo_number=42</expression>
</column>
</columns>
</lifeCycle>
Was this page useful?