BOM トランスフォーマでのスマートコレクションによるフィルタ基準のマージ
最良事例の名前と分類
BOM トランスフォーマでのスマートコレクションによるフィルタ基準のマージ
目的
MAPSB でのフィルタ基準とスマートコレクションのマージに関するカスタマイズガイドラインを示します。
前提となる知識
このベストプラクティスを適用するには、以下を理解しておく必要があります。
• MPMLink と BOM 構造の基本知識
• Java に関連した基本的な開発
• *-actions.xml、*-actionmodels.xml、および *.xconf ファイルのカスタマイズの管理
ソリューションエレメント
既存のフィルタ (saved NavigationCriteria など) が適用されているスマートコレクションを開きます。次に、このスマートコレクションに新規またはカスタムフィルタ (client NavigationCriteria など) を適用します。新規フィルタ基準と既存のフィルタ基準をマージする、つまり saved NavigationCriteria と client NavigationCriteria をマージするには、次の手順を実行します。
1. 既存の com.ptc.windchill.associativity.delegate.OpenAMInStructureBrowserDelegate 委任を拡張する新規カスタム委任を作成します。
たとえば、CustomOpenAMInStructureBrowserDelegate などです。
2. 次のメソッドをオーバーライドし、カスタマイズコードを追加します。
public NavigationCriteria mergeNC(NavigationCriteria savedNc, NavigationCriteria clientNc)throws WTException;
サンプルコードは次のとおりです。
import com.ptc.windchill.associativity.delegate.OpenAMInStructureBrowserDelegate;
import wt.filter.NavigationCriteria;
import wt.util.WTException;
public class CustomOpenAMInStructureBrowserDelegate
extends OpenAMInStructureBrowserDelegate{
@Override
public NavigationCriteria mergeNC(NavigationCriteria savedNc, NavigationCriteria clientNc) throws WTException {
// customization code to put filters or configuration specification from savedNc to clienNC
return clientNc;
}
}
3. xconf の新規クラスのエントリを更新します。たとえば、CustomOpenAMInStructureBrowserDelegate などです。
4. com/ptc/windchill/associativity/xconfs/associativity.service.properties.xconf ファイル内の OpenAMInStructureBrowserDelegate 委任のエントリを除去します。
サンプルコードは次のとおりです。
<Service context="default" name="com.ptc.windchill.associativity.delegate.OpenInStructureBrowserDelegate">
<Option cardinality="singleton" requestor="wt.facade.persistedcollection.PersistedCollectionHolder" serviceClass="com.ptc.windchill.associativity.delegate.OpenMCInStructureBrowserDelegate"/>
<Option cardinality="singleton" requestor="wt.fc.util.PersistedProperty" serviceClass="com.ptc.windchill.baseclient.server.delegate.OpenSearchResultInStructureBrowserDelegate"/>
<Option cardinality="singleton" requestor="wt.associativity.accountability.AccountabilityMap" serviceClass="com.custom.delegate.CustomOpenAMInStructureBrowserDelegate"/>
</Service>