高度なカスタマイズ > ビジネスロジックのカスタマイズ > パッケージのカスタマイズ > 送信物のダウングレードのためのカスタマイズ > 変換フィルタ
  
変換フィルタ
フィルタは、特定のターゲットリリースに該当しない XML ファイルをダウングレード送信物 zip から除去するために提供される成果物です。変換フィルタは、名前ベース、XPath ベース、または Java ベースタイプの場合があります。
これらのコンフィギュレーションを実行するアプリケーション開発者は、Java、XML、XSL の専門知識を備えていると想定されます。
名前ベースのフィルタ
新規のダウングレード送信物 ZIP ファイルからエレメントを除去するには、このフィルタを適用します。たとえば、最新の Windchill リリースに新しいオブジェクトタイプが導入されたものの、このオブジェクトが Windchill の以前のリリースではサポートされていない場合などです。
タグ名に基づくフィルタを指定する場合は、タグ名にサフィックス _filter.properties を追加します。
除去するエレメントをコンマ区切り値で追加します。
タグベースのフィルタコンフィギュレーションによる filter.properties ファイルの例:
tagsToFilter=WTChangeOrder2,WTChangeActivity2,LWWfProcess,LWWfAssignmentEventAudit,LWWfAssignedActivity,LWWorkItem contentInclusionCriteria=+;-WCTYPE|wt.doc.WTDocument
ここで、contentInclusionCriteria は、同期化された送信物に挿入または除外するオブジェクトタイプをリストします。これらの除外または挿入は、左から右へ累積的に評価されます。
+: デフォルトですべてのオブジェクトタイプが含まれます。
-WCTYPE|wt.doc.WTDocument: WTDocument オブジェクトを除外します。
filter.properties ファイルは <Windchill コードベース>/registry/transformationEngine/filter/<リリース ID>/ にあります。
XPath ベースのフィルタ
このフィルタコンフィギュレーションは、XPath に基づいています。オブジェクト固有の XML が特定の属性の特定の値に対して除去される場合は、このフィルタを適用します。たとえば、現在のリリースに新しいソフトタイプが導入され、そのソフトタイプに関連するすべての XML ファイルをダウングレード送信物で除去する必要がある場合などです。
XPath フィルタを指定するときには、サフィックス _xpath_filter.xml を名前に追加します。
xpath_filter.xml ファイルは <Windchill コードベース>/registry/transformationEngine/filter/<リリース ID>/ にあります。
Java ベースのフィルタ
永続照会を実行して、名前ベースのフィルタと XPath ベースのフィルタのフィルタ結果に基づいて追加のオブジェクトを削除する場合は、このフィルタコンフィギュレーションを使用します。このフィルタを適用する例としては、ソフトタイプが無効な場合に、データの整合性に影響する必要なすべての依存オブジェクトをフィルタすることになります。
これらのフィルタは、ダウングレード送信物パッケージから XML ファイルをフィルタするために使用されます。XML ファイルにダウングレードがサポートされていない属性がある場合は、XSL 変換スクリプトを使用して、フィルタコンフィギュレーションを設定することを検討してください。
同期化された送信物ではオブジェクトのコンテンツは除外されます。これによって、同期化された ZIP 送信物のサイズが小さくなります。ダウングレード中にオブジェクトがフィルタされた場合、同期化された送信物にそのコンテンツが含まれます。フィルタされたオブジェクト以外のオブジェクトのコンテンツを含めるには、filter.properties でプロパティ contentInclusionCriteria を設定します。
たとえば、WTDocument タイプのコンテンツを除外するには、filter.propertiescontentInclusionCriteria=+;-WCTYPE|wt.doc.WTDocument として定義します。詳細については、「名前ベースのフィルタ」のセクションを参照してください。
エレメントハンドラ
エレメントハンドラは、Java 変換 API に基づく変換の起動元です。これらのエレメントハンドラは、特定の要素タグに対して設定できます。エレメントごとに以下の 3 つのフェーズで変換が行われます。
1. 事前処理フェーズでは、変換用に XML ファイルを準備するために必要な操作を設定します。これは、XSL では処理できない使用例で必要とされます。オブジェクトオーナーは、事前処理ロジックを提供する事前処理メソッドを決定できます。フレームワークは、属性に対する登録済みのエレメントハンドラの事前処理を呼び出します。
2. 変換フェーズでは、XSL で設定されたコンフィギュレーションに基づいて、XML ファイルをターゲット XML ファイルに変換します。
3. ポストプロセスフェーズでは、変換後の XML ドキュメントと、エレメント変換処理の検証アクティビティが必要です。オブジェクトオーナーは、ポストプロセスロジックを提供するポストプロセスメソッドを決定できます。フレームワークは、属性に対する登録済みのエレメントハンドラのポストプロセスを呼び出します。
コンテンツの変換
デフォルトでは、ダウングレードプロセスの実行中にコンテンツがコピーされます。ダウングレードプロセスでコンテンツを更新するには、次の手順に従います。
1. XSLTransformElementHandler から拡張することで、エレメントハンドラを作成します。ContentTransformationRequired が true を返すように、メソッドをオーバーライドします。
2. メタデータ変換の必要がない場合は、変換メソッドをオーバーライドして、そのままのコレクションを返します。これにより、コピーだけのために XSLT プロセッサを呼び出すことがなくなるので、パフォーマンスが向上します。
3. ContentTransformer を拡張することで、タスクを実装します。
4. 必要に応じてメソッドを実装します。ContentTransformer の呼び出しメソッドでは、以下を実行できるようにする必要があります。
a. 一時的な場所にコンテンツをダウンロードする。
b. 必要に応じて、コンテンツをダウングレードする。
c. ダウングレードされたコンテンツの inputstream を返す。
5. xconf ファイルにタスクを登録します。詳細については、xconfmanager ユーティリティの使用を参照してください。