在本主题中,通过向部署 EDI 协议的 HTTP 终结点发送 X12 840 销售订单消息来测试混合应用程序。 示例销售订单消息如下所示:
ISA*00* *00* *ZZ*CONTOSO *ZZ*NORTHWIND *991221*1226*U*00401*000000025*0*T*:~
GS*PO*THEM*US*19991221*1226*1*X*004010~
ST*840*0002~
BQT*00*BQT02*20120619*001*20120719~
PER*1A*John*EM*John@contoso.com~
N1*001~
N2*co~
N3*Contoso*One Contoso Way~
N4*Redmond*WA*98052*US~
PO1*PO101*121*01*10*AA*A1*1~
CTT*475~
SE*10*0002~
GE*1*1~
IEA*1*000000025~
在此消息中,突出显示的段( 以 PO1 开头的行)包含订单数量。 此消息中的订单数量为 121。 因此,如果发送此消息,则必须将其插入 SalesOrder 表中。 可以将数量更新为小于 100 并重新发送消息,然后必须将其发送到在 FILE 发送端口中指定的文件位置。
若要将此消息发送到 EDI 协议中,可以使用随 Microsoft Azure BizTalk 服务示例附带的 MessageSender 工具。 您可以从https://go.microsoft.com/fwlink/p/?LinkId=235057下载示例。
发送消息
在示例包中找到 MessageSender 项目并生成它。
使用生成的 MessageSender 命令行可执行文件(在项目内的 \bin\Debug 文件夹下)将消息发送到已部署的 EDI 协议。 此工具接受采用以下格式的命令行参数:
MessageSender.exe <ServiceBusNamespace> <IssuerName> <IssuerKey> <EDI agreement endpoint> <MessageFilepath> <ContentType>
其中:
参数名称 DESCRIPTION ServiceBusNamespace 服务总线命名空间 发行人名称 指定命名空间的颁发者名称 发行者密钥 指定命名空间的颁发者密钥 EDI 协议终结点 部署 EDI 协议的终结点。 您可以从在步骤 2(适用于 Azure):创建 EDI 协议中部署的 EDI 协议的“接收设置”选项卡(以及其中的传输页面)获取此终结点 URL。 消息文件路径 包含示例请求消息的文件的路径。 内容类型 对于本教程,请将此参数设置为 text/plain。 打开命令提示符并进入您生成 MessageSender 项目的解决方案目录。 运行以下命令,发送订单数量超过 100 的请求消息:
MessageSender.exe <service bus namespace> owner <issuer key>https://<namespace>.servicebus.appfabriclabs.com/7576ff3d-a0f3-4a46-a4f6-f5be4a50616a/DemoAgreement<path to the sample message> "text/plain"
打开 SQL Server Management Studio,连接到包含 SalesOrder 表的数据库,并验证新记录是否已插入表中。 请注意 Qty 列中的值;它必须是 121。
使用 MessageSender 发送另一条消息,但这次将消息中订购的数量值设置为 99。 你会注意到,现在, SalesOrder 表中没有插入任何记录。 而是将消息复制到您为接收订单数量小于100的情况指定的文件位置。 收到的消息如下所示:
<ns1:SalesOrder xmlns:ns0="http://schemas.microsoft.com/BizTalk/EDI/X12/2006" xmlns:ns1="http://ECommerceSalesOrder.Inbound"> <CompanyCode>co</CompanyCode> <PartID>1</PartID> <Quantity>99</Quantity> <AskPrice>10</AskPrice> <RequestShipmentDate>2012-07-19</RequestShipmentDate> <Address> <Line1>Contoso</Line1> <Line2>One Contoso Way</Line2> <City>Redmond</City> <State>WA</State> <Country>US</Country> <Zipcode>98052</Zipcode> </Address> <Contact> <Firstname>John</Firstname> <Lastname>John@contoso.com</Lastname> </Contact> <Comments>Order from Partnerco</Comments> <DateNow>2012-06-19</DateNow> </ns1:SalesOrder>
请注意 Quantity 元素中的值。 是 99。