目录
沃尔玛百货有限公司,是一家美国的世界性连锁企业,以营业额计算为全球最大的公司。连续 7 年在美国《财富》杂志世界 500 强企业中居首位。沃尔玛公司有 8500 家门店,分布于全球 15 个国家。沃尔玛在美国 50 个州和波多黎各运营。
本文将对符合 X12 报文标准的 850 订单进行解读,并将其转换为更易处理的 XML 格式文件。
在此前的文章 如何读懂X12 中,我们对X12已经做了详细的解读,接下来让我们以 Wayfair EDI项目中对EDI 850订单的处理为基础,开始深入了解850订单。
下图为沃尔玛 Walmart EDI X12 850 示例报文转换前以及经知行之桥 EDI 系统转换后的效果对比图:
注意1:下列括号内内容为上面字段不同业务场景的替换:
例:CURBYUSD – BY = 买方编码 – USD = 收货方货币编码 (CAD表示:加拿大货币编码;MAX表示:墨西哥货币编码) (此处的CAD与MAX便是不同业务场景下的CUR02)
注意2:括号内部分结束后带有“…”部分的,说明并非全部释义,详情可至Walmart对应规范查看或联系知行软件。
示例报文如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | ISA*00* *00* *08*925485US00 *ZZ*KELLUS *210727*2300*:*00501*100000005*0*T*> GS*PO*925485US00*KELLUS*20210727*2300*100000005*X*005010 ST*850*0001 - 850 = 采购订单编码 - 0001 = 交易集控制号 BEG*00*SA*9705910015**20170113 - 00 = 表示原始订单 (22订单信息副本:表示将该订单发送除供应商以外的其他人;38用于标识该订单为赠品) - SA = 独立订单编码 (BE表示空白订单/估计数量编码:用于制造或生产货物; RL表示发货单或送货单编码:用于根据预先存在的合同或总订单发出货物和服务订单) - 9705910015 = 采购订单编号 - 20170113 = 采购订单日期 CUR*BY*USD - BY = 买方编码 - USD = 收货方货币编码 (CAD表示:加拿大货币编码;MAX表示:墨西哥货币编码) REF*19*18 - 19 = 沃尔玛部门编号限定符 (AN表示相关的采购订单:用于与采购订单一起发货;AO表示预约号:用于包含沃尔玛指定的预约号;...) - 18 = 沃尔玛部门编号 FOB*CC*OR*EAST GREENWICH RI - CC = 付款方式编码 (PP表示预付:由卖方支付编码) - OR = 目的地限定符(收货地) (DE表示起点:发货点限定符) - EAST GREENWICH RI =目的地名称 SAC*A*C000***112500*6*.5*****02 - A = 指定服务的津贴编码 (C表示:指定服务的津贴编码) - C000 = 有缺陷的津贴编码 (B872表示:海关关税编码;C310表示:折扣编码;D240表示:运费编码...) - 112500 = 货币金额 - 6 = 津贴/收费百分比限定符 - .5 = 津贴/收费百分比 - 02 = 表示脱离发票编码,津贴和收费的金额将反映在交易总额中,发票总金额=商品价格+费用-津贴/收费。 (01表示回单编码:用于表示津贴/收费的金额将作为一个单独的产品来裁定,即借记/贷记备忘录或单独的发票; 03表示供应商给客户的发票编码:供应商将直接向零售商的客户开出一张发票用于支付津贴/收费的金额; 04表示贷记客户账户编码:零售商的账户将被记入津贴/费用的金额) ITD*08*15*2**40**55 - 08 = 提供基本折扣编码 (02表示:月末,用于确定支付条款编码;05表示:折扣不适用编码) - 15 = 收到货物编码 (3表示发票日期编码;7表示有效日期编码) - 2 = 条款折扣百分比 - 40 = 折扣到期天数 - 55 = 距发票总金额折扣到期的天数 DTM*001*20170530 - 001 = 截止日期未发货则取消订单限定符 (002表示要求送货时间限定符:只用于在美国杂货店订单中发送; 007表示条款有效时间限定符:只用于当条款基础日期代码(ITD02)中包含一个7的时候使用;...) - 20170530 = 截止日期未发货则取消订单 TD5*O****SAIA - O = 原产地承运人编码 - SAIA = 原产地承运人 N9*L1*SPECIAL INSTRUCTIONS - L1 = 特别说明限定符 - SPECIAL INSTRUCTIONS =特别说明 MTX**NO PRETICKET - NO PRETICKET = 用于传输大量包含产品描述/特殊交货说明的文本数据 N1*BY*WAL-MART STORES*UL*0078742034157 - BY = 购买方名称编码 (BT表示:给沃尔玛的账单编码...) - WAL-MART STORES = 购买方名称 - UL = 13位的全球位置编码(GLN)限定符 - 0078742034157 = 13位的全球位置编码 N3*1100 NORTH IRIS STREET - 1100 NORTH IRIS STREET = 购买方地址信息 N4*MOUNT PLEASANT*IA*52641 - MOUNT PLEASANT = 购买方城市名称 - IA = 购买方州/省编码 - 52641 = 购买方邮政编码 PO1*001*2000*EA*150**IN*002677881*UP*022108955228*VN*55555*UK*00022108955228 - 001 = 沃尔玛指定的采购订单行号描述 - 2000 = 数量 - EA = 数量单位为个 (CA表示数量单位为箱) -150 = 单价 - IN =买方产品编号限定符 (UA表示:U.P.C./EAN箱码(2-5-5)限定符;P8表示:零售价格查询号码(PLU)限定符;IZ表示:购买方尺寸编码限定符...) - 002677881 = 买方产品编号 - UP = 12位的全球贸易编码限定符(GTIN) - 022108955228 = 12位的全球贸易编码 - VN = 供应商的产品编号限定符 - 55555 = 供应商的产品编号 - UK = 14位的GS1编码限定符 - 00022108955228 = 14位的GS1编码 PO4*12 - 12 = 内箱的数量。如果没有内箱,则为外箱的数量。 SAC*A*E740***486*6*5*****02 - A = 表示指定服务的津贴编码 (C表示:表示指定服务的收费编码) - E740 = 新商店的津贴编码 (F800表示:促销津贴编码) - 486 = 货币金额 - 6 = 津贴/收费百分比限定符 - 5 = 津贴/收费百分比 - 02 = 表示脱离发票编码,津贴和收费的金额将反映在交易总额中,发票总金额=商品价格+费用-津贴/收费。 (01表示回单编码:用于表示津贴/收费的金额将作为一个单独的产品来裁定,即借记/贷记备忘录或单独的发票; 03表示供应商给客户的发票编码:供应商将直接向零售商的客户开出一张发票用于支付津贴/收费的金额; 04表示贷记客户账户编码:零售商的账户将被记入津贴/费用的金额) N9*ST*0078742010359 - ST = 沃尔玛商店位置编码限定符 (L1 表示特殊说明) - 0078742010359 = 商店编码 MTX**PRODUCT DESC LACE HOODIE SUB/FINE/SEASON 0/9867/0417 - PRODUCT DESC LACE HOODIE SUB/FINE/SEASON 0/9867/0417 = 用于传输大量包含产品描述/特殊交货说明的文本数据 SLN*0001**I*216*EA****IN*001719653*UP*022108955228*VN*GT47*BO*BLUE*IZ*LARGE*UK*00022108955228 - 0001 = 产品子明细行号 - I = 表示与实体之间的关系编码 - 216 = 数量限定符 - EA = 数量单位为个 - IN = 购买方产品编号限定符 - 001719653 = 购买方产品编号 - UP = 12位的全球贸易编码限定符(GTIN) - 022108955228 = 12位的全球贸易编码 - VN = 供应商的产品编号限定符 - GT47 = 供应商的产品编号 - BO = 购买方产品颜色限定符 - BLUE = 购买方产品颜色 - IZ = 购买方尺寸编码限定符 - LARGE = 购买方尺寸编码 - UK = 14位的GS1编码限定符 - 00022108955228 = 14位的GS1编码 AMT*1*3898.8 - 1 = 货币金额限定符 - 3898.8 = 货币金额 CTT*1 - 1 = 交易集中存在的PO1段的数量 AMT*GV*11.66 - GV = 总金额限定符 - 11.66 = 总金额 SE*25*0001 - 25 = 一个交易组中包括的段数总数 - 0001 = 交易集控制号 GE*1*100000005 IEA*1*100000005 |
通过上述报文解读可以看到,我们接收到的 X12 850 报文可读性较差,无论是企业的业务人员还是 IT 人员都很难从以上订单中直接获取到有效的业务信息。因此需要对此 850 订单进行格式转换。
利用知行之桥 EDI 系统可以将其转换为可读性更强的目标 XML 格式文件,以便于进一步处理,转换效果如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
1100 NORTH IRIS STREET
|
可以看到,经 EDI 系统转换之后的目标 XML 文件中,我们将业务数据与业务字段联系起来,这样的文件可读性更强,并且更方便进行下一步数据处理。
通过上述的讲解想必大家已经了解了 Walmart 850 订单在知行之桥 EDI 系统中的转换流程了,以下是上述工作流示例,您可以下载知行之桥EDI系统,导入【示例工作流】以及【Walmart_850_Test】,进行实战操作。 在知行之桥 EDI 系统中导入上述工作流以及测试文件。
如下图所示:
①先点击右上角的工作区齿轮图标,选择创建工作区,命名为Test_Walmart。
②然后选择导入工作区,选择Test_Walmart.arcflow。(无需填写密码)
③点开Walmart_850_X12ToXML端口,点击上方 输入 ,在 更多里点击上传文件,上传Walmart_850_Test.x12。
④点开Walmart_850_XMLMap端口,点击上方 输出 ,点击 Walmart_850_Test_100000005.xml 即可下载文件,看到转换后的结果。
以下端口是上述工作流的核心要素:
X12 端口:接收 X12 报文时, X12 端口会验证 X12 交互头部并将 X12 报文转换为 XML 。这是一个非常有用的准备步骤,因为 XML 是知行之桥用于处理工作流中数据的主要格式。X12 端口自动读取输入文件以确定与报文相匹配的 X12 模式,然后根据该模式解析报文。
XML Map 端口:将数据从一种 XML 格式转换为另一种XML格式,提供便捷的后端兼容性。
在知行之桥 EDI 系统中,实现上述转换,使用了两个端口: X12 以及 XML Map 即实现了将850订单由 X12 格式转换为目标 XML 格式。
以上是对接收 Walmart 850 订单报文的解读以及转换的详细介绍,了解更多 Walmart 的 EDI 报文信息,欢迎联系知行软件。
更多 EDI 信息,请参阅: EDI 是什么?