本主题介绍了 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 消息:

  1. 创建新的 EDI 消息响应程序。
  2. 切换到文字模式,并粘贴 EDI 消息。
  3. 切换到表单输入或表单 XML 模式,然后根据输入的消息进行填充。现在,你可以按照自己的意愿配置和参数化消息。

从头开始创建 EDI 消息

如果要从头开始创建 EDI 消息,则执行以下步骤:

  1. 创建新的 EDI 消息响应程序。
  2. 使用 DialectVersionMessage 类型字段选择一个消息类型,这些字段将填充表单输入视图。
  3. 使用表单输入手动指定消息。

表单输入将消息约束为所选消息类型的模式,并不允许向消息中添加不属于消息一部分的字段。在你尝试使用给定字段不支持的值类型(比如,尝试将字符串放入整数型字段)时,它还将发出警告。表单 XML 不执行这两种检查。

注意,可能需要手动添加你消息使用的字段,因为 Virtualize 根据所选定的消息生成最小的有效 EDI 消息。该消息将包含你可能希望修改的默认值。通常不建议在表单输入中使用右键单击 Populate 选项。它将向消息添加所有可选字段,但不一定添加有效的默认值。使用 Populate之后,你需要手动检查并输入每个字段的值。对于多数 EDI 消息,这可能是相当乏味的。

指定响应 

关于指定响应的推荐工作流,请查阅 Workflows

注意,在表单输入或表单 XML 和文字之间进行切换时,表单输入或表单 XML 中的内容会自动转换为文字视图中显示的本机格式。文字输入中的内容会自动转换为在表单输入或表单 XML 中显示的 XML 格式。  

在 EDI 格式的模式下,如果将 EDI 消息粘贴到文字视图,然后切换至表单输入或表单 XML,则 Virtualize 将自动检测消息类型并自动填充 DialectVersionMessage Type 复选框。 



现在,你可以像配置任何其他消息响应程序一样配置 EDI 消息响应程序。有关配置标准消息响应程序行为的更多详情(如,关联性、性能文件等等),请查阅 消息响应器概要


发送自定义 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 的转换选项。

  • No labels