【问题标题】:Logic Apps adding Schema to X12 Agreement将架构添加到 X12 协议的逻辑应用
【发布时间】:2017-06-12 14:48:48
【问题描述】:

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

【问题讨论】:

  • 你能分享确切的错误或快照吗?假设您的 X12 操作抛出错误:您检查了协议 json 文件吗?它应该在“发送和接收”端都映射模式,例如“schemaReferences”:[{“messageId”:“850”,“schemaVersion”:“00401”,“schemaName”:“850”}],
  • 没有错误,是在设置协议中。在协议中,当设置要处理/允许的模式时,它会在模式选择下拉列表中显示“未找到模式”。我希望它能够向我展示我上传的架构。可能是对X12流程缺乏了解。我使用 SDK 随附的平面文件向导 Azure Logic Apps Enterprise Integration Tools 创建了架构。
  • 我正在尝试为 940、943,944 和 945 处理 X12 文档。对我来说这似乎很疯狂,我需要为标准已知格式创建架构。
  • 是的,当前设计需要上传标准格式的架构。您可以随时提供反馈以改进我们的积压工作feedback.azure.com/forums/287593-logic-apps
  • 我可以上传架构。大多数时候,无论如何我们都需要根据客户的需求“定制”它们。我要问的是,标准 X12 模式是否可用,还是我们需要创建它们?有人说他们是从 MS 那里得到的,但我找不到在哪里。我使用 Azure 逻辑应用企业集成 SDK 中包含的平面文件向导来创建我的,但协议不会使用它。那么是我在架构中犯了错误,还是 X12 架构的格式与平面文件向导创建的格式不同?如果是后者,正确的格式是什么?

标签: azure-logic-apps x12


【解决方案1】:

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

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

key是文件中使用的字符集和头信息。请务必保留这些内容。

【讨论】:

    【解决方案2】:

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

    BizTalk Server 2016 开发人员

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

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

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

    【讨论】:

      【解决方案3】:

      X12 协议只能识别 BizTalk 附带的架构。 Logic App 的协议无法识别“自制”架构。

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

      How to Install EDI Schema Files

      我做的是

      1. 创建一个 Windows 2016 虚拟机
      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。

      【讨论】:

      • 这真的是真的吗:逻辑应用程序的协议无法识别“自制”模式。我已经按照docs.microsoft.com/en-us/azure/logic-apps/… 成功使用了自定义 EDIFACT,现在我需要自定义 X12,但我遇到了麻烦。对于自定义 X12 架构有什么经验教训吗?
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2011-04-21
        • 1970-01-01
        • 1970-01-01
        • 2020-02-19
        • 2012-04-05
        • 1970-01-01
        • 1970-01-01
        • 2011-12-10
        • 1970-01-01
        相关资源
        最近更新 更多