例: <Part> への属性の追加
既成で提供されている応答メタ情報ファイルでは、id 属性の値が ESIPart である Map エレメントが <Part> エレメントの出力を制御します。関連する Map エレメントを以下に示します。
<esi:Map id="ESIPart">
<esi:attributeMapping sourceAttribute="obid">ObjectID</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx" defaultValue="com.ptc.windchill.esi.Part">Class</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="modifier">LastChangedBy</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="number">Number</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">StartEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">EndEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">StartSerialNumberEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">EndSerialNumberEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">StartLotNumberEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">EndLotNumberEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">SerialNumberEffectivityCxtPartNumber</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">LotNumberEffectivityCxtPartNumber</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="defaultUnit">DefaultUnit</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="name">Name</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="partType">PartType</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="source">Source</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="state.state">State</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="view" plantSpecificAttribute="true">View</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="storageLocation" plantSpecificAttribute="true">StorageLocation</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="phantom">IsPhantom</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:attributeMapping sourceAttribute="genericType">IsConfigurable</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="collapsible">IsCollapsible</esi:attributeMapping>
</esi:Map>
* 
上記の Map エレメントは単に説明用として提供されており、ESI Services の CD に付属する ESIResponseMetaInfo.xml ファイル内の Map エレメントとは異なる場合があります。
上記の Map エレメントを使用した場合、ESI マッパーは以下の構造を持つ XML エレメントを生成します。
Part XML エレメントのデフォルト構造
応答メタ情報ファイル内の Map エレメントが修正されて部品の属性 traceCode に対応するエントリが追加された場合、以下に示す形式になります。
<esi:Map id="ESINewPart">
<esi:attributeMapping sourceAttribute="obid">ObjectID</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx" defaultValue="com.ptc.windchill.esi.Part">Class</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="modifier">LastChangedBy</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="number">Number</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">StartEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">EndEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">StartSerialNumberEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">EndSerialNumberEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">StartLotNumberEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">EndLotNumberEffectivity</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">SerialNumberEffectivityCxtPartNumber</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx">LotNumberEffectivityCxtPartNumber</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="defaultUnit">DefaultUnit</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="name">Name</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="partType">PartType</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="source">Source</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="state.state">State</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="view" plantSpecificAttribute="true">View</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="storageLocation" plantSpecificAttribute="true">StorageLocation</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="phantom">IsPhantom</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:attributeMapping sourceAttribute="genericType">IsConfigurable</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="collapsible">IsCollapsible</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="traceCode">TraceCode</esi:attributeMapping>
</esi:Map>
上記の Map エレメントは、(i) その id 属性の値が異なり、(ii) traceCode 属性用の追加の attributeMapping エレメントがあるという点で、デフォルトのバージョンとは異なります。
(i) については、it is imperative that the id attribute of a given Map element has a unique value for a given ESI installation。これに対し、同じ値が 2 つ以上のバージョンの応答メタ情報ファイル間で共有されている場合 (id を共有する Map エレメントが異なる場合)、応答の生成には Map エレメントの 1 つのバージョンだけが使用され、これは想定されているものとは明らかに異なります。また、特定の Map エレメントの id 属性の値を変更する場合、対応する MapInformation エレメントにも変更を加える必要があります。上記の Map エレメントに対応する修正バージョンの MapInformation エレメントを以下に示します。
<esi:MapInformation id="ESIPartInfo">
<esi:typedef>wt.part.WTPart</esi:typedef>
<esi:elementMetaName>Part</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>ESINewPart</esi:mapRef>
</esi:MapInformation>
mapRef エレメントの値が Map エレメントの id 属性の値と一致していることに注意してください。
上記の変更が加えられた応答メタ情報ファイルが以下の場所にあります。
<Windchill>/codebase/com/ptc/windchill/esi/examples/ESIResponseMetaInfoExample1.xml
「配布を管理」 UI を使用して、既存のターゲットの「配布ターゲットを編集」ダイアログを開き、ESI Response Meta Information File Path フィールドの値を変更してファイル ESIResponseMetaInfoExample1.xml に設定します。「OK」をクリックしてターゲットを保存した後、編集したターゲットに WTPart を関連付けてリリースします。
* 
または、「配布を管理」 UI から「新規配布ターゲット」ダイアログを開き、先ほどのフィールドの値を ESIResponseMetaInfoExample1.xml ファイルに設定することもできます。この新しく作成されたターゲットに WTPart を関連付けてリリースできます。
* 
応答メタ情報ファイルのコンテンツを変更すると、ESI 応答の構造が変わることがあります。
ESIResponseMetaInfoExample1.xml ファイルが使用された場合、Windchill ESI マッパーは次の出力を生成します。
カスタマイズされた Part XML エレメントの構造 - 例 1
カスタマイズされた応答メタ情報ファイルが使用された場合に生成される Windchill ESI 応答の XML スキーマ定義が以下の場所にあります。
<Windchill>/codebase/com/ptc/windchill/esi/examples/Example1.xsd
カスタマイズされた応答メタ情報ファイルを使用した場合に生成される Windchill ESI の応答が <Windchill>/codebase/com/ptc/windchill/esi/examples/Example1.xml にあります。
* 
応答メタ情報ファイルとスキーマファイルには子エレメント ViewStorageLocation が存在しますが、上記の応答ファイル内の Part エレメントにはこれらの子エレメントがありません。これは「プラント特有情報をパブリッシング」プリファレンスがデフォルト値 (「いいえ」) に設定されている場合にのみ起こります。ESI 応答で上記の子エレメントが送信されるようにするには、このプリファレンスを「はい」に設定します。このトピックの詳細については、このドキュメントの後のセクションで説明します。
* 
複数の配布ターゲット (通常は複数の宛先を表す) を部品に関連付けた後で、部品をリリースできます。そのような場合、このようなターゲットごとに応答メッセージが生成されます。特定のターゲットに生成されるメッセージの構造は、そのターゲットに使用されている応答メタ情報ファイルのコンテンツによって決まります。したがって、ターゲットは responseMetaInfoPath 属性を適切にカスタマイズされたバージョンの応答メタ情報ファイルに設定することによって、希望する構造で応答メッセージを受信できます。
これは役に立ちましたか?