首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何理解EDI文件?

如何理解EDI文件?
EN

Stack Overflow用户
提问于 2009-09-16 04:28:30
回答 4查看 54.6K关注 0票数 34

我以前见过XML,但从来没有见过像EDI这样的东西。

如何读取此文件并获取所需的数据?我看到了~,REF,N1,N2,N4之类的东西,但我不知道这些东西是什么意思。

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

我找到的EDI指南说它是基于“ANSI ASC X12/ Version4010”的。我应该搜索表单X12吗?

请帮帮忙。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-16 05:03:08

哇,倒叙。已经超过16年了.

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

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

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

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

票数 30
EN

Stack Overflow用户

发布于 2009-10-22 18:01:58

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

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

在states)

  • EDIFACT (在欧洲流行)

中流行的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~

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

票数 85
EN

Stack Overflow用户

发布于 2009-09-16 15:16:41

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

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

当您通过一些客户端软件(而不是基于浏览器)进行电子银行时,您的系统上可能已经有多个EDI文件。与XML相比,银行仍然更喜欢EDI来发送交易数据,尽管许多银行也使用自己的自定义基于文本的格式。

要了解EDI,您必须首先了解数据,以及您想要遵循的EDI标准。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1430941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档