ファイルを選択 - コピー転送の除外決定
パッケージの成熟度に応じてユーザーによって行われる除外決定を調整するために、いくつかの規則を定義できます。
バックグラウンド
デフォルト実装の一環として、パッケージの成熟度に応じてユーザーによって行われる決定を調整するための規則を定義します。たとえば、パッケージコンテンツの更新のための複製または改訂操作では、明示的なユーザー決定が、ターゲットパッケージ内に存在するコンテンツを通してコピー転送されます。デフォルト実装をカスタマイズし、それぞれのビジネス要件に合わせて動作を拡張できます。提供されるデフォルト実装では、古いパッケージの最新バージョンから更新パッケージの新しいバージョンに、ユーザーの明示的な決定がコピーされます。
範囲/適用可能性/前提条件
• この情報は、Windchill の一部のオブジェクトの情報ページを設定する開発者またはカスタマイズ担当者が適用します。
• 「パッケージ」および「ファイルを選択」機能に関する基本知識があることを前提としています。
予測される結果
予測される結果は、それぞれのビジネス要件に従った実装によって異なります。
ソリューション
カスタム Java クラスを作成し、パッケージ更新時の明示的な決定のコピー転送のデフォルト動作をオーバーライドできます。
前提となる知識
予測される結果を達成するには、以下のことを理解している必要があります。
• 「パッケージ」および「ファイルを選択」に関する基本知識。
• Windchill のオブジェクトのバージョン管理の基本知識。
• Windchill のプロパティファイルの管理 (xconfmanager の使用を含む)。
ソリューションエレメント
エレメント
|
タイプ
|
説明
|
ContentControlDecisionVersionDelegate
|
Java インタフェース
|
新しいカスタムクラスによって実装される必要があるインタフェース
|
AbstractContentControlDecisionVersionDelegate
|
抽象クラス
|
ContentControlLink コンパレータがある抽象クラス
|
contentcontrol-service.properties.xconf
|
XCONF ファイル
|
新しいカスタムクラスの設定に使用する
|
手順 - 明示的な決定のコピー転送のための新しいカスタムクラスの作成
1. "ContentControlDecisionVersionDelegate" を実装する新しいカスタム Java クラス <custom class> を作成し、"copyExclusionInfoForRevision" API に対するカスタム実装を提供します。
2. 前述の API の実装は、それぞれのビジネス要件に従う必要があります。
3. 次のエントリについて、contentcontrol-service.properties.xconf ファイルを確認します。
<!-- ContentControlDecisionVersionDelegate -->
<Service name="com.ptc.windchill.contentcontrol.delegates.
ContentControlDecisionVersionDelegate">
<Option serviceClass="com.ptc.windchill.contentcontrol.delegates.
DefaultContentControlDecisionVersionDelegate"
requestor="java.lang.Object"
selector="null"
cardinality="singleton"/>
</Service>
新しいカスタム実装クラスの完全修飾名を使用して、次の serviceClass 属性を変更します。
<Service name="com.ptc.windchill.contentcontrol.delegates.
ContentControlDecisionVersionDelegate">
<Option serviceClass="<custom class>"
requestor="java.lang.Object"
selector="null"
cardinality="singleton"/>
</Service>
4. xconfmanager -p を実行して、前述の変更を service.properties に適用します。
5. メソッドサーバーを再起動して変更を有効にします。
カスタマイズポイント
ContentControlDecisionVersionDelegate は単一の API とのインタフェースを確立します。
void opyExclusionInfoForRevision(WTKeyedMap masterToOldCClMap,
WTKeyedMap masterToNewCClMap) throws WTPropertyVetoException ;
パラメータは以下のとおりです。
• masterToOldCClMap : WTKeyedMap;: このマップには、マスターオブジェクトがキーとして、古い ContentControlLinks のリストが値として格納されます。
• masterToNewCClMap : WTKeyedMap;: このマップには、マスターオブジェクトがキーとして、新しい ContentControlLinks のリストが値として格納されます。
同じマスターに対する新旧両方の ContentControlLinks のリストを取得することで、除外情報を古いリンクから新しいリンクにコピーできます。新しい ContentControlLinks のリストには、古いリンク内に同じバージョンが存在する ContentControlLinks は含まれません。このために、デフォルトで除外情報が古いリンクからコピーされます。以前には存在しなかったバージョンのみがリストに追加されます。
サンプルコード
この機能のデフォルト実装は、com.ptc.windchill.contentcontrol.delegates パッケージで DefaultContentControlDecisionVersionDelegate として提供されます。