Windchill ESI 服务自定义场景
功能概述
Windchill ESI 服务提供一系列 getXXX() API,用于支持企业应用程序访问变更通告、BOM、部件、升级请求、工艺计划、资源、独立文档以及与部件、工艺计划、工步、操作和资源相关的文档。对这些 API 进行编码,以通过读取对象属性并将其映射到 XML 来提取描述特定 Windchill 对象的数据。有关 XML 格式说明,请参阅 Windchill Enterprise Systems Integration Open Application Programming Interface Guide (《Windchill Enterprise Systems Integration 开放式应用程序编程接口指南》)。
Windchill ESI 服务支持的对象属性类型包括模型化属性、基于实例的属性 (IBA) 和可变类型属性。通常,模型化属性是对象的局部属性,并且可通过 Windchill 代码生成进程创建的 "getter" 方法获得。不过,有时 API 代码必须通过计算或浏览对象关系来衍生属性值。在这些情况下,代码生成不会提供 getter 方法。必须对相关方法进行显式编码,才能浏览关系并获取属性值。
通常,对自定义属性进行建模时,可通过执行配置过程将其映射到 Windchill ESI 中。但对于非局部自定义属性,需要执行自定义过程。(有关非局部自定义属性的定义,请参阅“术语表”)。
下表介绍了如何在 ESI 服务中支持自定义 Windchill 对象:
ESI 对自定义 Windchill 对象的支持
特定用法
RPC
相关事件
Windchill 对象
过程已应用
发布 aWTPart
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
无,按原样
发布带文档的 WTPart;文档已请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
无,按原样
发布 aWTPart;文档已修改,但未请求文档
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
无,按原样
发布自定义附加模型化2 属性未映射3 的 WTPart;文档未修改或文档未请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
无,按原样
* 
1. 仅当相关的 Windchill ESI RPC 支持文档且 Windchill ESI RPC 调用请求包含文档时,WTDocumentWTDocumentMasterEPMDocument 才会受到影响。Windchill ESI RPC GetPartGetBOMGetECN 支持文档。
2. 假定表格中描述为“模型化”属性的属性具有公共 getter 方法。
3. Windchill ESI Open API RPC 响应中不包含非映射属性。
4. Windchill ESI 使用 Windchill 适配器 Query-Objects webject 获取部件和部件主数据对象的所有属性。只要 Query-Object webject 返回属性,该属性就可用于 Windchill ESI 映射逻辑。
特定用法
RPC
相关事件
Windchill 对象
过程已应用
发布部件使用关系链接、特定替换部件链接、位号链接和/或全局替换部件链接上自定义附加模型化属性未映射的 WTPart;文档未修改或文档未请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
无,按原样
发布自定义附加模型化属性已映射的 WTPart;文档未修改或文档未请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 配置:
修改映射文件
修改 XML 架构1
发布特定替换部件、全局替换部件或位号链接上的自定义附加模型化属性已映射的 WTPart;文档未修改或文档未请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 配置:
修改映射文件
修改 XML 架构
* 
1 尽管可通过自定义更改 XML 架构,但创建自定义 RPC 会更安全,这样未来 Windchill ESI 维护不会叠加这些自定义。
特定用法
RPC
相关事件
Windchill 对象
过程已应用
发布具有特定替换部件、位号或全局替换部件链接扩展且扩展上的附加模型化属性未映射的 WTPart;文档未修改或文档未请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPart WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 配置:
修改 ESI 特性
发布具有特定替换部件、位号或全局替换部件链接扩展且扩展上的附加模型化属性已映射的 WTPart;文档未修改或文档未请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 配置:
修改映射文件
修改 XML 架构
修改 ESI 特性
发布部件使用关系链接上自定义附加模型化属性已映射的 WTPart;文档未修改或文档未请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 自定义:
扩展 java 代码1
修改映射文件
修改 ESI 特性
* 
1 Windchill BOM 差异逻辑不会直接显示部件使用关系链接。而是返回类的封套元素对象集 PartUsageInfo。如果属性要用于 Windchill ESI 映射逻辑,则必须修改 PartUsageInfo。否则,必须修改 Windchill ESI java 代码才能获得所需的属性值。
特定用法
RPC
相关事件
Windchill 对象
过程已应用
修改 WTPartWTPartMaster1 之间的主数据关系后发布 WTPart
GetPart
GetBOM
GetECN
可随时发布的部件或变更
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 自定义:
扩展 ESI java 代码
修改 ESI 特性
发布从 WTPart 扩展的自定义对象 MyPart 和/或从 WTPartMaster 扩展的自定义对象 MyPartMaster,其他模型化或非模型化属性未映射;文档未修改或文档未请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
MyPart 和/或
MyPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 配置:
修改 ESI 特性2
* 
1 Windchill WTPart 对象通过由 Windchill 代码生成工具定义的复杂关系与 WTPartMaster 对象相关联。此关系是产品结构导航和通过 Windchill ESI 发布部件的核心。更改该关系会破坏 Windchill ESI 逻辑。以下类型的修改需要进行 java 编码才能修复 Windchill ESI 逻辑破坏:
将现有关系实施替换为链接类
创建新对象并扩展 WTPart,这会破坏与 WTPartMaster 的继承关系
创建新对象并扩展 WTPartMaster,这会破坏与 WTPart 的继承关系
2 这些特性用于定义部件类和部件主数据类的名称。如果这些特性值发生变更,则只能发布由这些值标识的扩展对象。GetPart RPC 将不再支持 WTPart 和/或 WTPartMaster。
特定用法
RPC
相关事件
Windchill 对象
过程已应用
发布附加模型化或非模型化属性已映射的从 WTPart 扩展的自定义对象 MyPart 和/或从 WTPartMaster 扩展的自定义对象 MyPartMaster;文档未修改或文档未请求
GetPart
GetBOM
GetECN
可随时发布的部件或变更
MyPart 和/或 MyPartMaster WTDocument WTDocumentMaster EPMDocument
Windchill ESI 配置:
修改 ESI 特性1
修改映射文件
修改 XML 架构
发布文档已请求,模型化属性、IBA 或可变类型属性已添加到 WTDocument、WTDocumentMaster 和/或 EPMDocument 的 WTPart
GetPart
GetBOM
GetECN
可随时发布的部件或变更
MyPart 和/或
MyPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 配置:
修改映射文件
修改 ESI 特性
定义 XML 架构
发布附加模型化或非模型化属性已映射的从 WTPart 扩展的自定义对象 MyPart 和/或从 WTPartMaster 扩展的自定义对象 MyPartMaster
自定义
可随时发布的部件或变更
WTPart
Windchill ESI 自定义:
创作自定义 RPC
定义 XML 架构
* 
1 这些特性用于定义部件类和部件主数据类的名称。如果这些特性值发生变更,则只能发布由这些值标识的扩展对象。GetPart RPC 将不再支持 WTPart 和/或 WTPartMaster
2 声明文档可变类型。
3 在此情况下,Windchill ESI GetPart RPC 仍支持 WTPartWTPartMaster
特定用法
RPC
相关事件
Windchill 对象
过程已应用
发布具有已请求文档的 WTPart,并且:
文档类已扩展1 或
文档链接已修改
自定义
可随时发布的部件或变更
MyPart 和/或
MyPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 自定义:
自定义文档差异 API
扩展 ESI java 代码
创作自定义 RPC
定义 XML 架构
发布具有非局部映射属性的已修改链接 (或服务支持) 或具有支持非局部映射属性的已修改服务3 的 WTPart
自定义
可随时发布的部件或变更
WTPart
Windchill ESI 自定义:
创作自定义 RPC
修改 XML 架构
发布具有已修改链接 (使用、替代或参考) 的 WTPart
自定义
可随时发布的部件或变更
WTPart
ESI 自定义:
创作基于 GetBOM 和/或 GetECN 的自定义 RPC
自定义 BOM 差异 API
修改 XML 架构
发布 WTChangeOrder
GetECN
可随时发布的变更
WTChangeOrder
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
无,按原样
* 
1 在此类别中,扩展不包含可变类型。添加新的可变类型文档是一个配置选项。请参阅上文
2 在此情况下,可自定义 GetPartGetBOMGetECN,但此类自定义将容易受到未来 ESI DSU 维护的影响。自定义 RPC 是一个更安全的选择。
3 例如,修改部件全局替换关系。
特定用法
RPC
相关事件
Windchill 对象
过程已应用
发布其他属性未映射的 WTChangeOrder2
GetECN
可随时发布的变更
WTChangeOrder2
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
无,按原样
发布其他属性已映射的 WTChangeOrder2
GetECN
可随时发布的变更
WTChangeOrder2
WTPart
WTPartMaster
WTDocument
WTDocumentMaster
EPMDocument
Windchill ESI 配置:
修改映射文件
修改 XML 架构
发布不是从 WTPart 扩展的自定义对象 MyObject
自定义
可随时发布的 MyObject
MyObject
Windchill ESI 自定义:
创作自定义 RPC
修改 XML 架构
修改 ESITarget
自定义
任意
任意
有关详细信息,请参阅“分布目标”。
如上一节所述,与 RevisionControlled 对象关联的文档随 ESI 响应一起发送,但会被中间件业务逻辑忽略。关联的文档由 Windchill ESI 服务从 Windchill 文档差异逻辑获取。有关自定义 Windchill 文档差异逻辑的信息,请参阅“文档附件差异”。
* 
1. 尽管上表仅列出了与部件、BOM、变更通告和关联的文档相关的用例,但对于独立文档 (在以对象为中心和以变更通告为中心的模式下)、升级请求和所有受支持的 MPMLink 对象 (即工艺计划以及工具、工艺材料和技能等资源),也存在完全相似的用例。这些对象的相关 RPC 包括 GetDocumentGetPromotionRequestGetProcessPlanGetResource,受影响对象包括 WTDocumentEPMDocumentPromotionNoticeMPMProcessPlanMPMSequenceMPMOperationMPMToolingMPMProcessMaterialMPMSkill 等。
2. 依据 GetXXX,PRC 指 ESIService (默认为 StandardESIService) 具体实施的 getXXX() API。
3. 表格中“相关事件”列的内容仅指用于触发发布的用户操作 (例如,将对象的生命周期状态设置为“已发布”)。请务必注意,触发对象发布时,ESI 服务不会激发任何事件和传递至 EAI 软件组件;相反,ESI 服务会继续直接生成 ESI 响应并将其移交给 EAI 软件组件。
优点
无需编码,即可提高解决方案灵活性。这反过来又会降低部署成本并节省时间。
对预设代码未涵盖的情况提供受支持的自定义路径。这是 RTP 的增强功能。
约束
Windchill ESI 使用 Windchill 适配器 Query-Object webject 获取部件和部件主数据对象的所有属性以及受支持文档类型的属性。如果 Query-Object webject 未返回属性,则该属性不适用于 ESI 映射逻辑。
Windchill ESI BOM 处理使用 Windchill 标准 WTPart 服务 BOM 差异计算。在以下情况下,需要 BOM 差异自定义:
BOM 中包含新的对象类型。
新关系与 BOM 结构相关。
在确定是否已进行变更时,需要考虑其他数据元素。
ESI 文档处理使用 Windchill 标准 WTPart 服务部件文档差异计算。在以下情况下,需要部件文档差异自定义:
新链接与部件/文档关系相关。
在确定是否已进行变更时,需要考虑其他数据元素。
更改现有 Windchill 对象之间的现有关系 (关联) 始终需要自定义 Windchill ESI。
如果关系、关系属性或参与关系的对象要包含在由 Windchill ESI 发布的数据中,则添加现有 Windchill 对象之间的关系时,需要自定义 ESI。
这对您有帮助吗?