本主题介绍了 EDI 消息响应程序,并解释了此类型消息响应程序的特定配置选项。
本章包含:

关于 EDI 消息响应程序
EDI 消息响应程序是一个消息响应程序,它允许使用 XML,从而简化 EDI(EDI 通常很难阅读)的使用。你可以将 EDI 响应负载作为 XML 文档来建模;然后响应程序在发送消息之前自动将 XML 转换为 EDI。如果响应程序接收到一条 EDI 消息,则响应程序会将消息转化为 XML,以便使用 XPaths 或附加工具定义消息关联。消息响应程序与协议无关。在 PVA 的部署配置中定义了访问响应程序的传输协议或 API。

你可以直接从添加响应程序(Add Responder)向导中创建一个 EDI 消息响应程序。
EDI 格式要求启用消息包许可证功能。消息包许可证功能支持 EDI 客户机的 EDI 格式和 XML 转换器。 |
关于 EDI 格式
Parasoft 的 EDI 格式支持涵盖以下标准:
- AL3 - 也叫作 ACORD AL3
- CARGO - 也叫作 IATA Cargo-IMP
- EANCOM
- EDIFACT
- EDIFACT Basic - 如下所述
- EDIGAS - 也叫作 Edig@s
- HIPAA
- HL7
- IATA - 也叫作 IATA PADIS
- NCPDP - 也叫作 NCPDP SCRIPT
- TELCO - 也叫作 NCPDP Telecommunication
- TRADACOMS
- X12
关于支持每个标准中的哪些版本和消息类型的更多详情,请查阅 EDI 支持细节。
基础 EDIFACT 支持
基础 EDIFACT 支持不要求消息包许可证。它支持消息包许可证覆盖的方言子集和版本。例如,EDIFACT 是唯一可用方言,并且只支持版本 10B, 96B, S3, S4, 和 S41。
注意,基础 EDIFACT 和 EDI 转换生成相同 EDI 数据的不同 XML 表示。因此,你不能使用“基础 EDIFACT”将 EDI 转换为 XML,然后再使用“EDI”将其转换回 EDI。同样地,你不能使用“EDI”将 EDI 转换为 XML,然后再使用“基础 EDIFACT”将其转换回 EDI。
工作流
这有两个预期工作流,可用于配置 EDI 消息响应程序...
现有文字 EDI 消息
(推荐)如果已经有一个文字 EDI 消息:
- 创建新的 EDI 消息响应程序。
- 切换到文字模式,并粘贴 EDI 消息。
- 切换到表单输入或表单 XML 模式,然后根据输入的消息进行填充。现在,你可以按照自己的意愿配置和参数化消息。
从头开始创建 EDI 消息
如果要从头开始创建 EDI 消息,则执行以下步骤:
- 创建新的 EDI 消息响应程序。
- 使用 Dialect、 Version和 Message 类型字段选择一个消息类型,这些字段将填充表单输入视图。
- 使用表单输入手动指定消息。
表单输入将消息约束为所选消息类型的模式,并不允许向消息中添加不属于消息一部分的字段。在你尝试使用给定字段不支持的值类型(比如,尝试将字符串放入整数型字段)时,它还将发出警告。表单 XML 不执行这两种检查。
注意,可能需要手动添加你消息使用的字段,因为 Virtualize 根据所选定的消息生成最小的有效 EDI 消息。该消息将包含你可能希望修改的默认值。通常不建议在表单输入中使用右键单击 Populate 选项。它将向消息添加所有可选字段,但不一定添加有效的默认值。使用 Populate之后,你需要手动检查并输入每个字段的值。对于多数 EDI 消息,这可能是相当乏味的。
指定响应
关于指定响应的推荐工作流,请查阅 Workflows。
注意,在表单输入或表单 XML 和文字之间进行切换时,表单输入或表单 XML 中的内容会自动转换为文字视图中显示的本机格式。文字输入中的内容会自动转换为在表单输入或表单 XML 中显示的 XML 格式。
在 EDI 格式的模式下,如果将 EDI 消息粘贴到文字视图,然后切换至表单输入或表单 XML,则 Virtualize 将自动检测消息类型并自动填充 Dialect、 Version和 Message Type 复选框。

现在,你可以像配置任何其他消息响应程序一样配置 EDI 消息响应程序。有关配置标准消息响应程序行为的更多详情(如,关联性、性能文件等等),请查阅 消息响应程序概要。
如果希望发送自定义 EDI 消息,表单 XML 视图将允许你添加自定义字段,这是表单输入不允许输入的。 |
如果将消息粘贴到文字视图,并切换至表单输入,但是表单输入没有填充,则从文字视图切换到表单 XML。在 Virtualize 无法为粘贴进来的 EDI 消息找到匹配模式的情况下,表单输入将不被填充。然而,使用表单 XML,Virtualize 通常仍然可以支持这些消息。 |
指定转换选项
在 EDI 格式中,当选项为空时,转换将使用该选项的默认选项。否则,如果选择或键入值,转换将尝试使用该值。注意,如果手动输入一个无效的值,则可能在尝试在表单输入/表单 XML 和文字视图之间进行切换时,出现错误。
对于 EDI,可用转换选项有:
- Treat all segments and elements as optional - 如果设置为 yes,则所有强制段和强制数据元素都被视为可选的。如果设置为 no(默认),则强制段或强制数据元素会触发一个错误。如果你的提供程序拒绝提供根据 EDI 规范认为是强制性的片段和元素,则启用此选项将非常有用。
- Enable validation - 当设置为 yes (默认)时,将与相关的 EDI 资源库比较 EDI 文件(输入或输出)的版本、发布、消息和段。如果 EDI 文件包含在 EDI 资源库中不存在的值时,将抛出一个错误。
如果禁用验证(值设置为“no”),即使 EDI 文件包含版本、发布、消息或资源库中没有的段,处理仍将继续。在处理一个未知版本、发布、消息或段时,某些检查将不会执行,因为所需数据的结构未知。
例如,如果文件是已知版本但包含未知段,则不会对该段执行数据类型检查,但是照常执行对文件其余部分的检查。同样,如果消息不存在于 EDI 资源库中,文件仍然被处理,但是没有执行段顺序检查。 - Component value separator - 当元素是一个符合元素时,用于在复合元素内将各组成元素彼此分离的字符。此选项影响 EDI 到 XML 的转换,反之亦然。
- Line continuation character - 当 EDI 消息中的每个段分割到新行时,附加到段终止符的字符。该字符向主机系统表明交换尚未结束。附加到交换中除最后一个以外的所有段。此选项影响 EDI 到 XML 的转换,反之亦然。此选项支持除 CARGO 之外的所有 EDI 方言。
- Decimal character - 用于转换文件中十进制字符的符号。通常是句号或逗号。此选项影响 EDI 到 XML 的转换,反之亦然。
- Element separator - 用于在一个段中分隔元素的字符。此选项影响 EDI 到 XML 的转换,反之亦然。
- Segment name/content separator (TRADACOMS) - 在 TRADACOMS 数据流中,用于分割段名和段内容的默认字符是等号(=)。可以使用此选项覆盖默认字符。此选项影响 EDI 到 XML 的转换,反之亦然。此选项只适用于 TRADACOMS 方言。
- Invalid character replacement - 与字符库覆盖(EDIFACT)选项的 REPLACE 值一起使用,以指定应该用于替换无效字符的字符。(如果未指定此选项)默认为下划线("_")。有效值有:
\u#### – 用于指定 Unicode 值(用 #### 代替合适值)。
\d#### – 用于指定十进制值,(用 #### 代替合适值)。
此选项影响 EDI 到 XML 的转换,反之亦然。 - Release (escape) symbol - 发布或转义字符。它关闭了对下一字符的特殊处理。假设你的文本消息使用同样用于分隔元素的字符。指定的字符用于引导 EDI 处理器将该字符视为正常字符,而不是文本的末尾。此选项影响 EDI 到 XML 的转换,反之亦然。
- Repeat symbol - 使用它的 EDI 方言的重复符号。此选项影响 EDI 到 XML 的转换,反之亦然。
- Segment separator - 要用于段分隔符的字符。此选项影响 EDI 到 XML 的转换,反之亦然。
- Stop processing of EDI content character - 当遇到该字符时,指定一个停止 EDI 内容所有处理的字符。例如,当 EDI 流遇到 ^Z (0x1A) 时终止,那么指定 terminate=26 (其中,26 是 0x1A 的十进制等值)会导致在最后遇到 ^Z 以及忽略任何剩余的文件内容的时候才会进行 EDI 解析。
- Subcomponent (tertiary separator) - 要用于子组件分隔符的字符。此选项影响 EDI 到 XML 的转换,反之亦然。
- Character repertoire override (EDIFACT) - 允许转换覆盖并修改基于 EDIFACT 文档(比如,EANCOM 和 IATA)的字符编码。
可以使用一个或多个以下值,并用 "+” 符号连接(比如,ISH+REPLACE):
DEFAULT – 使用文件中指定的编码。该值不能与任何其他值一起使用。
EANCOM – 支持添加这些其他 EANCOM 字符到 UNOA 和 UNOB :#, @, [, ], {, }, \, |, ‘, 和 ^。
SYMBOL – 强制所有字符,包括如元素和段分隔符的特殊字符,这些特殊字符根据编码进行验证。
REPLACE – 用无效属性指定的字符替换任何无效字符。如果没有指定无效属性,则使用下划线("_")。如果没有指定 REPLACE,则将报告一个错误。
FINNISH – 更改用于 UNOA 和 UNOB 的芬兰字符集中某些字符的含义(并将 UNOY 和 UNOZ 分别添加为 UNOA 和 UNOB 的同义词)。 - Extension map file - 允许输入到扩展映射文件的路径,该映射文件描述了你正在使用的自定义/专有 EDI 消息类型与它所基于的 EDI 标准的不同之处。扩展映射文件可以使用 EDI 标准交换格式(SEF),打开的标准允许描述专有 EDI 消息类型。${ENV_VAR} 格式可用于指定文件路径。
注意,没有可用于基础 EDIFACT 的转换选项。