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 格式的主要内容,如果未能解决你的问题,请参考以下文章

EDI 格式

为啥仍然使用EDI,如何处理?

用 C# 解析 EDI 平面文件?

EDI RFC IDOC

SAP 中IDOC是啥

EDI必备手册