沃尔玛Walmart EDI 850订单详解

2022-08-12 14:00:35 浏览数 (2)

沃尔玛百货有限公司,是一家美国的世界性连锁企业,以营业额计算为全球最大的公司。连续 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 是什么?

阅读

0 人点赞