非バージョン化オブジェクトのハンドラ
1. ClassExporterImporterTemplate を拡張する Java クラスを作成します。
2. 以下のメソッドを実装します。public Object createObject (IxbElement fileXML, Importer importer)
3. 必要に応じて以下のメソッドをオーバーライドします。
public Object importObjectsAttributes ( List<ElementObjectpair> pairs,
Importer importer);
public ObjectstoreObjects (
List<ElementObjectPair> pairs,
Importer importer);
public Object,importObjectsAttributesAfterStore(
List<ElementObjectPair> pairs,
Importer importer);
public Object findAmongExistingObjectsInternal (IxbElement fileXML,
Importer importer);
|
createObject()、importObjectsAttributes()、storeObjects()、importObjectsAttributesAfterStore() の順序でオブジェクトがインポートされます。
• createObject(): データベースにオブジェクトが存在しない場合 (findAmongExistingObjects で見つからなかった場合) は、オブジェクトが作成され、オブジェクトのすべての Ufid 属性がインポートされます。
• importObjectsAttributes(): オブジェクト storeObjects() のすべての属性をインポートします。メソッド storeObjects() は PersistenceHelper.manager.store() を呼び出します。
• importObjectsAttributesAfterStore(): オブジェクトの保存後に、インポートする必要があるすべての属性をインポートします。
|
4. ハンドラのレジストリファイル (<Windchill>\registry\ixb\handlers\coreX10) にエントリを追加します。このエントリは、インポート中のクラス (MyObject)、コア Windchill オブジェクトの XML DTD (standardX20.dtd)、および com.ptc.mypackage.ExpImpForMyObject クラスのハンドラを指定します。以下にエントリの例を示します。
<elementImporter>
<tag>MyObject</tag>
<dtd>standardX20.dtd</dtd>
<handler>com.ptc.mypackage.ExpImpForMyObject</handler>
</ elementImporter >