我正在寻找有关在 c#.net 中将传入的 EDI 940 (X12) 转换为 (|) 管道分隔的平面文件的任何有用的链接或建议
2 回答
对于一次性翻译,我的技术可能看起来相当繁重,但这里是:
步骤#1:X12 ------------- [预解析程序] ---> X12 语法 XML
第 2 步:X12 语法 XML--> [940 Parsing XSLT] ------> 940 XML
第 3 步:940 XML --------> [Mapping XSLT] ----------> 你的 FF XML
第 4 步:你的 FF XML ----> [Serialising XLST] ------> 你的 FF
步骤#1:“X12 语法 XML”是一个非常简单的语法,只显示 X12 的 SYNTAX,因此【预解析程序】非常简单,可以用于任何 X12。
步骤#2:“940 XML”的语法完全明确了 940 的结构。[940 Parsing XSLT] 是表达 940 特定结构的地方。
第 3 步:[Mapping XSLT] 将 940 结构转换为您的 FF 的结构,用 XML 表示。
步骤#4:最后,[Serialising XLST] 根据其 XML 化版本创建您的 FF。
这种架构的主要优点是 (1) 开放性 - 主要部分在 XSLT 中,可以使用各种 XML/XLST 库使用任何编程语言执行,以及 (2) 可扩展性,最后,您可以转换任何格式转换成任何格式;-)
如果您可以在某处上传 940 消息的简单示例实例并将其翻译成您的 FF 结构 - 您应该使用记事本手动完成 ;-) - 我可能有时间来说明我的技术 - 至少给你 3 个 XLST 脚本需要;-)
将 EDI 消息转换为平面文件是一个坏主意,您可能会丢失数据和消息的含义。这就是EDI首先存在的原因
解析EDI的一些想法
http://www.codeproject.com/KB/XML/edix.aspx
http://www.edidev.com/index.htm
或者 Microsoft BizTalk 也有用于此的连接器