沃尔玛百货有限公司,是一家美国的世界性连锁企业,以营业额计算为全球最大的公司。连续 7 年在美国《财富》杂志世界 500 强企业中居首位。沃尔玛公司有 8500 家门店,分布于全球 15 个国家。沃尔玛在美国 50 个州和波多黎各运营。
本文将对符合 X12 报文标准的 850 订单进行解读,并将其转换为更易处理的 XML 格式文件。
在此前的文章 如何读懂X12 中,我们对X12已经做了详细的解读,接下来让我们以 Wayfair EDI项目中对EDI 850订单的处理为基础,开始深入了解850订单。
下图为沃尔玛 Walmart EDI X12 850 示例报文转换前以及经知行之桥 EDI 系统转换后的效果对比图:
沃尔玛 Walmart X12 850 示例订单详解
注意1:下列括号内内容为上面字段不同业务场景的替换:
例:CURBYUSD – BY = 买方编码 – USD = 收货方货币编码 (CAD表示:加拿大货币编码;MAX表示:墨西哥货币编码) (此处的CAD与MAX便是不同业务场景下的CUR02)
注意2:括号内部分结束后带有“…”部分的,说明并非全部释义,详情可至Walmart对应规范查看或联系知行软件。
示例报文如下:
代码语言:javascript复制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 系统转换效果
利用知行之桥 EDI 系统可以将其转换为可读性更强的目标 XML 格式文件,以便于进一步处理,转换效果如下:
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8"?>
<EDI_850 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Version>0.0.3</Version>
<Mode>T</Mode>
<!-- 表示原始订单 -->
<TsetPurposeCode>00</TsetPurposeCode>
<!-- 独立订单编码 -->
<POTypeCode>SA</POTypeCode>
<!-- 采购订单编号 -->
<PONumber>9705910015</PONumber>
<!-- 采购订单日期 -->
<PODate>20170113</PODate>
<CurrencySpecification>
<!-- 收货方货币编码 -->
<CurrencyCode>USD</CurrencyCode>
</CurrencySpecification>
<Reference>
<!-- 沃尔玛部门编号 -->
<DivisionIdentifier>18</DivisionIdentifier></Reference>
<ShipmentTransportationInstructions>
<!-- 付款方式编码 -->
<ShipmentMethodOfPayment>CC</ShipmentMethodOfPayment>
<!-- 目的地限定符 -->
<LocationQualifier>OR</LocationQualifier>
<!-- 目的地名称 -->
<Description>EAST GREENWICH RI</Description>
</ShipmentTransportationInstructions>
<ServicePromotionAllowanceOrChargeInfo>
<!-- 指定服务的津贴编码 -->
<AllowanceOrChargeIndicator>A</AllowanceOrChargeIndicator>
<!-- 货币金额 -->
<Amount>112500</Amount>
<!-- 津贴/收费百分比 -->
<Percent>.5</Percent>
<!-- 表示脱离发票编码,津贴和收费的金额将反映在交易总额中,发票总金额=商品价格 费用-津贴/收费。 -->
<AllowanceOrChargeMethodOfHandlingCode>02</AllowanceOrChargeMethodOfHandlingCode>
</ServicePromotionAllowanceOrChargeInfo>
<TermsOfSaleOrDefferdTermsOfSale>
<!-- 提供基本折扣编码 -->
<TypeCode>08</TypeCode>
<!-- 收到货物编码 -->
<BasisDateCode>15</BasisDateCode>
<!-- 条款折扣百分比 -->
<DiscountPercent>2</DiscountPercent>
<!-- 折扣到期天数 -->
<DiscountDaysDue>40</DiscountDaysDue>
<!-- 距发票总额折扣到期的天数 -->
<NetDays>55</NetDays>
</TermsOfSaleOrDefferdTermsOfSale>
<CancelAfterDateTimeInfo>
<!-- 截止日期未发货则取消订单 -->
<Date>20170530</Date>
</CancelAfterDateTimeInfo>
<ProductDescription></ProductDescription>
<CarrierDetails>
<!-- 原产地承运人 -->
<Routing>SAIA</Routing>
</CarrierDetails>
<LettersOrNotes>
<!-- 特别说明 -->
<RefId>SPECIAL INSTRUCTIONS </RefId>
<Text>
<!-- 用于传输大量包含产品描述/特殊交货说明的文本数据 -->
<TextualData>NO PRETICKET</TextualData>
</Text>
</LettersOrNotes>
<BuyingPartyInfo>
<!-- 购买方名称 -->
<Name>WAL-MART STORES</Name>
<!-- 13位的全球位置编码 -->
<GLN>0078742034157</GLN>
<AddressInfo>
<!-- 购买方地址信息 -->
<Address>1100 NORTH IRIS STREET</Address>
</AddressInfo>
<GeographicLocation>
<!-- 购买方城市名称 -->
<CityName>MOUNT PLEASANT</CityName>
<!-- 购买方州/省编码 -->
<StateOrProvinceCode>IA</StateOrProvinceCode>
<!-- 购买方邮政编码 -->
<PostalCode>52641</PostalCode>
</GeographicLocation>
</BuyingPartyInfo>
<BaselineItem>
<!-- 沃尔玛指定的采购订单行号描述 -->
<POLineNumber>001</POLineNumber>
<!-- 数量 -->
<QuantityOrdered>2000</QuantityOrdered>
<!-- 数量单位为个 -->
<UOM>EA</UOM>
<!-- 单价 -->
<UnitPrice>150</UnitPrice>
<!-- 买方产品编号 -->
<BuyerItemNumber>002677881</BuyerItemNumber>
<!-- 12位的全球贸易编码 -->
<UPCConsumerPackageCode12>022108955228</UPCConsumerPackageCode12>
<!-- 供应商的产品编号 -->
<VendorItemNumber>55555</VendorItemNumber>
<!-- 14位的GS1编码 -->
<EANShippingContainerCode>00022108955228</EANShippingContainerCode>
<ItemPhysicalDetails>
<!-- 内箱的数量。如果没有内箱,则为外箱的数量。 -->
<PackQuantity>12</PackQuantity>
</ItemPhysicalDetails>
<ServicePromotionAllowanceOrChargeInfo>
<!-- 表示指定服务的津贴编码 -->
<AllowanceOrChargeIndicator>A</AllowanceOrChargeIndicator>
<!-- 新商店的津贴编码 -->
<ServicePromotionAllowanceChargeCode>E740</ServicePromotionAllowanceChargeCode>
<!-- 货币金额 -->
<Amount>486</Amount>
<!-- 津贴/收费百分比 -->
<Percent>5</Percent>
<!-- 表示脱离发票编码,津贴和收费的金额将反映在交易总额中,发票总金额=商品价格 费用-津贴/收费。 -->
<AllowanceOrChargeMethodOfHandlingCode>02</AllowanceOrChargeMethodOfHandlingCode>
</ServicePromotionAllowanceOrChargeInfo>
<SublineItemDetail>
<!-- 产品子明细行号 -->
<SublineNumber>0001</SublineNumber>
<!-- 数量限定符 -->
<Quantity>216</Quantity>
<!-- 购买方产品编号 -->
<BuyerItemNumber>001719653</BuyerItemNumber>
<!-- 12位的全球贸易编码 -->
<UPCConsumerPackageCode12>022108955228</UPCConsumerPackageCode12>
<!-- 供应商的产品编号 -->
<VendorItemNumber>GT47</VendorItemNumber>
<!-- 购买方产品颜色 -->
<BuyersColor>BLUE</BuyersColor>
<!-- 购买方尺寸编码 -->
<BuyersSizeCode>LARGE</BuyersSizeCode>
<!-- 14位的GS1编码 -->
<EANShippingContainerCode>00022108955228</EANShippingContainerCode></SublineItemDetail>
<MonetaryAmountInfo>
<!-- 货币金额 -->
<LineItemTotalMonetaryAmount>3898.8</LineItemTotalMonetaryAmount></MonetaryAmountInfo>
</BaselineItem>
<MonetaryAmountInfo>
<!-- 总金额 -->
<GrossValue>11.66</GrossValue></MonetaryAmountInfo>
</EDI_850>
可以看到,经 EDI 系统转换之后的目标 XML 文件中,我们将业务数据与业务字段联系起来,这样的文件可读性更强,并且更方便进行下一步数据处理。
工作流示例
通过上述的讲解想必大家已经了解了 Walmart 850 订单在知行之桥 EDI 系统中的转换流程了,以下是上述工作流示例,您可以下载知行之桥EDI系统,导入【示例工作流】以及【Walmart_850_Test】,进行实战操作。 在知行之桥 EDI 系统中导入上述工作流以及测试文件。
下载示例工作流以及 EDI 850测试文件
如下图所示:
①先点击右上角的工作区齿轮图标,选择创建工作区,命名为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 是什么?
阅读