专业化管理 > 配置您的 Windchill 环境 > 业务规则 > 可用业务规则 > BOM 发布规则
  
BOM 发布规则
此业务规则可确保所有产生的对象均处于相应状态,并且所有一级依存对象也处于相应状态。如果子对象也是产生的对象,则通过更改通知进行发布时,子对象将转为目标状态而非保持当前状态。
所需配置选项包括:
目标状态 - 产生对象的有效状态。可以定义多个目标状态。
有效依存对象状态 - 依存对象的有效状态。可以定义多个有效依存对象状态。
收集组件 ID - 用于收集依存对象的收集组件标识符。Windchill 系统提供了默认的集合组件标识符 COLLECT_ITEMS_FOR_BOM_RELEASE_RULE。每个收集组件标识符均具有首选项,用于确定收集哪些对象。“首选项管理”实用程序“业务规则”部分中的“BOM 成熟度发布收集器”首选项可控制收集规则。
可选的配置选项包括:
checkPredecessorRevisions - 检查依存对象先前修订版本的有效状态。如果值为 true,规则将检查以确保先前修订版本处于有效状态。如果值为 false 或未设置,规则将不检查先前修订版本的有效性。默认值为 false。
invalidDependentState - 依存对象的无效状态。可以定义多个无效依存对象状态。
以下示例将说明如何使用 BOM 发布规则:
任何发布到“已发布”“原型”状态而不是在“已过时”状态的装配。如果依存不是在“已发布”“原型”“已过时”状态,则检查先前修订版本。
如有任何依存组成部件处于无效状态,则规则都将失败,并且会在“查看冲突”报告中列出无效装配列表。有关详细信息,请参阅查看规则冲突
配置属性示例:
* 
如果配置选项支持多个值,则可按下例所示,通过为每个附加值指定单独配置条目来定义多个状态。
<configs>
<config name="targetState" value="RELEASED"/>
<config name="validDependentState" value="RELEASED"/>
<config name="validDependentState" value="PROTOTYPE"/>
<config name="invalidDependentState" value="OBSOLETE"></config>
<config name="checkPredecessorRevisions" value="true"></config>
<config name="collectionComponentID"
value="COLLECT_ITEMS_FOR_BOM_RELEASE_RULE"/>
</configs>
以下示例将说明 BOM 发布规则。
示例
假设需要更改具有多个子部件的装配。但是在更改装配前,要确保所有子部件都是在“已发布”(RELEASED) 状态,或更改后为“已发布”(RELEASED) 状态。还要确保所有子部件都已更新,因此要检查没有一个子部件为“已过时”(OBSOLETE)。要配置它,可以创建下列业务规则对象。
业务规则设置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BusinessRuleSet SYSTEM "standardX20.dtd">
<BusinessRuleSet>
<ObjectID><localId>wt.businessRules.BusinessRuleSet:45347</localId>
</ObjectID>
<objectContainerPath>/wt.inf.container.OrgContainer=
BusinessRulesTestOrganization/wt.pdmlink.PDMLinkProduct=
BusinessRulesTestProduct</objectContainerPath>
<key>CHANGEABLE_PRE_RELEASE</key>
<name>Test_Changeable_ReleaseRuleSet</name>
<description>To test basic Attribute RuleSet Validation</description>
<enabled>true</enabled>
<overridable>true</overridable>
<updateIfExists>true</updateIfExists>
</BusinessRuleSet>
业务规则:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BusinessRule SYSTEM "standardX20.dtd">
<BusinessRule>
<ObjectID><localId>wt.businessRules.BusinessRule:158927</localId>
</ObjectID>
<objectContainerPath>/wt.inf.container.OrgContainer=
BusinessRulesTestOrganization/wt.pdmlink.PDMLinkProduct=
BusinessRulesTestProduct</objectContainerPath>
<key>BOM_RELEASE_RULE_RELEASED_STATE</key>
<selector>BOM_RELEASE_RULE</selector>
<name>Test BOM release Rule</name>
<description>Test BOM release Rule RELEASED State</description>
<enabled>true</enabled>
<updateIfExists>true</updateIfExists>
<configs>
<config name="targetState" value="RELEASED"></config>
<config name="validDependentState" value="RELEASED"></config>
<config name="invalidDependentState" value="OBSOLETE"></config>
<config name="checkPredecessorRevisions" value="true"></config>
<config name="collectionComponentID" value=
"COLLECT_ITEMS_FOR_BOM_RELEASE_RULE"></config>
</configs>
</BusinessRule>
业务规则链接:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BusinessRuleLink SYSTEM "standardX20.dtd">
<BusinessRuleLink>
<ObjectID><localId>wt.businessRules.BusinessRuleLink:168920</localId>
</ObjectID>
<ruleSet><ObjectReference><localId>wt.businessRules.BusinessRuleSet:45347
</localId></ObjectReference></ruleSet>
<rule><ObjectReference><localId>wt.businessRules.BusinessRule:158927
</localId></ObjectReference></rule>
<blockNumber>1</blockNumber>
<updateIfExists>true</updateIfExists>
</BusinessRuleLink>