简介: 本文章系列讲述如何使用 WebSphere Partner Gateway V6.2 进行 Electronic Data Interchange (EDI) 转换。第 2 部分演示如何实现两个不同的拆封和 EDI 转换操作 —— EDI 到 XML 转换和 EDI 到面向记录的数据(Record-Oriented Data,ROD)转换。
本文介绍 IBM® WebSphere® Partner Gateway V6.2 中的两个转换和封装(enveloping)场景。在场景 1 中,WebSphere Partner Gateway 从一个内部或外部合作伙伴接收一些 XML 文档,将它们转换为 EDI 事务,封装事务,然后将它们返回内部或外部合作伙伴。在场景 2 中,WebSphere Partner Gateway 从一个内部或外部合作伙伴接收一些面向记录的数据(ROD)文档,将这些文档转换为 EDI 事务,封装事务,然后将它们返回内部或外部合作伙伴。(ROD 文档是遵守一个专用格式的文档。)
拆封(de-enveloping)指的是将一个单一的 EDI 文档拆分为它的多个元素 EDI 业务文档,这些文档称为 “事务”。在 EDIFACT 标准中,这些文档称为 “消息”。每个事务或消息作为单独的业务文档流流经文档管理器。拆封不同于分割(splitting)。当多个 EDI 文档被放置到一个文件中时适合使用分割方法,而且这些文档相互之间可能没有任何关系。EDI 拆分程序提取 Enveloper 级别、Group 级别和 Transaction 级别信息。
- 应该安装并运行 WebSphere Partner Gateway V6.2
- 下载本文末尾的 samples.zip 并将其解压缩到一个文件夹中,它包含样例映射和输入文件。
在场景 1 中,来自源贸易伙伴的一个入站 EDI X12 ISA 穿过一个集线器,这个 EDI 在集线器中转换为 XML,输出 XML 然后被发送到目标贸易伙伴。映射是 EDI-XMLcompiled.eif,输入文件是 EDI_855_XMLInput.edi。
- 登录 WebSphere Partner Gateway 社区控制台。
- 导航到 Wizards => EIF Import Wizard。
- 单击 Browse 并从文件系统选择 EDI-XMLcompiled.eif。
- 单击 Import:
图 2. 使用 EIF Import Wizard 导入一个映射
- 下一个屏幕打开:
图 3. Import summary 屏幕
- 单击 Next 查看使用这个映射导入创建的事务:
图 4. 创建的默认交互
- 单击 Next,然后单击 Finish:
图 5. Import completion 屏幕
- 导航到 Hub Admin => Hub Configuration => Maps => Transformation maps。转换映射 EDI_XML_PO-ACK 应该被列示出来。
- 单击 View details 图标检查在源和目标端的文档定义。
图 6. 从源到目标的文档定义
- 导航到 Hub Admin => Receivers。
- 单击 Create Receiver。
- 指定接收器的名称。例如:FileReceiver。
- 选择 Transport 作为 File directory。
- 指定 Document Root Path。例如:/FileReceiver。
- 单击 Save。只有在预期输入文档带有多个 EDI ISA 时才需要 EDI Splitter。
- 创建一个 Internal Partner,名称为 Manager,DUNS id 为 123123123。
- 创建一个 External Partner,名称为 Partner,DUNS id 为 321321321。
- 编辑输入文件 EDI_855_XMLInput.edi,修改 Sender 和 Receiver IDs,如下所示:
图 7. 修改输入 XML 文件中的 Sender 和 Receiver IDs
- 选择 transport 作为 File Directory,创建 Manager 和 Partner 的 Destinations。
- 对于 EDI 到 XML 场景,创建两个交互:一个对应于拆封,另一个对应于生成的已拆封消息到 XML 的转换。
- 验证和转换的交互已经在导入映射时创建。
- 导航到 Hub Admin => Document Definition => Create interaction。
- 选择以下项目,为拆封创建一个交互:
- Source Package: N/A, Protocol: EDI-X12(ALL), Document Flow: ISA(ALL)
- Target Package: None, Protocol:EDI-X12(ALL), Document Flow:ISA (ALL)
- Action EDI De-envelope
- 为 Manager (Internal Partner) 启用以下 Package、Protocol 和 Document Flow:
- Package: None, Protocol: EDI-X12 (ALL), Document Flow: ISA (ALL)
- Package: N/A (N/A), Protocol: X12V4R1 (ALL), Document Flow: 855 (ALL)
- 为 Partner (External Partner) 启用以下 Package、Protocol 和 Document Flow:
- Package: N/A, Protocol: EDI-X12 (ALL), Document Flow: ISA (ALL)
- Package: None (N/A), Protocol: CUSTOM_XML(ALL), Document Flow: PURCHASE_ORDER_ACK(ALL)
- 导航到 Account Admin => Connections。
- 从 Source 下拉列表中选择 Manager。
- 从 Target 下拉列表中选择 Partner。
- 这些连接应该被激活,如下所示:
图 8. 启用合作伙伴连接
每个封装的 EDI 文档都有一个关联的控制编号,作为 ISA 段的一部分,这个控制编号惟一识别入站文档。为了多次使用相同的输入文档,需要告知 WebSphere Partner Gateway 允许副本控制编号,否则,它将不处理文档,并抛出一个副本交换错误:
- 导航到 Hub Admin => Hub Configuration => Document Definition。
- 单击 Package: None 旁边的展开节点图标,这将打开所有可用协议的列表。
- 单击 Protocol: EDI-X12 (ALL) 旁边的编辑属性图标。
- 定位 Document Flow Context Attributes 下方的 Allow documents with duplicate document ids 属性,从下拉菜单中选择 Yes。
- 单击 Save。
- 将输入文件 EDI_855_XMLInput.edi 复制到 FileReceiver/Documents/Production 文件夹。
- 导航到 Viewers => Document Viewer,检查文档状态。这个 EDI 文档应该被拆封并转换为 XML。
- 这个 XML 文档被发送到 Partner 目的地。
- 输出事务如下所示:
图 9. Document Viewer 中的事务
在场景 2 中,一个来自源贸易伙伴的入站 EDI X12 ISA 穿过集线器,该 EDI 在集线器中转换为 ROD,然后被发送到目标贸易伙伴。映射是 compiledEDI_ROD.eif,输入文件是 edi2adf.inp:
- 使用 EIF Import Wizard 导入映射,如场景 1 的步骤 1 所述:
图 11. Map import completion 屏幕
参见场景 1 的步骤 2 验证:S-DT-EDI-TO-ADF 是否列示,文档定义是否创建。
- 导航到 Hub Admin => Receivers。
- 单击 Create Receiver。
- 指定 Receiver 的名称。例如:EDItoRODFileReceiver。
- 选择 Transport 作为 File Directory。
- 指定 Document Root Path。例如:/EDItoRODFileReceiver。
- 单击 Receiver Creation 页面上的 Save。
在场景 1 的步骤 4 中创建的合作伙伴可以在这个场景中重用,或者,也可以创建新的合作伙伴。为简便起见,重用场景 1 中创建的合作伙伴。编辑输入文件 edi2adf.inp,修改 Sender 和 Receiver IDs,如图 7 中的 场景 1 所示。
选择 transport 作为 File Directory,创建 Manager 和 Partner 的 Destinations。这个步骤可以重用场景 1 中创建的目的地。
对于 EDI 到 ROD 场景,创建两个交互:一个对应于拆封,一个对应于生成的已拆封消息到 ROD 的转换。第一个交互已经在场景 1 的步骤 6 中创建,第二个交互已在转换映射导入时创建。
- 为 Manager (Internal Partner) 启用以下 Package、Protocol 和 Document Flow:
- Package: None, Protocol: EDI-X12 (ALL), Document Flow: ISA (ALL)
- Package: N/A, Protocol: X12V2R1 (ALL), Document Flow: 850 (ALL)
- 为 Partner (External Partner) 启用以下 Package、Protocol 和 Document Flow:
- Package: N/A, Protocol: EDI-X12 (ALL), Document Flow: ISA (ALL)
- Package: None, Protocol: DEMO850CL_DICTIONARY (ALL), Document Flow: DEMO850CLSUW (ALL)
- 导航到 Account Admin => Connections。
- 从 Source 下拉列表中选择 Manager。
- 从 Target 下拉列表中选择 Partner。
- 激活连接,如下所示:
图 12. 激活合作伙伴连接
这个配置已经在场景 1 的步骤 9 中完成。
- 将输入文件 edi2adf.inp 复制到 EDItoRODFileReceiver/Documents/Production 文件夹。
- 导航到 Viewers => Document Viewer,检查文档状态。这个 EDI 文档应该被拆封并转换为 ROD。
- 这个 ROD 文档然后被发送到 Partner 的目的地。输出事务如下所示:
图 13. Document Viewer 中的事务
本文演示了在 WebSphere Partner Gateway V6.2 中进行拆封和转换的两个场景 —— EDI 到 XML 转换和 EDI 到 ROD 转换。