Product Family Management Customizations
This topic describes the customization hooks that are available for product family management.
Lock Variant Baseline Business Rule
A business rule is used to lock a variant baseline object when certain conditions are met. Out of the box, the
MEMBER_STATUS_RULE business rule locks a baseline object when its Status attribute is set to In Assembly. Baseline object gets unlocked if you set the
Status attribute value to any value other than In Assembly. For more information about locking variant baseline objects, see
Variant Baselines.
|
The Status attribute is used to track an object’s progress through the prototype development stages and is different from State, which is used to track the life cycle attribute of an object.
|
An administrator can customize the
LOCK_FLOATING_BASELINE_MEMBER_RULE_SET business rule set that contains the rules that determine when a baseline object is locked. Out of the box, only the
MEMBER_STATUS_RULE rule is included. Additional rules can be added to the rule set, or the original rule can be modified. This rule set is added at the Site level out of the box. However it can be added at the Organization, Product, or Library context levels to override the rule set in higher level contexts. For detailed information about working with business rules, see
Business Rules and
Customizing Business Rules.
The following is an example of a business rule where the <configs> tag specifies multiple conditions that need to be met for the baseline object to be locked. If the baseline object type is FloatingBaselineMember, the AttributeA value is ABC, and the Status is In Assembly.
<configs>
<config name="objecType" value="wt.vc.baseline.FloatingBaselineMember"></config>
<config name="AttributeA" value="=ABC"></config>
<config name="status" value="=InAssembly"></config>
</configs>
</BusinessRule>
To change the operator between these conditions to lock a baseline object if any one of the conditions are met, use “OR” logic by extending the processBusinessRulesWithAnd method in a new class (from the LotBaselinBusinessRuleDelegate class) and return it false. Then, update the serviceClass name to the new class name for the selector LotBaselinBusinessRuleDelegate.