本主题涵盖以 EDI 格式发送消息的 EDI 客户端工具。它可以与 增强版回调工具 和 XML 工具一起使用。

除了 EDI,EDI 客户端和高级回调工具支持 CSV、固定长度、行和纯文本。在这些情况下,工具名称会更改,以反映适当的格式(比如, CSV 客户端和 CSV 回调固定长度客户端和固定长度回调行客户端和行回调,以及 纯文本客户端和纯文本回调)。 

XML 转换器 工具也支持这些格式。该工具根据格式和方向更改名称。例如,将 Fixed Length 转换为 XML、将 XML 转换为 Fixed Length、将 EDI 转换为 XML、将 XML 转换为 EDI。

本章包含:


EDI 格式要求启用消息包许可证功能。消息包许可证功能支持 EDI 客户端的 EDI 格式,高级回调工具和 XML 转换器。  

在 SOAtest 9.1 中可用的 EDIFACT 支持仍然可以作为 EDI 客户端、高级回调和 XML 转换器中的“基本 EDIFACT”格式使用。有关更多详情,请查阅 Basic EDIFACT Support

与 SOAtest 一起使用 EDI

业务和组织可以使用 EDI(电子数据交换)交换消息,EDI 使用几种标准化的消息格式。其中一种格式为 EDIFACT(用于行政、商业和运输的电子数据交换)。 

大多数 EDI 消息格式(包括 EDIFACT)都是很难解析,并且不易读取。

EDI 客户端, 增强版回调工具XML 转换器 工具简化了 EDIFACT 在 SOAtest 中的使用。通过无缝地从 XML 转换为本机格式,以及从本机格式转换为 XML,SOAtest 允许轻松地利用 SOAtest 现有 XML 功能来发送、验证和提取 EDI 消息中的数据。

EDI 格式支持涵盖以下标准: 

关于支持每个标准中的哪些版本和消息类型的更多详情,请查阅 EDI 支持细节

使用 EDI 客户端

EDI 客户端用于在表单视图建模 EDI 消息,该视图允许轻松地更改消息内指定字段的值,或者允许参数化消息内的字段。 

EDI 客户端提供消息客户端工具功能的超集。它可以做任何消息传递客户端可以做的内容,也可以自动将请求有效负荷从 XML 转换为 EDI(以及将响应有效负荷从 EDI 转换为 XML)。 

它允许您使用 XML,从而简化了 EDI 的使用(EDI 通常很难阅读)。您可以将 EDI 请求负载作为 XML 文档来建模;然后客户端在发送消息之前自动将 XML 转换为 EDI。如果服务端返回 EDI 消息,则客户端可以将该消息转换为 XML,以便您可将像 XML 断言器和 XML 数据库这样的工具附加到响应中。

如果只想发送文字 EDI 消息,则可能需要使用消息传递工具代替此工具。然而,如果期望返回 EDI 数据,则 EDI 客户端比消息传递客户端具有以下优势:响应负载作为 XML 输出建模。该输出允许将 XML 断言器、XML 数据库或 Diff 工具以 XML 模式链接到它,以便您可以轻松地验证消息。对于消息传递客户端,您需要额外的一步:向响应流量输出添加文本/XML 转换器,然后添加 XML 断言器、XML 数据库或 Diff 工具。

工作流

这有两个预期工作流,可用于配置 EDI 客户端...

现有文字 EDI 消息

(推荐)如果已经有一个文字 EDI 消息:

  1. 创建新的 EDI 客户端。
  2. 切换到文字模式,并粘贴 EDI 消息。
  3. 切换到表单输入或表单 XML 模式,然后根据输入的消息进行填充。现在,您可以按照自己的意愿配置和参数化消息。有关更多详情,请查阅 Specifying the Request 。
  4. 设置合适的传输设置。有关更多详情,请查阅 Specifying Transport Settings 。
  5. 向输出添加合适的验证工具。有关更多详情,请查阅 Validating EDI Messages 。
  6. 运行测试。

从头开始创建 EDI 消息

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

  1. 创建新的 EDI 客户端。
  2. 使用 DialectVersionMessage 类型字段选择一个消息类型,这些字段将填充表单输入视图。
  3. 使用表单输入手动指定消息。有关更多详情,请查阅 Specifying the Request 。

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

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

工具配置详情

以本机或 XML 格式发送

使用默认选项,EDI 客户端总是发送在 Format 复选框所选定的本机格式。然而,在表单输入和表单 XML 模式下,EDI 客户端可配置来发送 SOAtest 的 XML 格式,而不是本机格式。 

为了实现这一点,请选择 EDI 客户端编辑器 XML Conversion Options 部分中的 Send XML instead of EDI when in Form Input or Form XML mode 框。  



注意,此选项没有关联文字(Literal)或脚本化(Scripted)视图。客户端总是发送文字视图中出现或脚本化视图中脚本返回的实际文本。

指定请求 

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

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

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



有关可用视图的更多详情,请查阅 输入模式


如果希望发送自定义 EDI 消息,表单 XML 视图将允许您添加自定义字段,这是表单输入不允许输入的。

如果将消息粘贴到文字视图,并切换至表单输入,但是表单输入没有填充,则从文字视图切换到表单 XML。在 SOAtest 无法为粘贴进来的 EDI 消息找到匹配模式的情况下,表单输入将不被填充。然而,使用表单 XML, SOAtest 通常仍然可以支持这些消息。

指定传输设置

关于如何配置可用传输的设置的更多详情,请查阅 Testing Through Different Protocols

注意,当传输协议为 HTTP 时,Content-Type HTTP 报头被设置为以下内容之一:

每个格式的默认 mimetype 为:

配置其他选项

单击 Misc 选项卡以配置以下选项:

指定转换选项

在 EDI 格式中,当选项为空时,转换将使用该选项的默认选项。否则,如果选择或键入值,转换将尝试使用该值。注意,如果手动输入一个无效的值,则可能在尝试在表单输入/表单 XML 和文字视图之间进行切换时,出现错误。

对于 EDI,可用转换选项有:

注意,没有可用于基础 EDIFACT 的转换选项。

验证 EDI 消息

若要验证 EDI 消息,通常需要将 XML 模式下的 XML 断言器、XML 数据库或 Diff 工具附加到作为 XML 输出的响应负载建模(Response Payload Modeled)。然而,可以将扩展工具或其他类型的工具附加到该输出,以实现要实现的内容。如果要验证文字 EDI 内容,则可以将任何工具附加到响应负载输出;这将把文字 EDI 内容发送到附加到它的任何工具。

EDI 客户端向响应有效负载提供两个输出: 

例如,如果使用纯文本格式,并且服务器返回字符串“delta”,则 SOAtest 将提供值“delta”作为附加到“Payload”输出工具的输入。对于附加到 "Payload Converted to XML” 输出的工具,EDI 客户端将提供值 " <root>delta</root>"。

使用请求负载

附加请求负载输出

EDI 客户端向请求负载提供两个输出:相反,消息传递客户端提供一个输出(简单命名为“流量”)。EDI 客户端有两个输出,因为它支持自动将请求从 XML 转换为 EDI 格式。

EDI 客户端存在两个请求:

如果选择了发送 XML 而不是 EDI(在表单输入或表单 XML 模式时发送 XML 而不是 EDI)的选项,则附加到输出“建模为 XML 的有效负载”的输出将不会运行。



修改请求负载

与消息传递客户端一样,您可以通过将工具附加到请求输出来修改请求负载。例如,如果将返回值的扩展工具附加到负载输出,那么 SOAtest 将使用该值作为请求负载。换句话说,SOAtest 将向服务器发送该值,并且您将在流量视图器汇总看到该值。此外,您可以通过向 "Payload Modeled as XML” 输出附加工具来修改消息的 XML 模型。

运行工具

在“Payload”输出之前,EDI 客户端运行 "Payload Modeled as XML” 输出。

例如,假设您拥有以下工具:

在 EDI 客户端 UI 中,您选择从 XML 转换至 EDI,并选择了使用纯文本格式。可以将请求负载建模为以下 XML:

<root>alpha</root>

当 EDI 客户端运行时,首先运行扩展工具 1,该工具附加在建模为 XML 请求负载。扩展工具 1 包含以下 Jython:

from com.parasoft.api import Application
def main(input, context):
Application.showMessage("input: " + str(input))    
   return str(input).replace("alpha", "beta") 

扩展工具 1 打印 "input: <root>alpha</root>" 到控制台,并返回 "<root>beta</root>"。

扩展工具 2 包含以下 Jython:

from com.parasoft.api import Application
def main(input, context):
Application.showMessage("input: " + str(input))    
    return str(input).replace("beta", "gamma")def main(input, context):

工具将 "input: beta” 打印到控制台,因为 EDI 客户端在内部转换了值, 

该值由扩展工具 1 返回, "<root>beta</root>",通过删除“root”标签来发送文本。扩展工具 2 返回字符串 "gamma"。将在浏览器视图中的请求负载中看到字符串 "gamma" 。

教程

请查阅 Working with EDI Messages

基础 EDIFACT 支持

在 SOAtest 9.1 中可用的基础 EDIFACT 支持仍然可以作为“基础 EDIFACT”格式来使用:



适用于 EDI 客户端、高级回调和 XML 转换器。

基础 EDIFACT 支持不要求消息包许可证。它支持消息包许可证覆盖的方言子集和版本。例如,EDIFACT 是唯一可用方言,并且只支持版本 10B, 96B, S3, S4, 和 S41。 

注意: