ユースケース 13: 範囲属性に基づいて部品をスキップして下流構造を生成
範囲を定義することで下流構造を生成できます。属性値が一定の範囲内にある部品が転送されないようにする必要がある場合があります。skip 属性を使用して、属性値が一定の範囲内にある部品をスキップできます。
BOM トランスフォーマに以下の構造が存在するとします。
Upstream Parent Part (Design)Downstream Parent Part (Manufacturing) の間に対応リンクが存在します。
構造内のすべての部品の部品タイプは wt.part.WTPart です。
「範囲を定義する区切り記号」プリファレンスの値は > に設定されています。これがデフォルト値です。
属性 GDS_MatchWTPart に作成されます。この属性を使用して範囲を定義します。
属性 skip_rangeWTPart に作成されます。この属性を使用して、部品をスキップします。
Part D1 (Manufacturing) の属性 source の値は buy に設定されています。
1. Windchill/codebase/com/ptc/core/foundation/associativity にあるファイル associativity.properties.xconf にアクセスします。
2. 以下の再構築規則を追加します。
<Property name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" multivalued="," default=""/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="transformoption=newBranch"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="targetType=wt.part.WTPart"/>
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="attributeMapping.rule1=GDS_Match:1>9:source:buy"/>
上記のプロパティで、1>9 は範囲を示しています。「範囲を定義する区切り記号」プリファレンスの値は > に設定されています。1>9 は、範囲が 1 から 9 までであることを意味します。この場合、比較のために値 12345678、および 9 が考慮されます。
<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="skipAttribute.skip_range=a20>a90"/>
上記のプロパティで、a20>a90 は範囲を示しています。「範囲を定義する区切り記号」プリファレンスの値は > に設定されています。a20>a90 は、範囲が a20 から a90 までであることを意味します。
* 
上流で選択した部品に対して 操作を開始すると、選択した部品の下の構造がスキャンされます。このコンフィギュレーションにより、以下の処理が行われます。
上流部品の GDS_Match 属性の値が 1 から 9 までである場合、上流部品は一致するターゲット下流部品の下に新規ブランチとして追加されます。
属性 skip_range の値が a20 から a90 までに設定されている上流の部品を Windchill システムが検出すると、その部品はスキップされ、下流に追加されません。ただし、検出された部品の下の構造はスキャンされます。
3. Upstream Parent Part (Design) を選択し、中央の枠のツールバーにある をクリックします。
4. BOM トランスフォーマに以下の構造が表示されます。
* 
プロパティで指定されている基準に基づいて、Part C1 (Manufacturing)Part C2 (Manufacturing)Part C6 (Manufacturing)Part C7 (Manufacturing) は新規部品として Part D1 (Manufacturing) の下に追加されます。
Subassembly C4Subassembly C5 は、skip_range 属性の値が指定されている範囲 a20>a90 に含まれているため、スキップされ、下流ビューに転送されません。
これは役に立ちましたか?