サービスエフェクティビティのカスタマイズ
「適用性を管理」ダイアログボックスの「タイプ」ドロップダウンメニューに表示されるリストと、「フィルタを編集」ダイアログボックスの「サービスエフェクティビティ」タブに表示されるリストに、サービスエフェクティビティオブジェクトのカスタムタイプやカスタム属性を追加するには次の手順に従います。
1. コンフィギュレーションファイルを参照してください。
codebase/com/ptc/arbortext/windchill/serviceEffectivityFilter
/server/serviceEffectivityConfig.xml
このファイルは、「サービスエフェクティビティ」設定とフィルタリングの「タイプ」メニューで選択可能なオブジェクトのリストに対応する属性のリストを定義します。
* 
このファイルは、次回のアップグレード/インストールで上書きされないように、編集してからカスタマイズ可能なファイルの「安全領域」に追加します。詳細については、このヘルプセンターの「カスタマイズしたファイルの管理とテキストの調整を行うディレクトリ構造の設定」を参照してください。
2. 含める属性の内部名については、「タイプおよび属性の管理」ユーティリティを参照してください。すべての新規カスタム属性はこのユーティリティで作成する必要があります。詳細については、タイプおよび属性の管理ユーティリティの使用を参照してください。
3. serviceEffectivityConfig.xml で、次に示すフォーマットの ServiceEffectivtyType エントリを作成し、属性を宣言します。
<ServiceEffectivityType name="seLotNumber" renderer="com.ptc.arbortext.windchill.serviceEffectivityFilter.client.ui.
renderers.configTypes.DefaultCustomConfigType" effectivityType="com.ptc.arbortext.windchill.siscore.serviceeff.
ServiceEffectivity"/>
この例では次のとおりです。
name は、「サービスエフェクティビティ」属性の内部名です。これは、「タイプおよび属性の管理」で定義されている属性の内部名と一致する必要があります。
renderer は、タイプに関してどのフィールドが表示され、それらが UI でどのように処理されるかを定義する Java クラスです。デフォルトでは、これがジェネリックな DefaultCustomConfigType です。このレンダラーは単純な表示を生成します - 属性の表示名と Value テキストフィールドです。
カスタムのレンダラーを作成して ServiceEffectivityConfigType を実装し、この属性のもとで宣言することができます。
レンダラーはまた、JSON オブジェクト内でカスタム属性がどのようにフィルタへ渡されるかを決定します。
属性のカスタムのデータ入力フィールドを作成する方法については、カスタムのサービスエフェクティビティコンフィギュレーションパネルの作成を参照してください。
effectivityType はカスタム属性が作成されたサービスエフェクティビティのタイプ (オブジェクト) の内部名です。これは ServiceEffectivity のサブタイプである場合があります。これは、「タイプおよび属性の管理」で定義されているタイプの内部名と一致する必要があります。
4. 再び serviceEffectivityConfig.xml を使用して、構造のルートノードのオブジェクトタイプのコンテキスト内で属性のエントリを作成します (WTPart など)。このエントリは、関連するオブジェクトの「タイプ」ドロップダウン内の属性を表示するために必要です。
関連する ServiceEffectivityInstance エレメントの csvalid エントリを次に示すフォーマットで作成します。
<csvalid serviceeffectivitytype="seLotNumber"/>
次に、WTPart の完全な ServiceEffectivityInstance エントリの例を示します。
<ServiceEffectivityInstance objectType="wt.part.WTPart,wt.part.WTPartMaster,wt.part.alternaterep.WTPartAlternateRep"
objectMaster="wt.part.WTPartMaster">
<csvalid serviceeffectivitytype="serialNumber"/>
<csvalid serviceeffectivitytype="date"/>
<csvalid serviceeffectivitytype="seLotNumber"/>
</ServiceEffectivityInstance>
serialNumber および date がファイルのデフォルトのエントリで、seLotNumber がカスタム属性である場合。
* 
このファイルの csvalid エントリの順序は、ドロップダウンメニュー内のタイプの順序を決定します。
5. このヘルプセンターの「カスタマイズしたファイルの管理とテキストの調整を行うディレクトリ構造の設定」に記載されている規則に従って、変更点を serviceEffectivityConfig.xml に保存します。
サービスエフェクティビティに基づいてフィルタする際にカスタム属性を効果的に使用するには、フィルタオブジェクトとサービスエフェクティビティオブジェクト間の比較を処理する、カスタムのフィルタ委任を作成します。詳細については、カスタムのフィルタ委任の作成を参照してください。
カスタムのサービスエフェクティビティ属性のための、カスタムのフィルタ委任の作成
Windchill には、フィルタリングの際にサービスエフェクティビティ属性を処理するための委任が用意されています (改行は無視します)。
com.ptc.arbortext.windchill.siscore.serviceeff.filterDelegates.
DefaultServiceEffectivityDelegate
Windchill のサービスプロパティを使用して、この委任をオーバーライドしてカスタムの委任を指定することもできます。
1. プロパティの適切な新規の値を含む、XCONF ファイルを作成します。
com.ptc.arbortext.windchill.siscore.serviceeff.filterDelegates.
DefaultServiceEffectivityDelegate
次の XML ドキュメントは、フィルタリングの際にサービスエフェクティビティオブジェクトを処理するための XCONF コマンドです。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Configuration
SYSTEM "xconf.dtd">
<Configuration targetFile="codebase/typedservices.properties">
<Service context="default" name="com.ptc.arbortext.windchill.siscore.serviceeff.ServiceEffectivityFilterFactory">
<Option requestor="WCTYPE|com.ptc.arbortext.windchill.siscore.serviceeff.ServiceEffectivity"
serviceClass="com.ptc.arbortext.windchill.siscore.serviceeff.filterDelegates.DefaultServiceEffectivityDelegate"/>
</Service>
<Service context="default" name="wt.filter.NavigationFilterDelegate2">
<Option cardinality="singleton" requestor="null"
serviceClass="com.ptc.arbortext.windchill.siscore.serviceeff.filterDelegates.DefaultServiceEffectivityDelegate"
selector="com.ptc.arbortext.windchill.siscore.serviceeff.ServiceEffectivityFilter"/>
</Service>
</Configuration>
serviceClass 属性下の DefaultServiceEffectivityDelegate 参照を変更して、新しいカスタムの委任を反映します。
xconfmanager ユーティリティの使用方法については、xconfmanager ユーティリティの使用を参照してください。
2. xconfmanager ユーティリティを使用して、Windchill のサービスプロパティを更新します。次のコマンドは、新しいファイルとその内容を登録します。
xconfmanager -i codebase/custom/myServiceXconfFile.properties.xconf -p
これは役に立ちましたか?