前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何读懂X12 报文

如何读懂X12 报文

原创
作者头像
知行软件EDI
发布2021-12-09 17:27:08
4690
发布2021-12-09 17:27:08
举报

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

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

edi
edi

一次EDI传输包含一段Interchange,Interchange中会包含一个或多个Functional Group(下文简称FG),FG 中会包含一个或多个Transaction。举例来说,如果需要在一次传输中传输3个850,以及4个846文件,那么就会有2个FG,在850的FG中会有3个Transaction,846的FG中有4个Transaction。

对报文结构有了基本的了解之后,我们再来看下如何从报文中获取数据。以下是一段示例的850报文,每一行开头(2-3个字符组成)叫做segment节点,代表了特定的业务含义,例如BEG代表报文的开始以及一些主信息,DTM代表时间信息,N1代表实体信息(ship-to、ship-from、bill-to等等)。

edi
edi

我们再进入到某一行来具体看一下,其中*是每个数据元素的分隔符(也可按照实际情况设置为其他符号,120是这一行的物料数量,它的位置是PO102,有一些代码代表了特殊的业务含义,例如EA本身在报文里面就代表了物料的单位,类似的还有PCS、KGM等,除此之外,还有一些不是单独出现的代码,我们把它叫做限定符,于限定右侧数据的含义,例如这个地方的VN,它的意义是限定右边的数据意义为供应商物料编码,我们一看到VN后面的一串数据就知道供应商物料编码为 AB3542。

edi
edi

了解了如何去阅读数据,我们再来详细地解析一下这一条850数据,假如我们要获取以下数据(该表格可由EDI文件规范中整理获取):

edi
edi

例如要获取订单号,那么我们就找到BEG这一行,从左向右数第三个数据元素即08292233294 就是我们要找的订单号,再比如我们需要找请求交付日期,按照规范我们需要找到DTM这一行,且条件是DTM01=002,取DTM这个元素,那么就是20101214这一串,就是要找的数据。以此类推,我们可以获取到报文中的关键信息,如下图:

edi
edi

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

知行之桥中的X12端口,可一步完成X12报文的解析或生成,方便将X12数据同步到不同的业务系统中,欢迎下载试用。

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

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

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

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

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

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