ERP Connector 自定义示例
使用 JMS 队列作为分布目标
这需要执行以下步骤:
1. 使用“类型和属性管理”用户界面创建 ESITarget 的可变扩展,以表示 JMS 队列类型分布目标。要实现此目的,可通过在“分布目标”节点上单击鼠标右键时出现的 NewSubtype 选项。
|
确保在创建可变扩展时将 Instantiable 特性设置为 Yes。
|
2. 在“管理全局属性”用户界面的 > 下添加新组织器 (命名为 JMS_Queue),以为在 (1) 中创建的新可变扩展定义属性。根据需要添加 queueName、priority 等属性。
3. 使用“属性”选项卡中的“创建一个新属性”选项,将 (2) 中定义的属性关联到可变扩展。
4. 同时将 XSL 特定属性 (例如 XSL 数据库用户、XSL 参数、XSL 密码和 XSL URL) 关联到可变扩展。这些属性将作为全局属性显示在 > > 下
5. 在“布局”选项卡中,将所需属性添加至所选布局 (例如,“创建/编辑”页面)。
7. 使用“管理分布”用户界面创建可变扩展的实例,并将其属性 queueName 和 priority 设置为所需值。将 taskURI 属性设置为指向在 (6) 中创建的 I*E 任务,并相应地设置其他属性。
8. 将 (7) 中创建的分布目标实例关联到业务对象 (如部件) 并进行发布。
|
示例任务以 ESI XML 格式将 ESI 响应消息传送到指定队列。有关“类型和属性管理”用户界面的详细信息,另请参阅《PTC Windchill 自定义指南》和联机帮助。
|
有用信息
示例 I*E 任务:将 ESI 响应传送至 JMS 队列部分中提供的示例任务位于
<Windchill>/tasks/com/ptc/windchill/esi/examples/ExportToJMS.xml 下,并利用名为 Create-Object 的 I*E 消息 webject。给定内容后,webject 会将其传送到指定 JMS 队列。
|
有关 Create-Object webject 及其运行所需的关联设置的详细信息,请参阅 Windchill Info*Engine User's Guide (《Windchill Info*Engine 用户指南》)。
|
◦ webject 参数:
参数:QUEUE
说明:消息发送到的队列的名称。
参数:PRIORITY
说明:为消息指定整数优先级。
默认值:4。
参数:TYPE
说明:设置要创建的消息的类型。
默认值:TextMessage。
参数:PUT_STRING
说明:要发送到队列的数据内容。
参数:GROUP_OUT
说明:输出组的名称。
默认值:output。
示例任务实质上用于执行以下操作:
|
有关传递到任务的输入参数的信息,请参阅“可配置选项”一节。
|
1. 通过调用 ESITarget 对象上从 target 参数获取的 getSoftAttribute() API,提取传入的分布目标上的 queueName 和 priority 属性。使用提取的值将参数 QUEUE 和 PRIORITY 添加到任务
2. 通过调用 getVdb().toXML() 获取要传送的内容。
3. 从分布目标提取 XSL 相关属性,如果这些属性已设置,则使用 com.ptc.windchill.esi.lite.util.XSLTransformer 的 applyXSL() API 转换在 (2) 中获取的内容。
4. 如果步骤 (1) 到 (3) 可以成功完成,并且 ERP Connector 首选项 Enable Response Cache 的值为 Yes,则会在首选项 ESI Response Cache Location 指定的位置创建响应数据的副本。
5. 如果上述所有步骤都可以成功完成,则使用在 (3) 中提取的值将参数 CONTENT 添加至任务。然后调用 Create-Object webject,并传入其参数的相关值。如果 webject 已成功执行,并且 ERP Connector 首选项 Enable Post Result 的值为 Yes,则将调用
<Windchill>/tasks/com/ptc/windchill/esi/export/ParseAndProcessResult.xml 中的任务。有关传递到任务的输入参数的信息,请参阅 ParseAndProcessResult 一节
|
如果步骤 (1) 到 (3) 中的任意步骤导致错误,则不会执行步骤 (4)。而是会调用 ParseAndProcessResult.xml 中的任务,以在 Windchill 中记录失败的事务处理状况。
|