本主题介绍以 EDI 格式发送消息的 EDI 客户端工具。它可以与增强版回调工具和 XML 工具一起使用。
除了 EDI,EDI 客户端和增强的回调工具支持 CSV、固定长度、行和纯文本。在这些情况下,工具名称会变化,以反映相应的格式(比如,CSV 客户端和 CSV 回调、固定长度客户端和固定长度回调、行客户端和行回调,以及纯文本客户端和纯文本回调)。
XML 转换器工具也支持这些格式。该工具根据格式和方向更改名称。例如,将固定长度转换为 XML、将 XML 转换为固定长度、将 EDI 转换为 XML、将 XML 转换为 EDI。
章节目录:
EDI 格式要求启用消息包许可证功能。消息包许可证功能支持 EDI 客户端的 EDI 格式,增强的回调工具和 XML 转换器。 |
在 SOAtest 9.1 中可用的 EDIFACT 支持仍然可以作为 EDI 客户端、高级回调和 XML 转换器中的“基本 EDIFACT”格式使用。详情请参阅Basic EDIFACT Support。 |
业务和组织可以使用 EDI(电子数据交换)交换消息,EDI 使用几种标准化的消息格式。其中一种格式为 EDIFACT(用于行政、商业和运输的电子数据交换)。
大多数 EDI 消息格式(包括 EDIFACT)都是很难解析,并且不易读取。
EDI 客户端、增强版回调工具和 XML 转换器工具简化了 EDIFACT 在 SOAtest 中的使用。通过无缝地从 XML 转换为本机格式,以及从本机格式转换为 XML,SOAtest 允许轻松地利用 SOAtest 现有 XML 功能来发送、验证和提取 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 数据库或比较工具以 XML 模式链接到它,以便您可以轻松地验证消息。对于消息传送客户端,您需要额外的一步:向响应通讯报文输出添加文本/XML 转换器,然后添加 XML 断言器、XML 数据库或 比较工具。
这有两个预期工作流,可用于配置 EDI 客户端...
(推荐)如果已经有一个字面量 EDI 消息:
如果要从头开始创建 EDI 消息,则执行以下步骤:
表单输入将消息约束为所选消息类型的模式,并不允许向消息中添加不属于消息一部分的字段。在您尝试使用给定字段不支持的值类型(比如,尝试将字符串放入整数型字段)时,它还将发出警告。表单 XML 不执行这两种检查。
注意,可能需要手动添加您消息使用的字段,因为 SOAtest 根据所选定的消息生成最小的有效 EDI 消息。该消息将包含您可能希望修改的默认值。通常不建议在表单输入中使用右键点击填充选项(如用数据源值填充和参数化元素中所述)。它将向消息添加所有可选字段,但不一定添加有效的默认值。使用填充之后,您需要手动检查并输入每个字段的值。对于多数 EDI 消息,这可能是相当乏味的。
使用默认选项,EDI 客户端总是发送在格式复选框所选定的本机格式。然而,在表单输入和表单 XML 模式下,EDI 客户端可配置来发送 SOAtest 的 XML 格式,而不是本机格式。
为了实现这一点,请选择 EDI 客户端编辑器 XML 转换选项部分中的当在表单输入或表单 XML 模式时发送 XML 而不是 EDI 框。
注意,此选项没有关联纯文本或脚本化视图。客户端总是发送纯文本视图中出现或脚本化视图中脚本返回的实际文本。
关于指定请求的推荐工作流,请参阅Workflows。
注意,在表单输入或 XML 格式和纯文本之间进行切换时,表单输入或 XML 格式中的内容会自动转换为纯文本视图中显示的本机格式。字面量输入中的内容会自动转换为在表单输入或表单 XML 中显示的 XML 格式。
在 EDI 格式的模式下,如果将 EDI 消息粘贴到字面量视图,然后切换至表单输入或表单 XML,则 SOAtest 将自动检测消息类型并自动填充行话、版本和消息类型复选框。
有关可用视图的详情,请参阅输入模式。
如果希望发送自定义 EDI 消息,表单 XML 视图将允许您添加自定义字段,这是表单输入不允许输入的。 |
如果将消息粘贴到字面量视图,并切换至表单输入,但是表单输入没有填充,则从纯文本视图切换到 XML 格式。在 SOAtest 无法为粘贴进来的 EDI 消息找到匹配模式的情况下,表单输入将不被填充。然而,使用 XML 格式,SOAtest 通常仍然可以支持这些消息。 |
关于如何配置可用传输设置的详情,请参阅通过不同协议进行测试。
注意,当传输协议为 HTTP 时,Content-Type HTTP 头被设置为以下内容之一:
每个格式的默认 mimetype 为:
点击杂项选项卡以配置以下选项:
2xx
范围之外的 HTTP 响应码。将单个代码和/或代码范围指定为逗号分隔的列表。例如,如果使用“302, 500-599”
,则将接受 302
码或 5xx
范围内的任何码。如果正在使用参数化值,则请保证数据源中的值使用与之相同的格式(如,"302, 500-599"
)。超时 (秒):指定 SOAtest 应考虑 FTP、telnet 或 HTTP 请求超时后的延迟长度(以秒为单位)。默认设置对应于首选项面板的超时设置。自定义设置允许输入超时时间。可以输入一个负超时值,表示指定无限的超时。
在 EDI 格式中,当选项为空时,转换将使用该选项的默认选项。否则,如果选择或键入值,转换将尝试使用该值。注意,如果手动输入一个无效的值,则可能在尝试在表单输入/表单 XML 和字面量视图之间进行切换时,出现错误。
对于 EDI,可用转换选项有:
注意,没有可用于基础 EDIFACT 的转换选项。
若要验证 EDI 消息,通常需要将 XML 模式下的 XML 断言器、XML 数据库或比较工具附加到以 XML 输出为模型的响应有效负载。然而,可以将扩展工具或其他类型的工具附加到该输出,以实现要实现的内容。如果要验证字面量 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”。
请参阅使用 EDI 消息。
在 SOAtest 9.1 中可用的基础 EDIFACT 支持仍然可以作为“基础 EDIFACT”格式来使用:
适用于 EDI 客户端、高级回调和 XML 转换器。
基础 EDIFACT 支持不要求消息包许可证。它支持消息包许可证覆盖的方言子集和版本。例如,EDIFACT 是唯一可用方言,并且只支持版本 10B, 96B, S3, S4, 和 S41。
您会发现: