高度なカスタマイズ > ビジネスロジックのカスタマイズ > パッケージのカスタマイズ > ファイルを選択 - コピー転送の除外決定
  
ファイルを選択 - コピー転送の除外決定
パッケージの成熟度に応じてユーザーによって行われる除外決定を調整するために、いくつかの規則を定義できます。
バックグラウンド
デフォルト実装の一環として、パッケージの成熟度に応じてユーザーによって行われる決定を調整するための規則を定義します。たとえば、パッケージコンテンツの更新のための複製または改訂操作では、明示的なユーザー決定が、ターゲットパッケージ内に存在するコンテンツを通してコピー転送されます。デフォルト実装をカスタマイズし、それぞれのビジネス要件に合わせて動作を拡張できます。提供されるデフォルト実装では、古いパッケージの最新バージョンから更新パッケージの新しいバージョンに、ユーザーの明示的な決定がコピーされます。
範囲/適用可能性/前提条件
この情報は、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 として提供されます。