逻辑应用将架构添加到 X12 协议

Logic Apps adding Schema to X12 Agreement

我被要求处理来自 SFTP 服务器的 X12 文档,该服务器将具有多个 GS/ST 段。所以我决定将逻辑应用程序与企业集成包一起使用。我以前处理过平面文件,但这个解决方案需要我使用 X12。所以我开始将模式添加到协议中,但它说有 "No schemas found"。我根据这条消息假设,它不允许我使用我上传的平面文件模式。除了如何上传、更新和删除模式文件外,我找不到任何关于此的文档。我应该为协议使用什么架构格式?它们在任何地方都可用吗?

X12 协议只能识别 BizTalk 附带的架构。逻辑应用的协议无法识别 "homemade" 模式。

我最终找到了可以获取 BizTalk 架构的位置。您可以通过以下方式获得它:

How to Install EDI Schema Files

我做的是

  1. 创建一个 Windows 2016 VM
  2. 安装 VS 2013
  3. 安装 BizTalk 2013 R2 评估版
  4. 从 C:\Program Files (x86)\Microsoft BizTalk Server 2013 复制文件 R2\XSD_Schema\EDI\MicrosoftEdiXSDTemplates 到我的本地机器
  5. 运行 我机器上的可执行文件

仅供参考:从 2016 年开始,免费版本的 BizTalk 不再提供此可执行文件。这就是我使用 2013 R2 的原因。

这些架构与架构编辑器创建的架构之间存在一些细微差别。

BizTalk 架构有:

<xs:schema xmlns:btsedi="http://schemas.microsoft.com/BizTalk/2005/EdiSchemaEditorExtension" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://schemas.microsoft.com/BizTalk/EDI/X12/2006" targetNamespace="http://schemas.microsoft.com/BizTalk/EDI/X12/2006" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

已创建 SDK 架构编辑器:

<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:xs="http://www.w3.org/2001/XMLSchema">

BizTalk 架构有额外的属性。他们有:

  1. targetNamespace="http://schemas.microsoft.com/BizTalk/EDI/X12/2006"
  2. xmlns:btsedi="http://schemas.microsoft.com/BizTalk/2005/EdiSchemaEditorExtension"

还要注意,编辑器会将第一个元素创建为 Root,我相信 X12 需要格式非常具体的名称:X12_{veriosn}_{TransactionSet}。 X12 也是 UTF-8,而编辑器创建的是 UTF-16。

您应该先将这些架构上传到您的集成帐户中。在将架构添加到协议之前。

我是 BizTalk 及其以 VS2015 为中心的世界观的新手。有一个包含几乎所有 BizTalk 项目的 Azure 模板:

BizTalk Server 2016 开发人员

  • SQL Serer
  • BizTalk 服务器
  • Visual Studio 2015
  • BizTalk SDK(减去 EDI 架构)

架构位于 MicrosoftEdiXSDTemplates.zip(包括 X12)文件的 Microsoft Azure BizTalk Services SDK Setup 中。

注意 Microsoft open sourced 架构,但不得不删除 X12 架构,因为它们不是开源的。

文件 "format" 必须匹配。我 "believe" 它验证 header 信息 and/or 使用的字符集。它们应该与 BizTalk 附带的 X12 相匹配。如果您需要执行自定义版本,例如修改字段以允许更大的字符串大小或更改段的顺序,请执行以下操作:

  1. 制作原始 X12 架构的副本。
  2. 将其重命名为唯一的,例如将 X12_00401_940.xsd 更改为 X12_00401_940_Custom.xsd。
  3. 根据需要自定义字段/段。

关键是文件中使用的字符集和header信息。确保保留这些。