BOM 릴리즈 규칙
이 비즈니스 규칙은 모든 결과 객체가 적합한 상태이고 해당하는 첫 번째 수준 종속 객체가 모두 적합한 상태인지 확인합니다. 하위 객체도 결과 객체인 경우 해당 하위는 변경 공지를 통해 릴리즈될 때 현재 상태를 유지하지 않고 대상 상태가 됩니다.
필수 구성 옵션은 다음과 같습니다.
• targetState - 결과 객체의 유효한 상태입니다. targetState를 둘 이상 정의할 수 있습니다.
• validDependentState - 종속 객체의 유효한 상태입니다. validDependentState를 둘 이상 정의할 수 있습니다.
• collectionComponentID - 종속 객체를 수집하는 데 사용되는 컬렉션 컴포넌트 식별자입니다. Windchill 시스템에서는 기본 컬렉션 컴포넌트 식별자 COLLECT_ITEMS_FOR_BOM_RELEASE_RULE을 사용할 수 있습니다. 각 컬렉션 컴포넌트 식별자에는 수집되는 객체를 결정하는 기본 설정이 있습니다. 기본 설정 관리 유틸리티의 비즈니스 규칙 섹션에 있는 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>