自定义点
可扩展类
如果扩展了本文档“发布部件”一节所述的 Windchill ESI 呈现器所使用的类,则必须根据需要在某些 Windchill ESI 首选项或 ESI 服务特性文件中定义扩展。
以下是通常在 Windchill ESI 首选项中定义的类:
◦ WTPart
首选项名称:“部件类”
默认值:wt.part.WTPart
◦ WTPartMaster
首选项名称:“部件主数据类”
默认值:wt.part.WTPartMaster
◦ WTPartAlternateLink
首选项名称:“部件全局替换链接类”
默认值:wt.part.WTPartAlternateLink
以下呈现器类通常在 ESI 服务特性文件中定义:
◦ ESIWTPartRenderer
服务特性名称:com.ptc.windchill.esi.rnd.ESIRenderer
<Option> 元素的默认属性值:
cardinality="duplicate"
requestor="wt.part.WTPart"
serviceClass="com.ptc.windchill.esi.esipart.ESIWTPartRenderer"
文件中还定义了以下类,以说明关联的控制特征、模型项和质量链接:
◦ ESIControlCharacteristicRenderer
服务特性名称:com.ptc.windchill.esi.rnd.ESIRenderer
<Option> 元素的默认属性值:
cardinality="duplicate"
requestor="java.lang.Object"
selector="CONTROLCHARACTERISTIC"
serviceClass="com.ptc.windchill.esi.mpml.pmi.ESIControlCharacteristicRe nderer"
◦ ESIQualityLinkRenderer
服务特性名称:com.ptc.windchill.esi.rnd.ESIRenderer
<Option> 元素的默认属性值:
cardinality="duplicate"
requestor="java.lang.Object"
selector="QUALITYLINK"
serviceClass="com.ptc.windchill.esi.mpml.pmi.ESIQualityLinkRenderer"
以上所有类均允许自定义者进行扩展。
可配置选项
Windchill ESI 首选项用于控制 Windchill ESI 部件呈现器支持的多个可配置选项。选项包括:
◦ 定义从 Windchill 适配器获取部件信息时要调用的 Info*Engine 任务名称。
首选项名称:“查询部件任务”
默认值:com/ptc/windchill/esi/QueryPart.xml
◦ 定义从 Windchill 适配器获取部件全局替换部件信息时要调用的 Info*Engine 任务的名称。
首选项名称:“查询替换任务”
默认值:com/ptc/windchill/esi/QueryObject.xml
◦ 定义用于标识部件 (而不是 BOM) 的 ReleaseActivity 的 releaseClass 属性值。
首选项名称:“部件的发布类”
默认值:com.ptc.windchill.esi.Part
◦ 以逗号分隔列表的形式定义生命周期状态值。将部件生命周期状态更改为针对首选项指定的任何值时,会触发部件的发布。仅当将首选项“自动启动 ESI 工作流”设为“是”且部件未与实施的变更通告关联时,才会发生这种情况。
首选项名称:“配置规范状态”
默认值:RELEASED
|
“发送至分布目标”选项可用于触发部件的发布,无论其生命周期状态如何。
|
◦ 指定是否发布部件的 ERP 物料信息。如果设置为“是”,ESI 服务将从相关 ERP 物料对象获取修订版本信息、可变属性和关联文档 (如果有),并通过 ESI 响应将其发送出去。如果设置为“否”,则不会通过 ESI 响应发送此类信息。
首选项名称:“发布 ERP 物料信息”
默认值:“否”
◦ 指定是否发布部件的工厂特定属性。如果设置为“是”,将通过 ESI 响应发送部件的工厂特定属性。如果设置为“否”,则不发送工厂特定属性。
首选项名称:“发布工厂特定属性”
默认值:“否”
发布部件时,分布目标上有几个可配置属性会影响 ESI 响应消息的内容。
有关详细信息,请参阅 Windchill 帮助中心中“分布目标属性”主题下的 Attributes Pertaining to a Part 一节。
|
设置“发布部件时发布全局替换部件”和“在发布部件时发布控制特征”属性后,会通过 ESI 响应发送与部件和全局替换部件 (以及相应的模型项和质量链接) 关联的控制特征。
|
将部件呈现配置为在 ESI 响应中的单独元素中呈现“企业数据”对象。
配置步骤:
1. 单独更新 ESI ResponseMetaInfo.xml 以呈现 EnterpriseData 对象。有关如何修改此文件的详细信息,请参阅
修改 ESI 响应元信息文件。
2. 预设代码添加了两个映射。例如 - EnterpriseData 对象类型,即将“公用企业数据”和“视图特定企业数据”视为 ESICommonEnterpriseData 和 ESIPlantSpecificEnterpriseData。与其他对象类似,用户可根据需要创建类型的映射对象。
<!-- ESI Common Enterprise Data Mapping -->
<esi:Map id="ESICommonEnterpriseDataEx1">
<esi:attributeMapping sourceAttribute="obid">ObjectID</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx" defaultValue="com.ptc.windchill.esi.CommonEnterpriseData">Class</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="versionInfo.identifier.versionId">Version</esi:attrib uteMapping>
<esi:attributeMapping sourceAttribute="iterationInfo.identifier.iterationId">Iteration</esi: attributeMapping>
<esi:attributeMapping sourceAttribute="PreviousVersion">PreviousVersion</esi:attributeMappin g>
<esi:attributeMapping sourceAttribute="MaterialGroup">MaterialGroup</esi:attributeMapping>
</esi:Map>
<!-- ESI Plant Specific Enterprise Data Mapping -->
<esi:Map id="ESIPlantSpecificEnterpriseDataEx1">
<esi:attributeMapping sourceAttribute="obid">ObjectID</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx" defaultValue="com.ptc.windchill.esi.PlantSpecificEnterpriseData">Class
</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="view">View</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="StorageLocation">StorageLocation</esi:attributeMappin g>
</esi:Map>
3. 修改 MapInformation 对象以指定不同的 "elementMetaName",例如 "CommonData" 和 "ViewSpecificData"。默认元信息文件将此值设置为 "Part"。由于将其指定为 "Part",因此默认逻辑会将此对象与部件元素中显示的 WTPart 对象属性合并在一起。当使用 "Part" 以外的值指定 "elementMetaName" 时,将开始呈现名称分别指定为 "CommonData" 和 "ViewSpecificData" 的新元素。
<!-- ESI Enterprise Data Mapping Information -->
<esi:MapInformation id="ESICommonEnterpriseDataInfoEx01">
<esi:typedef>com.ptc.windchill.enterprise.data.EnterpriseData|com.ptc.windchi ll.enterprise.data.enterpriseData.CommonEnterpriseData</esi:typedef>
<esi:elementMetaName>CommonData</esi:elementMetaName>
<esi:keyAttribute>ObjectID</esi:keyAttribute>
<esi:keyAttribute>Version</esi:keyAttribute>
<esi:mapRef>ESICommonEnterpriseDataEx01</esi:mapRef>
</esi:MapInformation>
<!-- ESI Enterprise Data Mapping Information -->
<esi:MapInformation id="ESIPlantSpecificEnterpriseDataInfoEx01">
<esi:typedef>com.ptc.windchill.enterprise.data.EnterpriseData|com.ptc.windchi ll.enterprise.data.enterpriseData.PlantSpecificEnterpriseData</esi:typedef>
<esi:elementMetaName>ViewSpecificData</esi:elementMetaName>
<esi:keyAttribute>ObjectID</esi:keyAttribute>
<esi:keyAttribute>Version</esi:keyAttribute>
<esi:mapRef>ESIPlantSpecificEnterpriseDataEx01</esi:mapRef>
</esi:MapInformation>
4. 根据需要使用“创建/编辑分布目标”用户界面为新目标或现有目标指定此新修改的元信息文件。
5. 将企业数据对象呈现为单独对象时,关联的对象 (如 WTDocument/EPMDocuments) 的链接也将呈现,以引用来自这些新元素的数据。否则,默认情况下,将呈现 EnterpriseData 的文档链接,以描述与 EnterpriseData 所关联部件的关联。
配置部件呈现以在 ESI Response 中的单独元素中呈现“工厂功能数据”对象。
配置步骤:
1. 单独更新 ESI ResponseMetaInfo.xml 以呈现 PlantFunctionalData 对象。
2. 预设代码添加了一个映射。例如 - PlantFunctionalData 对象类型。“工厂功能数据”作为 ESIPlantFunctionalData。如果在“工厂功能数据”对象上添加新属性,则需要将该可变类型添加为 ESIPlantFunctionalData 映射中的元素并在 ESIPartInfo 中添加
<esi:isEnterpriseDataMergeWithElement>false</esi:isEnterpriseDataMergeWi thElement>。
与其他对象类似,也可以根据需要创建类型的映射对象。
<!-- ESI Plant Specific Enterprise Data Mapping -->
<esi:Map id="ESIPlantFuncationalDataEx1">
<esi:attributeMapping sourceAttribute="obid">ObjectID</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="xxxx" defaultValue="com.ptc.windchill.esi.PlantFunctionalData">Class</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="name">Name</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="number">Number</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="description">Description</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="view">View</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="alternate1">SupplyChain</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="alternate2">Location</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="category">Category</esi:attributeMapping>
<esi:attributeMapping sourceAttribute="vsedObjID">AssociatedObjectID</esi:attributeMapping>
</esi:Map>
修改 MapInformation 对象以指定不同的 "elementMetaName",例如 "PlantFuncData"。默认元信息文件将此值设置为 "Part"。由于将其指定为 "Part",因此默认逻辑会将此对象与部件元素中显示的 WTPart 对象属性合并在一起。当使用 "Part" 以外的值指定 "elementMetaName" 时,它会开始呈现名称指定为 "PlantFuncData" 的新元素。
<!-- ESI Plant Functional Data Mapping Information -->
<esi:MapInformation id=" ESIPlantFuncationalDataEx1">
<esi:typedef>com.ptc.windchill.enterprise.data.PlantFunctionalData</esi:typedef>
<esi:elementMetaName>PlantFuncData</esi:elementMetaName>
<esi:keyAttribute>ObjectID</esi:keyAttribute>
<esi:keyAttribute>Version</esi:keyAttribute>
<esi:mapRef>ESIPlantFuncationalDataEx1</esi:mapRef>
</esi:MapInformation>
根据需要使用“创建/编辑分布目标”用户界面为新目标或现有目标指定此新修改的元信息文件。
ESI 响应中“工厂功能数据对象”属性的自定义 (当 PFD 属性与部件合并时)
如果工厂功能数据对象上添加了新属性,则需要执行以下操作以将其作为 <零件> 中的元素呈现:
扩展 ESIWTPartRenderer 并改写 adjustPFDElement() API。
以下 XML 文档用作激活新部件呈现器类的 xconfmanager 命令的输入:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Configuration SYSTEM "xconf.dtd"> <Configuration targetFile="codebase/service.properties"> <!-- The ESIRenderer entries for use by com.windchill.esi.rnd.ESIRendererFactory -->
<Service context="default" name="com.ptc.windchill.esi.rnd.ESIRenderer">
<Option cardinality="duplicate" requestor="wt.part.WTPart" serviceClass="com.ptc.windchill.esi.esipart.CustomPFDRenderer "/> </Service> </Configuration>
文件位于
<Windchill>/codebase/com/ptc/windchill/esi/examples/Example2.service.prop erties.xconf
以下命令会将文件中指定的变更传播到文件
<Windchill>/codebase/service.properties:
xconfmanager –i codebase/com/ptc/windchill/esi/examples/Example2.service.properties.xconf –p
修改 XSLT (EnterpriseData.xsl) 以在 ESI 响应中将 PFD 属性呈现为说明元素的属性。