背景
为给定目标位置生成的 ESI 响应消息的结构由与表示该目标位置的分布目标相关联的所谓 ESI response meta information file 的内容决定。此文件的默认版本位于 <Windchill>\codebase\com\ptc\windchill\esi 下,文件名为 ESIResponseMetaInfo.xml。默认情况下,分布目标 (本质上是 Windchill 中的 ESITarget 对象) 通过 responseMetaInfoPath 属性引用此文件。用户可以将此属性的值修改为任何其他值,具体取决于要用于生成针对该目标的 ESI 响应的文件。
* 
仅当以 ESI XML 格式生成消息时 (即,当分布目标属性 ESI Response Output Format 设置为 ESI XML 时),ESI 响应元信息文件的内容才会影响 ESI 响应消息的结构。
从广义上讲,ESI 响应消息包含四种不同类型的 XML 元素,即:
1. 表示诸如 <AddedParts><ChangedBOMs> 等业务对象组的元素。
2. 表示诸如 <BOMHeader><Part> 等对象本身的元素。
3. 表示诸如 <ObjectID><Class><LastChangedBy> 等对象属性的元素。响应消息中每种类型的结构分别由 ESI 响应元信息文件的 <GroupInformation><MapInformation><Map> XML 元素确定。
* 
ESI 响应中的第四个元素是名为 Release 的元素,用于保留给定消息的发布和事务处理相关信息。此处未对此元素进行说明,因为 ESI 响应元信息文件的内容对此元素没有任何影响。
<GroupInformation> 元素包含用来表示内存中 ESIGroupInfo 对象属性的子元素,即 logicalNamephysicalNamereleaseActivityNeededreleaseClassmapInfos。有关这些属性的说明,请参阅组和映射信息类一节。默认响应元信息文件中的示例 <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:GroupInformation>
* 
元素 <GroupInformation> 具有名为 isUnchanged 的可选 XML 属性,该属性采用布尔值。该属性指定给定组在 ESI 响应中是否会保留未更改的数据。如果未为该元素指定该属性,则假定默认值为 false。您会发现,此属性对于表示默认响应元信息文件中未更改内容的每个元素都具有值 true,例如,未更改部件的 <GroupInformation> 元素。将自定义组添加到响应元信息文件时,请确保针对那些可保留未更改数据的组,将此属性设置为 true
同样,<MapInformation> 元素包含用来表示内存中 ESIMapInfo 对象属性的子元素。有关这些属性的说明,请参阅 ESIMapInfo 一节。默认响应元信息文件中的示例 <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>ESIPart</esi:mapRef>
</esi:MapInformation>
最后,<Map> 元素包含用来表示映射过程所使用的源属性和目标属性的子元素。默认响应元信息文件中的示例 <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="xxxx">EnterpriseVersion</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="xxxx">AssociatedEffectivityID</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="isAllocatedAsResource">IsAllocatedAsResource</esi:attributeMapping>
</esi:Map>
上面提供的示例 <GroupInformation><MapInformation><Map> 元素实际上彼此相关。这可以通过下面两点来理解:与 <mapInformationRef > 元素关联的内容与
<MapInformation> 元素的属性值相同;此外,<mapRef> 元素的内容与 <Map> 元素的 id 属性值相同。本质上是指,对于逻辑名称为 AddedParts 的组,映射信息可在
id 属性值为 ESIPartInfo<MapInformation> 元素中获取,且映射过程的相关源和目标属性名称 (及其默认值 - 如有) 将从 id 属性值为 ESIPart<Map> 元素中获取。
* 
上图中的示例元素可确定其中包含 WTPart 相关信息的 ESI 响应消息各部分的结构。这可以通过 <MapInformation> 元素内的 <typedef> 元素的值来理解。
下表中提供的 XML 元素表示 (响应消息中显示的) Windchill 业务对象,以及预设响应元信息文件中相应的 MapInformation 和 Map 元素:
ESI 响应 XML 元素
响应 XML 元素
MapInformation 元素
Map 元素
AlternateLink
ESIAlternateLinkInfo
ESIAlternateLink
AUM
AlternateUnitOfMeasureInfo
AlternateUnitOfMeasure
BOMComponent
BOMComponentInfo
BOMComponent
BOMHeader
BOMHeaderInfo
BOMHeader
Document
DocumentInfo ESIEPMDocumentInfo
DocumentESIEPMDocument
DocumentLink
DocumentLinkInfo
DocumentLink
ECNHeader
ChangeHeaderInfo
ChangeHeader
EPMMemberLink
ESIEPMMemberLinkInfo
ESIEPMMemberLink
EPMReferenceLink
ESIEPMReferenceLinkInfo
ESIEPMReferenceLink
EPMRepresentation
ESIEPMRepresentationInfo
ESIEPMRepresentation
MadeFromObject
ESIMadeFromObjectInfo
ESIMadeFromObject
Part
ESIPartInfo
ESIPart
ReferenceLink
RefDesignatorInfo
RefDesignator
Substitute
SubstituteInfo
Substitute
ProcessPlan
ProcessPlanHeaderInfo
ProcessPlanHeader
Sequence
SequencesInfo
Sequences
Operation
OperationInfo
Operation
ProcessPlanPartLink
ProcessPlanPartLinkInfo
ProcessPlanPartLink
StandardProcedureLink
StandardProcedureLinkInfo
StandardProcedureLink
ESI 响应 XML 元素
ConsumableResourceLink
OperationToConsumableResourceLinkInfo
OperationToConsumableResourceLink
WorkCenterLink
OperationToWorkCenterLinkInfo
OperationToWorkCenterLink
OprBomAllocatedPart
OperationToPartLinkInfo
OperationToPartLink
OprOperatedOnPart
OperationToOperatedOnPartLinkInfo
OperationToOperatedOnPartLink
Tooling
ToolingInfo
Tooling
ProcessMaterial
ProcessMaterialInfo
ProcessMaterial
Skill
SkillInfo
Skill
ControlCharacteristic
ControlCharacteristicInfo
ControlCharacteristic
PartToControlCharacteristicLink
PartQualityLinkInfo
PartQualityLink
PartToStandardControlCharacteristicLink
PartStandardCCLinkInfo
PartStandardCCLink
ProcessPlanToControlCharacteristicLink
ProcessQualityLinkInfo
ProcessQualityLink
OperationToControlCharacteristicLink
OperationQualityLinkInfo
OperationQualityLink
OperationToStandardControlCharacteristicLink
OperationStandardCCLinkInfo
OperationStandardCCLink
ModelItem
ModelItemInfo
ModelItem
ProcessPlanLocalizationLink
ProcessPlanLocalizationLinkInfo
ProcessPlanLocalizationLink
PlantLocalizationLink
PlantLocalizationLinkInfo
PlantLocalizationLink
ResourceBOMHeader
ResourceBOMHeaderInfo
ResourceBOMHeader
ResourceUsageLink
ResourceUsageLinkInfo
ResourceUsageLink
*Part/CommonEnterpriseData
ESICommonEnterpriseDataInfo
ESICommonEnterpriseData
*Part/ViewSpecificEnterpriseData
ESIPlantSpecificEnterpriseDataInfo
ESIPlantSpecificEnterpriseData
安装 ESI Options and Variants 时,将填充下述 XML 元素。
ESI 响应 XML 元素
Product_class
ESIOptionSetInfo
ESIOptionSet
Specification_category
ESIOptionInfo
ESIOption
Specification
ESIChoiceInfo
ESIChoice
Class_category_association
OptionSetOptionLinkInfo
OptionSetOptionLink
Class_specification_association
OptionSetMemberLinkInfo
OptionSetMemberLink
Class_structure_relationship
AssociatedOptionSetLinkInfo
AssociatedOptionSetLink
Class_condition_association
OptionSetRuleLinkInfo
OptionSetRuleLink
条件
RuleInfo
Rule
Condition_member_association
RuleMemberLinkInfo
RuleMemberLink
ESI 响应 XML 元素
Condition_action_member_association
RuleMemberActionLinkInfo
RuleMemberActionLink
Specification_expression
ExpressionInfo
Expression
标有 * 的元素可自定义为合并显示或单独显示。有关详细信息,请参阅发布选项集一节。
* 
上表中 MapInformation 元素和 Map 元素列中所示的值实际上是响应元信息文件中所示元素的 id 属性的值。实际确定响应 XML 元素结构的是这些元素的内容。请注意,这些列中会显示 Document 元素的多个值 - 这些值分别适用于 WTDocument 和 CAD 文档。这样允许发送这些类型的不同属性集,同时在 ESI 响应中使用相同的 XML 元素名称,即 Document
Windchill ESI 响应是由 Info*Engine 的 toXML API 从 Info*Engine 虚拟数据库 (VDB) 内容生成的 XML 文档。有关 Info*Engine VDB 的详细信息,请参阅Info*Engine User's GuideInfo*Engine API 按照对象添加到 VDB 的顺序生成 XML 输出。
* 
Info*Engine VDB 由 VdbBuilder API 填充,后者转而利用由类 ESIMapper 的映射 API 生成的输出。有关类 ESIMapper 及其方法的说明,请参阅 ESIMapper 一节。
ESI 响应元信息文件用于定义 Windchill ESI 响应输出的结构及其大部分内容。这具体可通过告知 Windchill ESI 映射器从何处获取数据以及将获取的数据添加到映射器所创建的 Info*Engine 元素对象的顺序来实现。可通过根据需要更改响应元信息文件的内容来修改映射器的输出。用户可将文件的已更改版本关联到给定的分布目标,从而确保所需变更反映在发送至该目标的响应消息中。
ESI 响应元信息文件为 XML 文件。有关此文件的预设版本的完整列表,请参阅 ESI 响应元信息一节。
这对您有帮助吗?