[Share] 如何快速读懂贸易伙伴提供的EDI规范?

在和贸易合作伙伴做EDI连接的时候,传输的数据大多都是EDI报文,这样就会使用到EDI系统的报文翻译模块功能。有些同学考虑到成本问题,可能会选择自己来做报文翻译,所以,本次小知课堂,小知要给大家讲一讲,如何自己来做报文翻译?

做报文翻译之前,首先要明确,是通过使用知行EDI系统的报文翻译功能模块来实现,还是想要公司的IT同学使用开发语言来实现。两种方式都有各自的优缺点:

使用EDI系统的报文翻译功能模块

  • 专为处理EDI报文设计,功能全面
  • 需要对系统工作流有了解
  • 需要学会系统的使用

IT使用开发语言实现

  • 开发周期长
  • 可能存在功能限制
  • 生成的EDI报文一旦出错不易定位问题
  • 代码维护成本高

不过,无论是采用哪一种方式,开始要进行的步骤都是一样的,需要对贸易伙伴提供的EDI规范作深入了解!

如何看规范

报文翻译是基于EDI规范的,在EDI规范中,会给出报文中节点位置和业务数据的对应关系,例如在850报文中,PO1节点的第一个位置表示订单行号,第二个位置表示采购订单编号等。所以在做报文翻译的时候,一定要参考EDI规范。那么,从EDI规范中,我们能获取到哪些信息呢?

我们以一个X12标准的850采购订单规范为例:

第一步:先看报文结构

一般,在一个EDI规范的前几页,会有这个EDI报文的结构图,如下图所示:

edi edi

在这个结构图中,我们可以看出,整个850 EDI报文大约分为五部分,分别是Not Defined,Heading,Detail,Summary,Not Defined。 其中,第一个和最后一个的Not Defined,这是EDI报文的信封部分,每个X12标准的EDI报文都会有,和业务数据没什么关系。然后是Heading部分,这部分表示850采购订单EDI报文的头部数据信息,也就是一个850采购订单中只会出现一次的数据,例如采购订单编号,采购订单日期等等。接下来是Detail部分,也就是明细部分,表示在一个850报文中会多次重复出现的数据,例如物料信息,数量信息等等。最后就是Summary部分了,这部分是对850报文的总结。

第二步:看节点信息

我们这里说的节点,就是图中的Id,每个节点都表示不同的业务数据信息,我们可以参考Segment Name,来确认这个节点表示什么含义。例如,BEG,是一个采购订单的起始节点,REF,表示参考信息;PER,表示管理员联系信息;CSH表示销售要求信息等等。

另外,还需注意,在有些节点上面,存在LOOP ID,一个LOOP ID里面包括了多个Id,这就是说,一个Loop中是一组节点,这些节点出现时,是成组出现的,在一组Loop中,Loop ID的节点是必须的,我们以LOOP ID-N1举例,在这组Loop中,包括了N1,N2,N3,N4四种节点,但是,因为Loop ID是N1,所以,在这组Loop出现时,N1节点是必不可少的,如果这组Loop没有N1,那么这个报文就是一个错误的报文,不符合EDI报文结构。

第三步:看节点是否必要以及出现次数要求

接下来我们就需要针对单一节点和Loop节点,看在一个850采购订单EDI报文中,各自都会出现多少次,每个节点或Loop是否是必要的。

关于节点或Loop是否必要,也就是这个节点是否一定会出现,我们需要看req列,req就是requirement的缩写,一般情况下会有以下几种可能:

  • M,Mandatory,强制的,也就是说这个节点或Loop一定会出现
  • O,Optional,可选的,也就是这个节点或Loop可以出现,也可以不出现
  • C,Conditional,有条件的,也就是这个节点或Loop在某种业务场景下必须出现
  • R,Required,有要求的,也就是要求这个节点或Loop一定要出现

注:有些被标记为Optional的节点,在实际业务中,可能是必填项;需在做端到端集成测试时,注意小细节。

关于节点或Loop是否会重复,我们需要看Max use列和Repeat列。Max use表示节点的最大出现次数,Repeat表示Loop最多会重复出现几次。

梳理映射关系

在将EDI报文结构确认好之后,我们接下来需要继续参考EDI规范,获取到EDI报文和实际业务数据之间的对应关系,并将其整理成为一个文档。

在EDI规范中,会针对每个节点,给出其所代表的详细的业务含义。

我们接着以850规范为例:

BEG节点:

edi

以上我们可以看出,BEG节点中的第一个字段 – BEG01,表示850采购订单目的代码,字段长度要求2位,可以看到,在这个规范中,这个代码是固定值00,表示原始采购订单。接下来BEG02,表示采购订单类型编码,字段长度要求2位,也是固定值,DS,也就是直供,BEG03是采购订单编号,字段长度要求最少1位,最多22位,而BEG04是采购订单日期,字段长度要求8位,并且日期格式要求为CCYYMMDD,例如20200221。

这样子全篇看下来,我们就能够整理出一个映射关系文档,我们称之为mapping,以下是小知整理出来的一个850采购订单mapping示例:

edi

映射关系梳理完成之后,就可以着手进行报文翻译了。 如果想要使用知行EDI系统进行报文翻译,可以参考如何通过知行EDI系统进行报文翻译

了解更多EDI讯息,请您电话 150-0298-3180 / 177-8250-8152 或邮件 edi@kasoftware.cn 联系我们,获取 30 天全功能 免费试用 版本EDI软件。
标签: , , , ,
文章分类 edi 电子数据交换, share 知识分享, 动态

发表评论

电子邮件地址不会被公开。

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">