高度なカスタマイズ > ビジネスロジックのカスタマイズ > Windchill Visualization Services のカスタマイズ > カスタムパブリッシング > ソリューション > 手順 - チェックインベースのパブリッシングのカスタマイズ > WTDocument チェックインまたはアップロード用パブリッシングのフィルタ
  
WTDocument チェックインまたはアップロード用パブリッシングのフィルタ
EPMDocuments のパブリッシングのフィルタと非常によく似ていて、WTDocument パブリッシングにもフィルタを行う方法があります。たとえば、特定のファイル名、ライフサイクル状態に基づくフィルタが必要な場合があります。Worker が特定の WTDocument 内容をパブリッシングするように設定されている場合は、カスタムフィルタメソッドを使用して、一部の内容をパブリッシング対象から除外できます。
カスタムクラスで、次の署名でメソッドを定義できます。
public static Boolean docFilterMethod(WTDocument doc, ContentItem ci)
docFilterMethod の代わりに任意の名前を使用できます。カスタムメソッドを含むクラスが Windchill codebase (ext.wvs.MyFilterMethods) でアクセス可能である必要があります。このメソッドは、パラメータとして ContentItem を含む点が EPMDocument フィルタメソッド署名と異なります。このメソッドは、チェックイン時に、WTDocument に関連付けられた各 ContentItem について呼び出されます。アップロード時にも呼び出されます。たとえば、.doc ファイルをプライマリコンテンツとして、.xls ファイルをセカンダリコンテンツとして持つ WTDocument がある場合、このメソッドは各コンテンツアイテムに対して、合計 2 回呼び出されます (Worker の保留が両タイプのコンテンツと関連付けられている)。
次に、クラスおよびメソッドを wvs.properties.xconf に追加します。下記のプロパティのデフォルトは空です。これを更新して、クラスとメソッドを "class/method" の形式で含めます。
<Property default="ext.wvs.MyFilterMethods/docFilterMethod"
name="publish.service.filterdocumentpublishmethod"/>
変更した後、xconfmanager を使用して、変更を wvs.properties に反映させます。
通常 WTDocument のパブリッシングが行われるチェックインまたはアップロードのたびに、このメソッドが開始されるようになります。メソッドが Boolean.TRUE を返すと、特定の WTDocument ContentItem のパブリッシングを試みます。メソッドが Boolean.FALSE を返すと、パブリッシングは試みません。
以下の例では、WTDocument の説明が "Do Not Publish" の場合、またはコンテンツのファイル名が "donotpublish" で始まる場合にフィルタを適用する方法を示します。
public static Boolean docFilterMethod(WTDocument doc, ContentItem ci) {

if (doc.getDescription().equals("Do Not Publish")) {
return Boolean.FALSE;
}
if (ci instanceof ApplicationData) {
String filename = ((ApplicationData)ci).getFileName();
if (filename.startsWith("donotpublish") {
return Boolean.FALSE;
}
}
return Boolean.TRUE;
}