高度なカスタマイズ > ビジネスロジックのカスタマイズ > Windchill Visualization Services のカスタマイズ > カスタムパブリッシング > ソリューション > 手順 - チェックインベースのパブリッシングのカスタマイズ > EPMDocument チェックイン用パブリッシングのフィルタ
  
EPMDocument チェックイン用パブリッシングのフィルタ
オーサリングアプリケーション (Creo Parametric) 用にパブリッシングを設定すると、チェックインしたオーサリングアプリケーションのすべての EPMDocuments について、デフォルトでパブリッシングが実行されます。ビジネス上の必要から、特定の基準に基づいて、一部の EPMDocuments をパブリッシング対象から除外するフィルタが必要になる場合があります。たとえば、特定のライフサイクル状態、EPMDocumentType、EPMDocSubType などです。Windchill Visualization Services では、そのような基準に基づくフィルタコードをプラグインするためのコードフックを使用できます。
カスタムクラスで、次の署名でメソッドを定義できます。
public static Boolean epmFilterMethod(EPMDocument epmdoc)
epmFilterMethod の代わりに任意の名前を使用できます。カスタムメソッドを含むクラスが Windchill codebase (ext.wvs.MyFilterMethods) でアクセス可能である必要があります。
次に、クラスおよびメソッドを wvs.properties.xconf に追加します。下記のプロパティのデフォルトは空です。これを更新して、クラスとメソッドを "class/method" の形式で含めます。
<Property default="ext.wvs.MyFilterMethods/epmFilterMethod"
name="publish.service.filterepmdocumentpublishmethod"/>
変更した後、xconfmanager を使用して、変更を wvs.properties に反映させます。
通常 EPMDocument のパブリッシングが行われるチェックインのたびに、このメソッドが開始されるようになります。メソッドが Boolean.TRUE を返すと、特定の EPMDocument のパブリッシングを試みます。メソッドが Boolean.FALSE を返すと、パブリッシングは試みません。
以下に、特定の EPMDocumentType をフィルタで除外する方法の簡単な例を示します。
public static Boolean epmFilterMethod(EPMDocument epmdoc) {
if (epmdoc.getDocType().equals(
EPMDocumentType.toEPMDocumentType("MANIKIN_POSTURE"))) {
return Boolean.FALSE;
}
return Boolean.TRUE;
}
別の例として、LifeCycle 状態が InWork の場合に、EPMDocuments のパブリッシングをフィルタで除外する方法を示します。
public static Boolean epmFilterMethod(EPMDocument epmdoc) {
if (epmdoc.getLifeCycleState() != State.INWORK) {
return Boolean.TRUE;
}
return Boolean.FALSE;
}