高度なカスタマイズ > Windchill ESI のカスタマイズ > Windchill ESI のカスタマイズ - SAP > 例 - Windchill から SAP > 複数のタイプ/ソフトタイプ拡張をサポートするためのミドルウェアのカスタマイズ
複数のタイプ/ソフトタイプ拡張をサポートするためのミドルウェアのカスタマイズ
この例では、カスタマイズした部品のパブリッシングをサポートするように TIBCO プロジェクトをカスタマイズする手順を示します。この例では、ESI 応答に Part エレメントに加えて BuyerPart エレメントが含まれるように (BuyerPart は WtPart の拡張) Windchill ESI サービスがカスタマイズされていることを前提としています。
Windchill ESI Services でのプロセス:
1. メソッドサーバーからアクセス可能なディレクトリに ESI 応答メタ情報ファイル ($CODEBASE$/com/ptc/windchill/esi/ESIResponseMetaInfo.xml) のコピーを作成します。
* 
Windchill ESI のインストール時に提供された応答メタ情報ファイルを直接修正しないでください。このファイルは将来ソフトウェアがリリースされる際に置き換えられる可能性があります。このファイルを修正する必要がある場合は、新しい場所にコピーし、代わりにコピーを修正します。
2. 以下に示すように、新しい Map エレメントをファイルに追加します。これは部品の既存の Map エレメントと同じですが、PlantBuyerID のエントリが追加され、id 属性が修正されている点が異なります。以下では (新しく追加した Map エレメントと部品の既存の Map エレメントの間の) 差異を太字で示しています。
<esi:Map id="ESIBuyerPart">
<esi:attributeMapping sourceAttribute="obid">ObjectID</esi:attributeMapping>


<esi:attributeMapping sourceAttribute="storageLocation" plantSpecificAttribute="true">StorageLocation</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="phantom">IsPhantom</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="PlantBuyerID">PlantBuyerID</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="versionInfo.identifier.versionId">Version</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="iterationInfo.identifier.iterationId">Iteration</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="PreviousVersion">PreviousVersion</esi:attributeMapping>
</esi:Map>
* 
新しく追加した Map エレメントの attributeMapping エントリが ESIResponse スキーマにおける順序と同じになるようにします。
3. 以下に示すように、ファイルに新しい MapInformation エレメントを追加します。
<esi:MapInformation id="ESIBuyerPartInfo">
<esi:typedef>wt.part.WTPart|BuyerPart</esi:typedef>
<esi:elementMetaName>BuyerPart</esi:elementMetaName>
<esi:keyAttribute>Number</esi:keyAttribute>
<esi:keyAttribute>Version</esi:keyAttribute>
<esi:keyAttribute>PreviousVersion</esi:keyAttribute>
<esi:keyAttribute>View</esi:keyAttribute>
<esi:keyAttribute>StorageLocation</esi:keyAttribute>
<esi:mapRef>ESIBuyerPart</esi:mapRef>
</esi:MapInformation>
4. 以下に示すように、部品の GroupInformation エレメントを修正します。
<esi:GroupInformation>
<esi:logicalName>AddedParts</esi:logicalName>
<esi:physicalName>AddedParts</esi:physicalName>
<esi:releaseClass>com.ptc.windchill.esi.Part</esi:releaseClass>
<esi:releaseActivityNeeded>true</esi:releaseActivityNeeded>
<esi:mapInformationRef>ESIPartInfo</esi:mapInformationRef>
<esi:mapInformationRef>ESIBuyerPartInfo</esi:mapInformationRef>
</esi:GroupInformation>
変更された部品と変更されていない部品の両方の GroupInformation エレメントでも上記の変更が必要です。
5. 上記の変更を行ったファイルを保存します。データのパブリッシング先となる配布ターゲットの「配布ターゲットを編集」 UI を使用して、修正バージョンのメタ情報ファイルを指すように属性「ESI 応答メタ情報のファイルパス」を設定します。
* 
ここでは、内部名 BuyerPart と属性 PlantBuyerID を持つ WTPart のソフト拡張が Windchill PDMLinkType and Attribute Management オプションを使用してすでに作成されていることを前提としています。
EAI ソフトウェアコンポーネントでのプロセス:
1. ESIResponse スキーマを修正します。
場所: <プロジェクト名> > SharedConfigurations > ESISchemas > WindchillInteractionSchemas > ESIResponse
a. PlantBuyerID 用に文字列タイプのエレメントを作成します。
b. BuyerPart を作成します。
BuyerPart は Part エレメントと非常によく似ているので、Part エレメントスキーマをコピーして、以下のように変更を加えることができます。
ESIResponse スキーマで、ソースボタンをクリックすると、スキーマソースエディタが開きます。以下に示すように、Part エレメントのソースをサーチします。
上記の Part エレメントをコピーし、Part エレメントのすぐ後ろに貼り付けます。次に、以下のように変更します。
上の図では、コピーした Part エレメントの名前が BuyerPart に変更され、PlantBuyerID が参照として追加されています。
c. AddedParts、ChangedParts、UnchangedParts に参照として BuyerPart を追加します。
上の図では、BuyerPart が、エレメント AddedPartChangedPartUnchangedPart にオプションおよび反復可能として追加されています。
2. CBO スキーマを修正します。
A) PartUserArea での変更
場所: <プロジェクト名> > SharedConfigurations > ESISchemas > EAIMiddlewareSchemas > PartUserArea
UserAreaFields の名前を PlantBuyerID に変更します。
3. コレクションから CBO にマッピングします。
場所:
プロセス: <プロジェクト名> > ProcessDefinitions > Start_ESIResponse_Map_CBO_PD アクティビティ: Mapper_ESIResponse_CBO_Headers
a. 以下に示すように、入力マッピングに移動し、Part のマッピングを複製します。
b. 以下に示すように、複製した Part でマッピングを Part から BuyerPart に変更します。
c. マッピングエラーがないことを確認します。
4. ERP 呼び出しにマッピングします。
場所:
プロセス: <プロジェクト> > ProcessDefinitions > ERP Communications > Part > Start_CBOPart_CreateChange_PD
アクティビティ: Invoke_BAPI_MATERIAL_SAVEREPLICA ClientData での変更
ClientData での変更
ClientDataX での変更
PlantData での変更
PlantDataX での変更
5. ESILookup.properties に追加します。検索情報を ESILookup.properties ファイルに追加します。
MaterialGroup.001.*.*=00101
PurchaseGroup.001.*.*=001
この例を実行する方法:
1. ESILookup.properties 内のプロパティファイルが適切に修正されていることを確認します。
2. 適切な配布ターゲットが Windchill に読み込まれていることを確認します。
3. リリース済み状態があるライフサイクルが少なくとも 1 つ存在していることを確認します。
4. すべてのコンポーネント (Windchill、TIBCO、SAP) が稼動していることを確認します。
5. BuyerPart タイプの新規部品を作成し、必要に応じてこれに配布ターゲットを関連付けて、その PlantBuyerID 属性を設定し、部品のライフサイクル状態を「リリース済み」に設定することで、サンプル Windchill ESI ワークフローを使用して SAP にリリースします。
6. プロセスが完了した後、SAP にログインし、データが正しく作成されたことを確認します。
これは役に立ちましたか?