我被要求处理来自SFTP服务器的X12文档,该服务器将具有多个GS/ST段。因此,我决定将逻辑应用程序与企业集成包一起使用。我以前处理过平面文件,但此解决方案将要求我使用X12。因此,我开始将模式添加到协议中,但协议中说"找不到模式"。根据这条消息,我认为它不允许我使用我上传的平面文件模式。除了如何上传、更新和删除模式文件外,我找不到任何关于这方面的文档。协议应该使用什么模式格式?它们在任何地方都有售吗?
文件"format"必须匹配。我"相信"它验证了所使用的标头信息和/或字符集。它们应该与BizTalk附带的X12相匹配。如果您需要进行自定义版本,例如修改字段以允许更大的字符串大小或更改段的顺序,请执行以下操作:
- 制作原始X12架构的副本
- 将其重命名为唯一,例如将X12_00401_940.xsd更改为X12_00401_640_Custom.xsd
- 根据需要自定义字段/分段
密钥是文件和标头信息中使用的字符集。一定要保存这些。
您应该首先将这些模式上传到您的Integration Account中。在将架构添加到协议之前。
X12协议只能识别BizTalk附带的架构。Logic应用程序的协议不会识别"自制"模式。
我最终找到了可以获取BizTalk架构的位置。以下是你可以做的:
如何安装EDI架构文件
我做的是
- 创建Windows 2016虚拟机
- 安装VS 2013
- 安装BizTalk 2013 R2评估版
- 从C:\Program Files(x86)\Microsoft BizTalk Server 2013复制文件R2\XSD_Schema\EDI\MicrosoftEdiXSD模板到本地计算机
- 在我的计算机上运行可执行文件
仅供参考:从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架构具有额外的属性。他们有:
- targetNamespace="http://schemas.microsoft.com/BizTalk/EDI/X12/2006">
- xmlns:btsedi="http://schemas.microsoft.com/BizTalk/2005/EdiSchemaEditorExtension">
还需要注意的是,编辑器将创建第一个元素作为Root,我相信X12想要一个格式非常特定的名称:X12_{veriosn}_{TransactionSet}。此外,X12是UTF-8,而编辑器创建了UTF-16。
我是BizTalk及其以VS2015为中心的必要世界观的新手。有一个Azure模板几乎包含所有BizTalk项:
BizTalk Server 2016开发人员
- SQL服务器
- BizTalk Server
- Visual Studio 2015
- BizTalk SDK(不包括EDI架构)
架构位于MicrosoftEdiXSDTemplates.zip(包括X12)文件中的Microsoft Azure BizTalk Services SDK安装程序中。
请注意,Microsoft打开了这些架构的源代码,但由于它们不是开源的,因此不得不删除X12架构。