在此前的文章:《汽车行业EDI教程——北美X12标准 需求分析及方案》中,我们了解了汽车行业的常见EDI需求。在《AS2连接配置与实现》和《X12转换配置》中,我们了解了在AS2端口和X12端口需要进行的配置操作。
接下来我们开始学习汽车行业EDI中数据映射的实现方法,今天的课程重点是如何解读长期交付预测830规范及如何自定义830 XML,以适应企业业务系统的需求。
正式开始之前,我们先回顾长期交付预测830是什么?
EDI 830是ANSI X12国际标准报文规范中的长期交付预测(Planning Schedule)报文类型代码,用于在企业之间以电子方式传输预测和库存信息。830能让买方(通常是主机厂)提前向卖方(供应商)传达未来一段时间的预计需求,从而提高供应链响应速度,减少库存积压或短缺风险。与850采购订单不同,830侧重于传递预测性需求,适用于持续性供货的业务场景。
830报文中包含的内容包括:预测信息(预测编号、预测日期、预测时间范围等),产品信息(商品编号、描述、单位等),预测明细(按时间段划分的预测数量(如按周、按月)),运输信息(交货地点、运输方式等),其他条款(特殊要求或补充说明)
接下来,我们来看830的结构。在EDI项目开始前,我们一般会拿到主机厂的规范文件,在规范文件中会描述830报文结构及830中每个段、数据元的含义、要求等信息。在规范的开头会描述报文的结构,以T公司规范为例,我们一起来看下:
前面我们已经学习了X12报文是由一行一行的段组成的,结构描述这里就显示了830 X12报文所有的段,POS.No列是标识所有字段的序列号,没有实际含义我们可以忽略。Seg.ID列即Segment,表示段的名称,Req.Des列表示每个字段是否是必须的,M是Mandatory的缩写,表示必须存在;O是Optional的缩写,表示可选,可根据需要决定是否包含;Max.Use列是段出现的最大次数,Loop列表示段的层级,一个Loop中可以包含多个Segment。Notes and Comments列表示段对应的含义。
我们具体来看下这些段:
在830 X12报文中,头部ISA与尾部的IEA是成对出现的,标识一个Interchange 交换集,GS和GE是成对出现了,标识一个功能组。头部ISA与GS主要包含发送方EDI ID和接收方EDI ID,报文生成时间、报文版本号、控制编号、测试标识符等,不包含业务数据,我们在X12端口进行配置实现,不需要对其进行映射处理。ST与SE成对出现,标识一个交易集,其中包含着具体的业务数据。
我们来看业务数据都有哪些段组成, BFR是一个长期交付预测Header头部的开始,会包含交货计划类型、交货计划编号、版本号、计划类型标识符、客户订单日期、计划起始日期、计划终止日期等信息。
REF在数据交换中会引用一些重要的业务信息、根据不同的限定符区分,可能出现多次。
N1这里会包含N1、N3、N4,表示N1是个Loop组,组中有N1、N3、N4、三个段,根据不同的标识符,N1组也可以出现多次。
接下来,我们看到LIN也是一个Loop组,和Item也就是物料相关,并且Loop的Repeat >1,即可循环Loop,这表示报文中可包含多个物料。LIN组中会包含:LIN、UIT、PER、FSTLoop和SHPLoop,其中,FSTLoop的重复次数也是大于1的,因为FST Loop被包含在LIN Loop中,这表示FSTLoop和LINLoop是一对多的关系,也就是每个物料可拥有多个交货时间节点需求。比如右侧示例报文包含1行物料明细,有一段LIN。该LIN下有3行FST,表示该物料的3个交货时间节点需求。此外,LINLoop中包含的SHPLoop,表示已发货/已收货相关信息,该Loop的Repeat 最大为25,即该Loop最多可出现25次。从业务角度考虑,已发货/已收货信息通常与物料相关,一个物料一般只会存在一个已发货/已收货内容,所以我们在处理数据时,会将该Loop放在LIN Loop的同一层结构。
最后CTT也是Loop组,表示830报文一共传送了多少明细即LIN。示例中是1个LIN。
经过以上分析,我们可以得出830的三个层级结构,我们以这个830文件为例:
Header:即长期交付预测的主数据,通常一个报文只会出现一次,Header结构中包含的Segment有BFR、REF、LOOP – N1 (SF)、LOOP – N1 (ST)
Item:长期交付预测的物料层,和Header层存在一对多的关系,一个长期交付预测中会包含多种物料。Item结构中包含的Segment有 LIN、UIT、PER、SHP
Plan:交货计划层,和Item层存在一对多的关系,每种物料会有多个交货数量和交期。Plan结构中包含的Segment为FST。以上就是关于830 X12结构的分享了。
接下来我们进入到每个段,看看每个段中数据元的含义。
在830 X12头部中我们以BFR、REF举例进行了解,同前面结构一样,规范中会描述每个数据元的含义、是否必须、数据类型、字段长度、备注信息。
在BFR段中,BFR01 是 Transaction Set Purpose Code,交易目的编码,00表示Original,即原始交货计划,BFR02是 Forecast Order Number,预测订单号,BFR03 是 Release Number,版本号,BFR04是 Schedule Type Qualifier,是计划类型标识符,SH表示Ship Based,即基于发货日期的长期交付预测,这种类型通常表示供应商需要在特定日期将货物发出,以满足客户的交付要求。BFR05是 Schedule Quantity Qualifier,是计划数量类型标识符,A表示Actual Discrete Quantities,即实际发货数量,通常指每个时间点具体的计划发货数量;C表示Cumulative Quantities,即累积发货数量。BFR06 是 Customer Purchase Order Date,客户订单日期;BFR07 是 Date from FIRST occurrence,计划起始日期;BFR08是Date from LAST occurrence,计划终止日期。
在REF段中有两个数据元:REF01、REF02,REF01是限定符,值固定为DK,REF02则是与限定符对应的参考信息,具体来说,当REF01为DK时,REF02是Dock Number,即客户指定的装货码头编号。
在 X12 标准的 830 采购订单报文中,N1 会多次出现。实际上,N1 自身构成了一个 Loop 组,该 Loop 组用于详细描述交易中的不同参与方(Party)信息。
N1 Loop 组内包含 N1、N3、N4 三个段,每个段都承载着特定的信息:
- N1 段:主要记录参与方的名称和编号。
- N3 段:提供参与方的具体地址信息。
- N4 段:参与方所在的城市、省份、邮编以及国家等信息。
多个N1 Loop可以通过 N101 字段中不同的标识符,明确 N1 Loop 所代表的具体参与方类型。示例中标识符示例有两种:“SF” 代表发货方(Ship From Party),即货物的发送方;“ST” 代表收货方(Ship To),也就是货物的接收方。
接下来,我们看830 报文中的物料明细部分,以LIN段为例,LIN段包含三个数据元,即LIN01、LIN02、LIN03。其中LIN01是行号,示例中有1行数据,行号为00010。LIN02和LIN03通常成对出现,其中LIN02是限定符,备注中提供了BP作为可选值,表示采购商物料编号。当LIN02为BP时,LIN03传输与之对应的采购商物料编号。
同样的,UIT中包含一个数据元,即UIT0101,表示数量单位代码,备注中给了多个可选项,根据实际情况选择对应的单位代码即可。PER段包含四个数据元,PER01是限定符,固定为EX,表示联系人类型为Expeditor(催料员), 与之对应的是PER02 其中存储的是实际的催料员姓名。PER03也是限定符,固定值为 TE ,表示Telephone电话,与之对应的 PER04代表实际的催料员电话 。
接下来,我们来看830的需求计划部分,即FST段。FST段表示对未来不同日期的需求预测信息,包含四个数据元,FST01 表示预测数量,FST02是预测标识符,有两个备选值,Z / A ,Z是Back Log。A表示 Discrete Quantity。FST03用于定义预测的周期单位,此处为固定值W,表示Weekly ,即按周预测。FST04表示要求交货日期,日期类型为(CCYYMMDD)格式。
规范中其他段及段中数据元的含义大家可以参考以上讲解进行一一了解确认。然后设计自己自定义的XML文件,这里是根据示例中830规范,我们设置的830 自定义XML:
850 头部中的数据都放在
最后给大家分享一个我们实施团队的经验,在项目实施中,我们实施顾问会按照规范整理Excel Mapping表,表中会整理数据元名称、含义、是否必须、字段长度、可选项、注释。然后在Excel Mapping的右侧会对应整理自定义XML的结构及字段。这样方便顾问进行项目交付和运维团队后期的运维。当然Excel Mapping对于EDI项目实施来说不是必需的,大家可以根据实际情况决定是否整理。
以上就是我们对830长期交付预测报文结构和部分字段的讲解,大家可以根据自己的理解和本次视频的教学方法解读交易伙伴的830 规范,整理自定义XML文件,期间有任何问题可以联系我们咨询。
如果您希望了解有关EDI对接的相关信息,欢迎联系我们。
注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。