Modify the ESI Response Meta Information File
Background
The structure of the ESI response message that gets generated for a given destination is determined by the contents of the so called ESI response meta information file that is associated to the distribution target representing that destination. A default version of this file resides under <Windchill>\codebase\com\ptc\windchill\esi and is named ESIResponseMetaInfo.xml. A distribution target (which is essentially an ESITarget object in Windchill) references this file through the responseMetaInfoPath attribute by default. User can modify the value of this attribute to any other value, depending on which file exactly they want to use for generating the ESI response meant for that target.
* 
The contents of the ESI response meta information file impact the structure of the ESI response message only when generating the message in ESI XML format (i.e., when the distribution target attribute ESI Response Output Format is set to ESI XML).
Broadly speaking, the ESI response message contains four different types of XML elements,
1. Those that represent groups of business objects such as <AddedParts>, <ChangedBOMs> etc.
2. Those that represent the objects themselves such as <Part>, <BOMHeader> etc. and
3. Those representing the attributes of an object such as <ObjectID>, <Class>, <LastChangedBy> etc.
The structure of each of these types in the response message is determined by the <GroupInformation>, <MapInformation> and the <Map> XML elements respectively of the ESI response meta information file.
* 
A fourth element in the ESI response is the one named Release, holding release and transaction related information for a given message. This element is not described here, since the contents of the ESI response meta information file have no impact on this element.
The <GroupInformation> element holds child elements that represent the attributes of an ESIGroupInfo object in memory viz., logicalName, physicalName, releaseActivityNeeded, releaseClass and mapInfos. See section ESIGroupInfo for a description of these attributes. A sample <GroupInformation> element from the default response meta information file is reproduced below:
<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>
* 
The <GroupInformation> element has an optional XML attribute named isUnchanged, which takes a boolean value. The attribute specifies whether or not the given group would hold unchanged data in the ESI response. A default value of "false" is assumed when the attribute is not specified for the element. You will find that this attribute has a value "true" for each of the elements representing unchanged content in the default response meta information file – for example, the <GroupInformation> element for unchanged parts. When adding custom groups to the response meta information file, be sure to set this attribute to "true" for those groups that are meant to hold unchanged data.
Likewise, the <MapInformation> element holds child elements that represent the attributes of an ESIMapInfo object in memory. See section ESIMapInfo a description of these attributes. A sample <MapInformation> element from the default response meta information file is reproduced below:
<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>
Lastly, the <Map> element holds child elements that represent the source and target attributes used by the mapping process. A sample <Map> element from the default response meta information file is reproduced below:
<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>
The sample <GroupInformation>, <MapInformation> and <Map> elements provided above are actually related to each other. This may be understood by observing that the content associated with the <mapInformationRef> element is identical to the value of the id attribute of the <MapInformation> element; also, the content of the <mapRef> element is identical to the value of the id attribute of the <Map> element. What this essentially means is that for a group carrying the logical name “AddedParts”, the map information is available in the <MapInformation> element having the value “ESIPartInfo” for its id attribute, and that the relevant source and target attribute names (and their default values, if any) for the mapping process are to be fetched from the <Map> element having the value “ESIPart” for its id attribute.
* 
The sample elements in the above illustration determine the structure of portions of the ESI response message that contain WTPart related information. This may be understood from the value of the <typedef> element that occurs within the <MapInformation> element.
The following table provides the XML elements representing Windchill business objects (as they appear in the response message) and the corresponding MapInformation and Map elements in the out-of-the-box response meta information file:
Response XML Element
MapInformation Element
Map Element
AlternateLink
ESIAlternateLinkInfo
ESIAlternateLink
AUM
AlternateUnitOfMeasureInfo
AlternateUnitOfMeasure
BOMComponent
BOMComponentInfo
BOMComponent
BOMHeader
BOMHeaderInfo
BOMHeader
Document
DocumentInfo
ESIEPMDocumentInfo
Document
ESIEPMDocument
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
ConsumableResourceLink
OperationToConsumableResourc eLinkInfo
OperationToConsumableResourceLi nk
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
XML elements described below will be populated when ESI Options and Variants is installed. At 11.0 release, integration of Options and Variants to SAP is not supported.
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
Condition
RuleInfo
Rule
Condition_member_association
RuleMemberLinkInfo
RuleMemberLink
Condition_action_member_association
RuleMemberActionLinkInfo
RuleMemberActionLink
Specification_expression
ExpressionInfo
Expression
Elements indicated with * can be customized to render as merged or as separate. Refer to the section Configure Part rendering to render Enterprise Data object in separate element in ESI Response or more information.
ESI Response XML Elements
* 
The values seen in the columns titled MapInformation Element and Map Element in the above table are actually the values of the id attribute of the said elements as they occur in the response meta information file. It is the contents of these elements that actually determine the structure of the response XML elements. Note that multiple values appear in these columns for the Document row – these are for a WTDocument and a CAD document respectively. This allows sending different sets of attributes for these types, while using the same XML element name in the ESI response viz., Document.
The Windchill ESI response is an XML document, generated by the toXML Info*Engine API from the contents of an Info*Engine Virtual Database (VDB). See the Info*Engine User's Guide for more information about the Info*Engine VDB. The Info*Engine API generates the XML output in the order that objects were added to the VDB.
* 
The Info*Engine VDB is populated by the VdbBuilder APIs, which in turn make use of the output generated by the mapping APIs of class ESIMapper. See section ESIMapper for a description of class ESIMapper and its methods.
The ESI response meta information file defines the structure and much of the content of Windchill ESI response output. It does so by telling the Windchill ESI mapper where to obtain data from and the order in which to add the obtained data to the Info*Engine Element object that is created by the mapper. The output from the mapper may be modified by changing the contents of the response meta information file as needed. One may associate the changed version of the file to a given distribution target, thereby ensuring that the required changes are reflected in the response message that gets sent to that target.
The ESI response meta information file is an XML file. For more information on the out-of-the-box version of this file, see ESI Response Meta Information.
Procedure
When changing the contents of the ESI response meta information file, you should copy the existing file to some other directory that is accessible to the Windchill Method Server. Use the editor of your choice to modify the file. Each attributeMapping element in the file, as described in Mapper Classes section of this document, generates a child element in the XML element representing the given business object in the response message.
* 
Do not modify the response meta information file that was provided when you installed Windchill ESI. This file may be replaced by future software releases. If you wish to modify it, copy it to a new location.
In order for any changes made to the file to take effect, change the value of the responseMetaInfoPath attribute on the distribution target for which to generate the modified response message. This may be achieved using the Manage Distribution UI option that appears under the Utilities option of Site or Organization. From the Edit Distribution Target (or the New Distribution Target) dialogue that comes up, change the value of the field ESI Response Meta Information File Path to point to the file that was modified and click OK to save the changes.
* 
The value entered for the ESI Response Meta Information File Path field may begin with $CODEBASE$ to indicate that the file resides under the Windchill codebase. For e.g., if the file resides under <Windchill>/codebase/com/ptc/windchill/esi/modified/, the value may take the form: “$CODEBASE$/com/ptc/windchill/esi/modified/ESIResponseMetaInfoModified.xml
Releasing an object to the edited distribution target will cause the response message to be generated per the modified version of the response meta information file.
* 
Changing the contents of the response meta information file can change the structure of the ESI response. Changing the structure causes the XML schemas in Windchill and the EAI software components to become out of synch. If you change the response meta information file, you must modify the XML schema as described in Create/Modify XML Schema. You must also modify the EAI software components to use the new schema. For more information, see XML schemas.
Example: Adding an Attribute to <Part>
With reference to the response meta information file provided out-of-the-box, the Map element having the value “ESIPart” for its id attribute is the one that controls the output for the <Part> element. The relevant Map element is reproduced below:
<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>
* 
The Map element shown above is for illustration purpose only, and may or may not be identical to the one in the file ESIResponseMetaInfo.xml that comes with the ESI Services CD.
When using the above Map element, the ESI mapper generates an XML element with this structure:
Default Part XML Element Structure
If the Map element in the response meta information file were modified to have an additional entry that caters to the attribute traceCode of the part, it would then take the form shown below:
<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>
Note that the above illustrated Map element is different from the default version in that (i) its id attribute has a different value and (ii) it has an additional attributeMapping element for the traceCode attribute.
As for (i), it is imperative that the id attribute of a given Map element has a unique value for a given ESI installation. If on the other hand, the same value is shared between two or more versions of the response meta information file (where the Map elements that share the id are different), only one of the Map element versions will be used for response generation which is clearly not what is expected. Also, when changing the value of the id attribute for a given Map element, it should be accompanied by a change to the corresponding MapInformation element. The modified version of the MapInformation element for the above Map element is provided below:
<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>
Note that the mapRef element has a value that matches the value of the id attribute of the Map element.
The response meta information file carrying the above changes is located in <Windchill>/codebase/com/ptc/windchill/esi/examples/ESIResponseMetaInfoExample1.xml.
Using the Manage Distribution UI, bring up the Edit Distribution Target dialogue for an existing target and change the value of the field ESI Response Meta Information File Path to point to the file ESIResponseMetaInfoExample1.xml. After saving the target by clicking OK, associate a WTPart to the edited target and release it.
* 
Alternatively, the New Distribution Target dialogue may be brought up from the Manage Distribution UI, and the value of the said field may be set to point to the file ESIResponseMetaInfoExample1.xml. A WTPart may then be associated to this newly created target and released.
* 
Changing the contents of the response meta information file can change the structure of the ESI response. Changing the structure causes the XML schemas in Windchill and the EAI software components to become out of synch. If you change the response meta information file, you must modify the XML schema as described in the Create/Modify XML Schema section of this document. You must also modify the EAI software components to use the new schema. See the XML schemas section of this document for details.
The Windchill ESI mapper generates the following output if the file ESIResponseMetaInfoExample1.xml were used:
Customized Part XML Element Structure – Example 1
The XML schema definition for the Windchill ESI response that is generated when the customized response meta information file is used is located in <Windchill>/codebase/com/ptc/windchill/esi/examples/Example1.xsd.
TheWindchill ESI response that is generated when the customized response meta information file is used is located in <Windchill>/codebase/com/ptc/windchill/esi/examples/Example1.xml.
* 
You will find that the Part element in the response file above does not have the child elements View and StorageLocation, although they figure in the response meta information and schema files. This is only expected when the preference Publish Plant Specific Attributes is set to the default value (of No). Set this preference to Yes in order that the said child elements are sent with the ESI response. More information on this topic appears in a later section of this document.
* 
A user may want to release a part after associating multiple distribution targets (that typically belong in multiple SAP instances) to it. In such a case, a response message will be generated for each set of targets belonging in a given SAP instance. The structure of the message that is generated for a given target will be determined by the contents of the response meta information file that is used for that target. Thus, a target can choose to receive the response message the way it wants, by having its responseMetaInfoPath attribute set to point to an appropriately customized version of the response meta information file.
A recommended best practice is that the same ESI response meta information file is used for all distribution targets that belong in a given SAP instance.
Ad Hoc Instance Based Attributes
Windchill PDMLink allows you to add attributes to modeled classes like.WTPart without changing the model. You can do this using the Windchill Type Manager. See the Windchill Business Administrator’s Guide (or the section Publish Costing Information From Windchill to SAP of this document) for details. If you extend a modeled class by creating a soft type or add an attribute to a modeled class, Windchill ESI services obtain the added attribute when the target (that the object is released to) uses an appropriately modified version of the ESI response meta information file as described in the previous section of this document.
Windchill PDMLink also allows you to add instance based attributes (IBAs) to a modeled class that is an IBAHolder, such as wt.part.WTPart without using the Windchill Type Manager. IBAs added in this way are called ad hoc attributes.
See the Windchill Application Developer’s Guide for details about IBAHolder objects.
See the Windchill User’s Guide for details about adding IBAs to a WTPart.
If you wish to publish the attributes that are added to a wt.part.WTPart object by any of the above described means, you must (i) create an appropriately modified version of the ESI response meta information file and (ii) edit the relevant distribution target (or create a new one) to point to the modified version of the file. Releasing the part to the thus edited (or created) target would result in the added attributes of the part being sent with the ESI response.
* 
Make sure you follow the procedure described in section “Procedure” above while modifying the contents of the ESI response meta information file.
* 
Changing the contents of the response meta information file (to cater to the added attributes) can change the structure of the ESI response. Changing the structure causes the XML schemas in Windchill and the EAI software components to become out of synch. If you change the response meta information file, you must modify the XML schema as described in the Create/Modify XML Schema section of this document. You must also modify the EAI software components to use the new schema. See the XML schemas section of this document for details.
Points to note while modifying the ESI response information file
Keep the following in mind while modifying the contents of the response meta information file:
1. Do not modify the file directly from the default location; always create a copy of the file and modify it. Updating the installation to a subsequent maintenance release could wipe out your changes, if you modified the file directly. Also, you may want to create modified versions of the response meta information file and associate them to distribution targets, when there is a need for those targets to receive custom data.
2. When modifying a Map element, ensure that its id attribute has a unique value; in other words, the value should not be used by any other Map element in the same or any other active version of the file. If this condition is not met, an error will be thrown when attempting to save a distribution target that references the modified file.
3. When creating a Map element with a new id attribute, create a MapInformation element as well whose mapReference element’s content equals the value of the id attribute. Alternatively, the mapRef element of an existing MapInformation element can be modified as appropriate.
4. Do not modify the id attribute of a Map element unless its contents are changed.
5. When creating a new (or modifying an existing) MapInformation element, ensure that its id attribute has a unique value within the file. It is recommended that this value is unique across different versions of the file, although not essential.
6. When creating a MapInformation element with a new id attribute, ensure that a GroupInformation element exists in the file whose mapInformationRef element’s content equals the value of the id attribute.
7. It is an error to change the value of the logicalName element of any GroupInformation element. Values of physicalName elements may be modified, but this will almost always require modifying the file <Windchill>/tasks/com/ptc/windchill/esi/lite/GetPostResultInfoForTarget.xsl as appropriate.
8. When there is a need to publish ERP Material (or plant specific) attributes for a part, (i) add the relevant attributeMapping entries to the Map element for parts and (ii) set the XML attribute erpMaterialAttribute (or plantSpecificAttribute) to true as appropriate.
9. In order for changes to the response meta information file that is already referenced by a target to take effect, (i) re-start the method server or (ii) toggle the Status attribute of the referencing target from Active to Inactive, save and reset the attribute once again to Active.
10. When publishing a soft type (or a modeled) extension of an object, the response meta information file would require changes only if there is a need to publish a different set of attributes for the extension as compared to the object that was extended. In other words, the default version of the file itself will suffice, as long as the extension has the same set of attributes as the parent object.
11. When adding a <GroupInformation> element that represents a custom group, remember to set its attribute "isUnchanged" if appropriate, as shown below:
<esi:GroupInformation isUnchanged="true">
<esi:logicalName>MyUnchangedType</esi:logicalName>
...
</esi:GroupInformation>
In the above example, the custom group named "MyUnchangedType" is meant to hold unchanged data in the ESI response, thereby requiring the attribute "isUnchanged" to be set to "true".
12. Contents of the response meta information file impact the ESI response message only when generating the message in XML format (i.e., when the distribution target attribute ESI Response Output Format is set to ESI XML). In other words, the file has no role to play whatsoever, when generating the ESI response in PLM format.
這是否有幫助?