EDI 格式
Posted
技术标签:
【中文标题】EDI 格式【英文标题】:EDI Format 【发布时间】:2010-10-12 05:00:19 【问题描述】:我以前读过 XML 或 CSV,但我从未见过像 EDI 这样的东西。
如何读取此文件并获取我需要的数据?我看到了 ~、REF、N1、N2、N4 之类的东西,但不知道这些东西是什么意思。
我看过一些关于 x12 的东西,但不知道我有没有,我怎么知道?
--更新
感谢大家的快速回复。有谁知道我可以在.Net 中使用的解析器?从长远来看,我会将此 EDI 文件转换为 CSV 文件...
【问题讨论】:
X12 标准定义明确,需要查看规范。 【参考方案1】:EDI 代表“电子数据交换”。这种做法涉及使用计算机技术在称为“贸易伙伴”的两个组织之间以电子方式交换信息或数据。从技术上讲,EDI 是一组定义通用信息格式的标准,因此可以通过这种方式进行交换。
阅读更多:http://www.1edisource.com/learn-about-edi/what-is-edi#ixzz2g5E4p2ET
【讨论】:
【参考方案2】:EDI 只是一个包含某种层次结构的平面文件。通常公司购买 EDI 翻译软件来解析这些文件并提取数据,然后与其他系统集成。您也可以使用某种类型的服务,他们会为您做到这一点。您可以尝试使用 Amosoft EDI Serices (www.amosoft.com),他们可以帮助您。
【讨论】:
【参考方案3】:EDI 代表电子数据交换...
它本身并不是一种特定的格式。一般来说,它是一个平面文本数据文件,通常具有相关的已发布规范。例如:“位置 23-34 是作为货币价值的原价”
如果您没有相应的已定义规范,您真的无法对 EDI 文件做任何有用的事情。
一旦你得到规范,相信如何阅读文件就会很清楚了。
一般流程是: 1. 读取/解析 EDI 文件。 2. 对您需要的数据执行任何处理/转换。 3. 将其保存为您的本地系统格式(表格、其他平面文件等)。
很抱歉,我们无法告诉您更多信息。
【讨论】:
【参考方案4】:EDI 是一种分隔文件格式。您必须知道行分隔符和列分隔符(因为没有更好的答案)。例如,您可能会看到具有以下格式的 EDI 文件(来自 http://www.slik.co.nz/html_help/edi_file_format.htm):
HDR|6||||
DTL|1|ABC|xyz|123|1
DTL|13|ABC|animal|334|1
DTL|11|ABC|sfdk|432|2
DTL|12|ABC|wewdc|3|1
DTL|14|ABC|qwdx|416|4
第一行是标题,告诉您有六条记录。其他行是细节行。
X12 是 EDI 使用的一种标准。您将看到 X12 常用于医疗保健。如果你有 X12,你可以检查 X12 标准来弄清楚如何解析。
【讨论】:
未找到您的具体示例中的 URL。 差不多,但不完全。第一段 (ISA) 是固定宽度。【参考方案5】:这些是标准在此处管理的 ANSI X12 文件 http://www.wpc-edi.com/
结构简明教程
层次结构 = 循环 -> 段 -> 元素 -> 子元素。
循环由控制段或基于标准的逻辑限制。 段由段终止符分隔,默认情况下~ 元素由元素分隔符分隔,默认情况下 * 子元素由子元素分隔符分隔,默认情况下:
【讨论】:
【参考方案6】:EDI 消息由 X12 标准定义。
如果您寻找 X12 解析器,您可以找到有用的信息。
例如,http://code.activestate.com/recipes/299485/
【讨论】:
+1。绝对不要编写自己的 X12 解析器。并不是说它太难,只是重新创建之前已经完成和测试了很多次的工作会很疯狂。 并非所有 EDI 消息都是 X12 标准。 @Gregory A Beamer。您对替代方案有何建议? @S.Lott : X12 是北美的标准,Edifact 是欧洲的标准,XML 是拉丁美洲的标准。 Tradacoms 在英国仍然很流行。有大量基于 XML 的格式针对不同行业和世界不同地区(例如 ebXML、BASDA、RosettaNet)。过去我遇到过日本特有的标准——我想它们仍在使用中,许多其他国家可能也是如此。有很多。以上是关于EDI 格式的主要内容,如果未能解决你的问题,请参考以下文章