[Share] EDIFACT 简介

EDIFACT

EDIFACT,又名UN/EDIFACT(全称为United Nations/Electronic Data Interchange For Administration, Commerce and Transport)。是由联合国主导开发制定的国际通用EDI标准。

1987年,由于联合国和US/ANSI语法提案相融合,UN/EDIFACT语法规则被国际标准化组织批准为ISO标准,即ISO 9735。

EDIFACT标准为我们提供了:

  • 一套语法规则来组织数据
  • 一套互动交流协议(I-EDI)
  • 一套允许多国和多行业,进行商业电子文件交换的标准消息

举例说明

下列是一个EDIFACT消息的实例,是航空公司返回的航班查询结果。

UNA这个段落是可选的(O)。如果存在,它指定的特殊字符要被用于解释消息的剩余部分。以下是这六个特殊字符:

  • 成分(Component)数据元分隔符(上例中为:
  • 元素(Element)分隔符(上例中为+
  • 小数点(Decimal notification)(上例中为.
  • 转义字符(Release Character)(上例子中为?
  • 保留,必须是一个空格
  • 段(Segment)结束符(上例中为

上例中UNA段(Segment)的这些特殊字符是默认值。

在一个消息段(Segment)内,成分(Component)数据元分隔符和元素(Element)分隔符是数据元素的“第一层”和“第二层”分隔符。(以下为方便起见下文使用‘+’和‘ : ’代替)。用‘+’分离顶层元素(Element)或复合数据元素(Element),并且用‘ : ’分离嵌套在复合数据元素的第二层数据元素。尾部为空的数据元素(Element)及其之前的分隔符会被省略,用以减少消息的尺寸。

小数点(Decimal Notification)用于将整数从非整数中分离出来。

在正文中如果使用到被当做分隔符或者段结束符的字符,就需要在这些字符之前添加转义字符(Release Character)。类似于正则表达式中的 \ 的用法。

段(Segment)结束符表示一个消息段的结束。

注:在上例中,每部分都加了换行,旨在方便阅读。在EDI数据中,一般不需要换行符,用以减少消息尺寸。

UNH+1+PAORES:93:1:IA’ – 这是消息头部,是每条信息所需要的开始部分。这段代码特指消息的名称和版本。此例中版本是PAORES ver 93.1,它是由组织执行机构(IATA)规定的。

IFT+3+NO MORE FLIGHTS’ – 这是一个段(Segment)。它的名称是“Interactive Free Text(IFT,互动自由文本)”,其内容包含一段简单的文字:“没有航班(NO MORE FLIGHTS)”。

UNT+13+1′ – 这是消息尾部的段(Segment)。它表示着所发送的消息共有13个段(Segment)。

结构

从上面的例子可以看出,EDIFACT数据为层级嵌套结构。其中顶层被称为Interchange,其下层为多个消息(Message)组成的复合消息体。这些消息由多个段(Segment)组成。在段(Segment)之下是元素(Element),其是从联合国数据元目录(UNTDID)衍生出的并被加入到了EDIFACT标准中的。

一个组(Group)或一个段(Segment)可以是强制性的(M)或条件性的(C),且可被重复。如下:

  • C99 表示一个组(Group)或一个段(Segment)可以出现0到99次
  • M99 标志一个组(Group)或一个段(Segment)必须出现1次,但最多出现99次

一个消息(Message),是由段(Segment)序列或组(Group)序列组成的。一般的,在一个组(Group)内的第一个段(Segment)或组(Group)必须是强制性(M)的。另外,除非实际逻辑所要求,组(Group)序列一般都是条件性(C)的。

参考文献

EDIFACT@wikipedia EDIFACT@百度百科

本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用。

电话 150-0298-3180 / 177-8250-8152 或邮件 edi@kasoftware.cn 联系我们,获取 30 天全功能 免费试用 版本。
文章分类 share 知识分享