製品構造差異
ERP Connector は、製品構造差異ロジックを使用して、部品が最後にパブリッシングされた後の製品構造に対する変更を特定します。この差異情報により、データをターゲットエンタープライズシステムと同期化するためにパブリッシングする必要がある情報が明らかになります。
差異は、関連リンクの論理タイプ識別子をキーとして含み、特定のマップを値として含む HashMap として、オブジェクト比較フレームワーク (OCF) によって返されます。含まれている部品に加え、WTPartUsageLink オブジェクトを使用して、含まれている部品に指定されている代用部品と参照指定子をさらに照会してこれらにアクセスします。
手順
カスタマイズするには、デフォルトの実装を拡張し、特定のメソッドをオーバーライドします。
Windchill Information Modeler を使用してクラスを拡張する手順は、「カスタマイズ」セクションで定義されています。デフォルトのインタフェース実装の単純な拡張では、次のプロセスを使用します。
1. エディタまたは任意の統合開発環境 (IDE) を使用して java ソースファイルを定義します。
* 
ERP Connector のインストール時に提供されたクラスを修正したり置き換えたりしないでください。これらのファイルは将来ソフトウェアがリリースされる際に置き換えられる可能性があります。
2. java ソースファイルを Windchill コードベースにコンパイルします。
3. 該当するプロパティを変更して新しい実装を指定します。
詳細については、「service.properties のカスタマイズ」を参照してください。
以下の例は、wt.part.PartUsageInfo クラスを拡張して比較のデフォルト動作を修正する方法を示しています。この例では、デフォルトの比較に加えて行番号も比較しています。
ソースコードは以下の場所にあります。
<Windchill>/codebase/com/ptc/windchill/esi/examples/Example4MyPartUsageInfo.java。サンプルファイルのコンテンツを以下に示します。
package com.ptc.windchill.esi.examples; import wt.part.LineNumber;
import wt.part.PartUsageInfo; import wt.part.WTPartUsageLink; import wt.util.WTException;
public class Example4MyPartUsageInfo extends PartUsageInfo
{
protected boolean isDifferent(PartUsageInfo info)
{
boolean result = super.isDifferent(info);
if (result == false)
{
Example4MyPartUsageInfo other = (Example4MyPartUsageInfo)info; WTPartUsageLink thisLink = this.getPartUsageLink(); WTPartUsageLink otherLink = other.getPartUsageLink(); LineNumber thisLine = thisLink.getLineNumber();
LineNumber otherLine = otherLink.getLineNumber();
if (thisLine == null)
{
if (otherLine != null)
// different line number result = true;
}
}
else
{
if (otherLine == null || thisLine.equals(otherLine) == false)
{
// different line number result = true;
}
}
}
return result;
}
}
次の点に注意してください。
package ステートメントは、Java コンパイラの出力が正しいディレクトリに書き込まれるようにします。
Java import ステートメントは、クラスの継承と実装の詳細を指定するために必要です。
以下の方法によってこの例をコンパイルできます。
Windchill PDMLink をインストールしたときに定義された <Windchill> ディレクトリ内から、次のコマンドを使用して Windchill シェルを起動します。
bin/windchill shell
Java コンパイラを使用してクラスをコンパイルします。
javac -d ./codebase ./codebase/com/ptc/windchill/esi/examples/*.java
新しい実装をアクティブ化するには、wt.properties を修正して、wt.part.PartUsageInfo のサービス実装を指定するプロパティファイルを指定します。
wt.services.applicationcontext.WTServiceProviderFromProperties. customPropertyFiles
ファイル名の後ろに、新しい実装の仕様が含まれているプロパティファイルの名前をコンマで区切って追加します。実装例の仕様が含まれているプロパティファイルの例 (<Windchill>/codebase/com/ptc/windchill/esi/examples/Example4.properties) が用意されています。
wt.services/svc/default/wt.part.PartUsageInfo/null/java.lang.Object/0=com.ptc.windc hill.esi.examples.Example4MyPartUsageInfo/duplicate
これは役に立ちましたか?