Personnalisation avancée > Business Logic Customization > Customizing MPMLink > Customizing the Comparison Mechanism
  
Customizing the Comparison Mechanism
Out of the box, the application supports the following criteria to compare the current iteration of the upstream structure with the previous iteration:
OutOfDateCriteria
TimeBasedCriteria
BaselineCriteria
By default, the application uses OutOfDateCriteria. In OutOfDateCriteria, equivalence association is used as the criterion to compare the current iteration of the upstream object with the previous up-to-date version that was linked to the current downstream iteration. If no equivalent link exists between the current downstream iteration and the previous version of the upstream object, the comparison is performed between the current and the previous up-to-date iteration of the upstream object. You can change this default behavior to compare the current iteration with the previous up-to-date iteration of the upstream object using the property com.ptc.windchill.associativity.reconciliation.criteria.usePreviousVersion. The default value for this property is true.
You can customize the default behavior to compare based on time values or baseline objects. When set to time-based comparison, the current iteration of the upstream structure is compared with the iteration available at a specific time. In a baseline-based comparison, the current iteration of the upstream structure is compared with the parts included in a specific baseline. To customize the criteria, configure the delegates given in the associativity.service.properties.xconf file located at com/ptc/windchill/associativity/xconfs:
<Service context="default" name="com.ptc.windchill.associativity.reconciliation.criteria.AbstractCriteria">
<Option cardinality="singleton" selector="OUTOFDATE" requestor="null" serviceClass="com.ptc.windchill.associativity.reconciliation.criteria.OutOfDateCriteria" />
<Option cardinality="duplicate" selector="TIMEBASED" requestor="null" serviceClass="com.ptc.windchill.associativity.reconciliation.criteria.TimeBasedCriteria"/>
<Option cardinality="duplicate" selector="BASELINE" requestor="null" serviceClass="com.ptc.windchill.associativity.reconciliation.criteria.BaselineCriteria"/>
</Service>
In the CriteriaType.java file located at com/ptc/windchill/associativity/reconciliation/client, the class CriteriaType defines the criteria to compare the current iteration of the upstream structure with the previous iteration. The class contains the criterion types that are supported by default. It is marked as supported.
The CriteriaType class is a standard Windchill enumeration having its own rbInfo file CriteriaTypeRB.rbInfo located at com/ptc/windchill/associativity/reconciliation/client. You can customize the default criterion or add criteria using the enumCustomize tool.