如何理解EDI文件?

时间:2009-09-16 04:28:30

标签: parsing edi

之前我见过XML,但我从未见过像EDI这样的内容。

如何阅读此文件并获取我需要的数据?我看到像〜,REF,N1,N2,N4这样的东西,但不知道这些东西是什么意思。

我正在寻找示例和文档。 我在哪里可以找到它们?

ASLO EDI指南我发现它基于“ANSI ASC X12 / ver.4010”。 我应该搜索X12表格吗?

请帮助。

4 个答案:

答案 0 :(得分:76)

其他几个答案非常好。我会尝试填写一些他们没有提到过的东西。

EDI是一组标准,其中最常见的是:

  • ANSI X12(在各州流行)
  • EDIFACT(欧洲流行)

听起来你正在看X12版本4010.这是最广泛使用的(根据我的经验,无论如何)版本。有很多很多不同的版本。

文件或正确的“交换”由段和元素(以及somtimes子元素)组成。每个段以两个或三个字的标识符(ISA,GS,ST,N1,REF)开头。

所有文件的结构以信封开头和结尾。信封通常由ISA段和GS段组成。每个文件可以有多个GS段,但每个文件只应该有一个ISA段(注意应该,不是每个人都遵守规则)。

ISA是一个特殊的细分市场。尽管所有其他段都是分隔的,因此可以具有不同的长度,但ISA段具有固定的宽度。这是因为它告诉你如何阅读文件的其余部分。

从ISA段的最后三个字符开始。这些将告诉您元素定界符,子元素定界符和段定界符。这是一个ISA线的例子。

ISA:00 :: 00 :: 01:1515151515:01:5151515151:041201:1217:U:00403:000032123:0:P:*〜

在这种情况下,“:”是元素分隔符,“*”是子元素分隔符,“〜”是分段分隔符。如果您只是想在每个段分隔符(〜)之后查看文件以放置换行符,则会容易得多。

ISA还会告诉您文档来自哪里,版本是什么(00403,也称为4030),以及交换控制号(0000321233)。在这个阶段,其他的东西对你来说可能并不重要。

本文件来自发件人“01:1515151515”和发件人“01:5151515151”。那么“01:”是什么?嗯,这引入了EDI中的一个重要概念,即限定符。有几个元素有限定符,它们告诉你下一个元素是什么类型的数据。在这种情况下,01应该是Dunn和Bradstreet数。对于电话号码,ISA05和ISA07元素的其他限定符为12,对于“用户定义”,则为ZZ。您将在EDI细分市场中找到限定符的概念。一个不错的经验法则是,如果它是两个字符,那么它就是一个限定符。为了了解所有限定符的含义,您需要一份标准指南(来自EDI标准组织的硬拷贝或某些软件)。

下一行是GS。这是一个功能组(一种在交换中将文档组合在一起的方法。)例如,您可以在ISA中拥有多个采购订单和多个功能确认。这些应放在不同的功能组(GS段)中。您可以通过查看第一个GS01元素来确定GS段中的文档类型。

GS:PO:9988776655:1122334455:20041201:1217:128:X:004030

除了文档类型,您还可以再次看到from(9988776655)和(1122334455)。这次他们使用不同的标识符,这是合法的,因为您可能代表其他人接收交换(例如,如果您是中间人)。您还可以再次查看版本号,这次是尾随“0”(0004030)。使用有效数字逻辑去除前导零。为什么这里有额外的零而不是ISA?我不知道。最后,这个GS段也有它自己的标识符,128。

这就是信封的开头。之后会有一个以ST开头的文档循环。在这种情况下,它们都是PO,它们有一个代码(850),因此该行将从ST开始:850:blablabla

信封内容以GE段结尾,该段引用GS标识符(128),因此您知道哪个段正在关闭。然后是一个IEA,同样关闭了ISA。

GE:1:128〜 IEA:1:000032123〜

这是结构的概述以及如何阅读它。要了解它,你需要一本参考书或软件,这样你才能理解代码,很多很多时间,以及大量的练习。祝你好运,如果你有更具体的问题,可以再次发帖。

答案 1 :(得分:28)

哇,闪回。已经十六年了......

原则上,每一行都是“段”,而标识符是行的开头是段标识符。每个段包含“元素”,它们基本上是位置字段。它们由“元素分隔符”分隔。

不同的段意味着不同的东西,并且可以指示循环结构,重复等。

您需要获取基本解析的当前版本标准,然后您需要数据字典来描述您正在处理的文档的内容,然后您可能需要行业概况,实施指南或类似于处理环境中特定文档类型的约定。

实施例?不是最新的,但我相信你可以找到一大堆使用您选择的搜索引擎。完成基本的段/元素解析后,您将处理应用程序级别的数据,而我不知道一般示例会对您有多大帮助。

答案 2 :(得分:6)

EDI是结构化文本文件的文件格式,许多大型组织和公司都使用它来进行标准数据库交换。它往往比XML短得多,而XML在数据包必须很小时曾经很好。许多组织仍然使用它,因为许多大型机系统使用EDI而不是XML。

使用EDI消息,您将处理与特定格式匹配的短信。这与XML模式类似,但EDI实际上并没有标准化的模式语言。 EDI消息本身并不是人类可读的,而大多数规范实际上并不是机器可读的。这基本上是XML的优势,其中XML和它的模式都可以被人和机器读取。

当您通过某些客户端软件(而非基于浏览器)进行电子银行业务时,您可能已经在系统上安装了多个EDI文件。银行仍然倾向于使用EDI而不是XML来发送交易数据,尽管许多人也使用他们自己的基于文本的自定义格式。

要了解EDI,您必须先了解数据,再加上您想要遵循的EDI标准。

答案 3 :(得分:1)

假设数据流以“ISA”开头,则在开头应该有一个“~ST *”部分,后跟三个数字。如果您可以发布这三个数字,我可能会为您提供更多信息。此外,了解行业会有所帮助。例如,医疗保健使用270,271,276,277和其他一些。