我以前见过XML,但从来没有见过像EDI这样的东西。
如何读取此文件并获取所需的数据?我看到了~,REF,N1,N2,N4之类的东西,但我不知道这些东西是什么意思。
我正在寻找示例和文档。我在哪里可以找到它们?
我找到的EDI指南说它是基于“ANSI ASC X12/ Version4010”的。我应该搜索表单X12吗?
请帮帮忙。
发布于 2009-09-16 05:03:08
哇,倒叙。已经超过16年了.
原则上,每一行都是一个“段”,而标识符是行的开头是一个段标识符。每个段都包含“元素”,这些元素本质上是位置字段。它们由“元素分隔符”分隔。
不同的段意味着不同的东西,并且可以表示循环构造、重复等。
您需要获得用于基本解析的标准的当前版本,然后需要数据字典来描述您正在处理的文档的内容,然后您可能需要行业概要、实现指南或类似的工具来处理环境中特定文档类型的约定。
例如?不是最新的,但我相信你可以用你选择的搜索引擎找到一大堆。一旦您完成了基本的段/元素解析,您就可以处理应用程序级数据,我不知道一般的示例对您有多大帮助。
发布于 2009-10-22 18:01:58
这些其他答案中有几个非常好。我会试着填写一些他们没有提到的东西。
EDI是一组标准,其中最常见的是:
在states)
中流行的ANSI ANSI X12
听起来您使用的是X12版本4010。这是使用最广泛的版本(至少在我的经验中)。有很多很多不同的版本。
该文件或正确的“交换”由段和元素(有时还有子元素)组成。每个段都以两个或三个单词的标识符(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)和to (1122334455)。这一次,它们使用不同的标识符,这是合法的,因为您可能会代表其他人接收交换(例如,如果您是中介)。您还可以再次看到版本号,这次是尾随"0“(0004030)。使用有效数字逻辑去掉前导零。为什么这里有一个额外的零,而ISA中没有?我不知道。最后,这个GS段也有它自己的标识符128。
这就是信封的开头。在此之后,将有一个以ST开头的文档循环。在本例中,它们都是POs,其代码为(850),因此该行将以ST:850:blablabla开头
信封内容以引用GS标识符(128)的GE段结束,因此您知道哪个段正在关闭。然后是IEA,它同样关闭了ISA。
GE:1:128~ IEA:1:000032123~
这是对结构的概述以及如何阅读它。要理解它,你需要一本参考书或软件,这样你才能理解代码、大量的时间和大量的实践。祝你好运,如果你有更具体的问题,可以再发一次。
发布于 2009-09-16 15:16:41
EDI是一种结构化文本文件的文件格式,被许多大型组织和公司用于标准数据库交换。它往往比XML短得多,而XML在数据包必须很小的时候非常好。许多组织仍然在使用它,因为许多大型机系统使用EDI而不是XML。
使用EDI消息,您需要处理与特定格式匹配的文本消息。这类似于XML模式,但是EDI实际上并没有标准化的模式语言。EDI消息本身不是真正的人类可读的,而大多数规范也不是真正的机器可读的。这基本上是XML的优点,其中XML和它的模式都可以由人和机器读取。
当您通过一些客户端软件(而不是基于浏览器)进行电子银行时,您的系统上可能已经有多个EDI文件。与XML相比,银行仍然更喜欢EDI来发送交易数据,尽管许多银行也使用自己的自定义基于文本的格式。
要了解EDI,您必须首先了解数据,以及您想要遵循的EDI标准。
https://stackoverflow.com/questions/1430941
复制相似问题