特定管理 > 配置您的 Windchill 環境 > 企業規則 > 可用企業規則 > BOM 發行規則
  
BOM 發行規則
此企業規則可確保所有產生物件都處於適當狀態,且這些物件的所有第一層級相依物件都處於適當狀態。如果子物件也是一個產生物件,該子項會在透過變更通知發行時進入目標狀態,而不是保持在目前狀態。
必要組態選項包括:
targetState - 產生物件的有效狀態。您可以定義多個 targetState。
validDependentState - 相依物件的有效狀態。您可以定義多個 validDependentState。
collectionComponentID - 用來收集相依物件的收集元件識別元。預設收集元件識別元 COLLECT_ITEMS_FOR_BOM_RELEASE_RULE 隨您的 Windchill 系統一起提供。每個收集元件識別元都有可確定已收集哪些物件的偏好設定。「偏好設定管理」公用程式中「企業規則」部份的「BOM 成熟度發行收集器」偏好設定可控制收集規則。
選用組態選項包括:
checkPredecessorRevisions - 檢查相依物件之前版本修訂的有效狀態。若為 true,規則會檢查以確定之前的版本修訂處於有效狀態。若為 false 或未設定,規則便不會檢查之前版本修訂的有效性。預設值是 false。
invalidDependentState - 相依物件的無效狀態。您可以定義多個 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="invalidDependentState" value="INWORK"></config>
<config name="checkPredecessorRevisions" value="true"></config>
<config name="collectionComponentID"
value="COLLECT_ITEMS_FOR_BOM_RELEASE_RULE"/>
</configs>
下列範例說明了 BOM 發行規則。
範例
假設您需要變更有許多子零件的組件。但是,在您變更組件之前,您要確定所有子項都在「已發行」狀態下,或在發生此變更之後將會在「已發行」狀態下。您也要確定所有子零件都是最新的,因此您要檢查是否沒有子零件已變為「作廢」。為了進行配置,您可以建立下列企業規則物件。
企業規則集:
<?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>