示例:向 <部件> 添加属性
对于预设提供的响应元信息文件,具有 id 属性值 ESIPart 的映射元素就是控制 <Part> 元素输出的映射元素。将重新产生下列相关映射元素:
<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>
|
上面显示的映射元素仅用于说明目的,它可能与 ESI 服务 CD 附带的 ESIResponseMetaInfo.xml 文件相同,也可能不同。
|
使用上述映射元素时,ESI 映射器会生成具有下列结构的 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>
请注意,上述图解映射元素与默认版本不同,因为 (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。另一方面,如果在响应元信息文件的两个或多个版本之间共享相同的值 (其中共享 ID 的映射元素不同),则仅使用其中一个映射元素版本生成响应,这显然不是所期望的。另外,当变更给定 Map 元素的 id 属性值时,应同时对相应的 MapInformation 元素进行变更。以下提供了上述映射元素的 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 元素的值与映射元素的 id 属性值相匹配。
包含以上变更的响应元信息文件位于
<Windchill>/codebase/com/ptc/windchill/esi/examples/ESIResponseMetaInfoExample1.xml。
使用“管理分布”用户界面打开现有目标的“编辑分布目标”对话框,并将字段 ESI Response Meta Information File Path 的值更改为指向文件 ESIResponseMetaInfoExample1.xml。通过单击“确定”保存目标后,将 WTPart 关联到已编辑的目标并发布。
| 也可以从“管理分布”分布用户界面调出“新建分布目标”对话框,并将上述字段的值设置为指向文件 ESIResponseMetaInfoExample1.xml。WTPart 随后可关联到此新创建的目标并发布。 |
| 变更响应元信息文件的内容会变更 ESI 响应的结构。 |
如果使用 ESIResponseMetaInfoExample1.xml 文件,则 Windchill ESI 映射器将生成以下输出:
使用自定义响应元信息文件时所生成的 Windchill ESI 响应的 XML 模式定义位于
<Windchill>/codebase/com/ptc/windchill/esi/examples/Example1.xsd。
使用自定义响应元信息文件时生成的 Windchill ESI 响应位于 <Windchill>/codebase/com/ptc/windchill/esi/examples/Example1.xml。
| 您会发现上述响应文件中的部件元素不包含子元素 View 和 StorageLocation,尽管它们位于响应元信息和模式文件中。仅当首选项“发布工厂特定属性”设置为默认值 (“否”) 时会得到此结果。将此首选项设置为“是”以便通过 ESI 响应发送上述子元素。有关本主题的详细信息,请参阅本文档的后面部分。 |
| 用户可能需要在将多个分布目标 (通常表示多个目标位置) 关联到部件之后发布部件。在这种情况下,将为每个此类目标生成响应消息。为给定目标生成的消息结构将由用于该目标的响应元信息文件的内容决定。因此,目标可以选择以其想要的方式接收响应消息,方法是将 responseMetaInfoPath 属性设置为指向响应元信息文件的相应自定义版本。 |