首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何读懂EDIFACT报文?

如何读懂EDIFACT报文?

原创
作者头像
知行软件EDI
发布2022-05-13 10:35:20
5180
发布2022-05-13 10:35:20
举报
文章被收录于专栏:EDI技术知识EDI技术知识

很多客户在进行EDI项目的时候,想要了解如何看懂EDIFACT报文中的数据,今天的文章就带大家学习EDIFACT报文的结构,以及如何才能获取到需要的数据。

首先,我们先来了解一下EDIFACT报文的结构,如下图所示:

edi
edi

一次EDI传输包含一段Interchange(必须有),Interchange中会包含一个或多个Functional Group(简称FG),FG段是否出现并不做强制要求,一个FG中可能会包含一个或多个Message。举例来说,如果需要在一次EDI传输中传送3个ORDERS采购订单,那么报文结构为一个Interchange下包含3个Message。

对报文结构有了基本的了解之后,我们再来看下如何从报文中获取数据。以下是一段示例的ORDERS采购订单报文,每一行开头由3个字符组成,叫做Segment节点,代表特定的业务含义,例如BGM代表报文的开始以及一些主信息,DTM代表时间信息,NAD代表实体信息(buyer、seller、bill-to等),RFF代表一些参考信息,LIN代表订单行物料信息,QTY代表数量等。

edi
edi

接下来,以LIN行为例,LIN表示Segment起始信息,+是数据元素Element分隔符(也可根据情况设置为其他符号),:是子元素Subelement分割符,’是段Segment分割符。再来看业务含义:001为订单行号,0000057G3454为物料号,BP是有固定含义的限定符Qualifier,限定该物料号为买方物料号,如果限定符为VP即为销售方物料号。类似的限定符还有QTY段的PCE,限定物料数量单位。

edi
edi

最后我们来详细地解析这一条ORDERS数据,假如我们要获取以下数据(只列举了部分信息段):

edi
edi

例如,我们要从报文中获取订单号以及订单日期,根据以上表格可以得知会出现在BGM以及DTM段,我们直接在报文中定位到该行,便可得知订单号为K12345、订单日期为19980626。其他的信息可以使用同样的方法获取,如下图:

edi
edi

以上就是基本的阅读EDIFACT报文以及获取业务数据的方法,虽然我们可以直接从EDIFACT报文中读取到数据,但相信大家可以感受到人工阅读EDIFACT报文,并从中提取数据是非常麻烦的。报文设计的初衷是为了方便计算机处理,不过直接阅读报文对于开发人员来说也是有意义的,可以用来对比收到的数据与原始数据是否一致。但对于ERP用户或者业务团队来说,很显然并不需要去读原始的EDIFACT报文,只需阅读EDI供应商解析后的数据。EDI在整个数据交换的流程中扮演的更多的是一个传输、翻译的角色。

知行之桥中的EDIFACT端口,可一步完成EDIFACT报文的解析或生成,方便将EDIFACT数据同步到不同的业务系统中,可点击EDIFACT端口查看EDIFACT端口详解。

文章中讲解的ORDERS报文只是EDIFACT标准中一种简单的类型,还有很多种结构不同的报文,大家可以利用今天讲解的方法尝试地去读懂其他的报文,如果有任何疑问,请联系我们。

更多EDI信息,请参阅: EDI是什么?

原文链接

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档