![edi](https://www.kasoftware.com/wp-content/uploads/2023/02/Kroger-EDI-8501.png)
本文着重讲述Kroger EDI项目中,Kroger发给供应商的X12 850 报文(采购订单)。
在此前的文章 如何读懂X12 中,我们对X12已经做了详细的解读,接下来让我们以 Kroger EDI项目中对X12 850采购订单的处理为例深入了解X12 850采购订单。
下图为Kroger 通过EDI发给供应商的原始的850 X12格式 及经过知行之桥 EDI 系统转换后的XML格式的结果对比图:
![edi](https://www.kasoftware.com/wp-content/uploads/2023/02/Kroger-EDI-8502.png)
Kroger X12 850 示例订单详解
Kroger通过EDI给供应商发送 标准的 X12 850 采购订单订单,示例如下:
ISA*00* *00* *08*925485US00 *ZZ*KELLUS *210727*2300*:*00501*100000005*0*T*>~
GS*PO*925485US00*KELLUS*20210727*2300*100000005*X*005010~
ST*850*0046~
-850:采购订单
-0046:交易集控制号
BEG*00*NE*900000012622**20210804~
-00:原始订单
-NE:采购订单类型代码
-900000012622:采购订单编号
-20210804:采购订单创建日期
PER*BD*Buyer Name*TE*933-516-8148~
-BD:买方联系人编码
-Buyer Name:买方联系人名称
-TE:买方联系人电话限定符
-933-516-8148:买方联系人电话
FOB*PP~
-PP:卖方预付运费
ITD*05*15*0.1234**7**10*****NET 10~
-05:付款条款类型代码:折扣不适用编码
-15:货物接收编码
-0.1234:条款折扣百分比
-7:折扣天数
-10:条款净天数
-NET 10:发票总额到期前的天数
DTM*064*20210816~
-064:最早交付时间限定符
-20210816:最早交付时间
DTM*063*20210816~
-063:最晚交付时间限定符
-20210816:最晚交付时间
TD5****T~
-T:最佳运输方式(托运人选项)
N9*PO*900000012622~
-PO:采购订单编号限定符
-900000012622:采购订单编号
MTX**bf79ca68-a52e-4542-b6a4-411a2b823711 1. SEND INVOICE TO ATTN ACCOUNTS PAYABLE.~
-bf79ca68-a52e-4542-b6a4-411a2b823711 1. SEND INVOICE TO ATTN ACCOUNTS PAYABLE.:描述用文本数据
MTX**2. NOTIFY OUR TRAFFIC MGR IF UNABLE TO MAKE DELIVERY. 3. SHOW PO. NO. ON INVOI~
-2. NOTIFY OUR TRAFFIC MGR IF UNABLE TO MAKE DELIVERY. 3. SHOW PO. NO. ON INVOI:描述用文本数据
MTX**CE AND ALL SHIPPING DOCUMENTS. 4. DELIVER BY APPOINTMENTS ONLY, CALL AT LEAST 2~
-CE AND ALL SHIPPING DOCUMENTS. 4. DELIVER BY APPOINTMENTS ONLY, CALL AT LEAST 2:描述用文本数据
MTX**4 HOURS IN ADVANCE.5. SUBJECT TO STANDARD KROGER P.O. CONDITIONS. ADDRESS CHAN~
-4 HOURS IN ADVANCE.5. SUBJECT TO STANDARD KROGER P.O. CONDITIONS. ADDRESS CHAN:描述用文本数据
MTX**GES - PLEASE SUBMIT VIA SUPPLIER HUB REPAYMENT REQUESTS AND/OR PAST DUE INVOICES~
-GES - PLEASE SUBMIT VIA SUPPLIER HUB REPAYMENT REQUESTS AND/OR PAST DUE INVOICES:描述用文本数据
MTX**- PLEASE VISIT LAVANTE PORTAL~
-- PLEASE VISIT LAVANTE PORTAL:描述用文本数据
N1*ST*DC90797 KROGER - Monroe*9*1178579681001~
-ST:收货方限定符
-DC90797 KROGER - Monroe:收货方名称
-9:收货方邓白氏编码限定符
-1178579681001:收货方邓白氏编码
N3*6266 Hamilton Lebanon Rd~
-6266 Hamilton Lebanon Rd:收货方地址
N4*Monroe*OH*45044*US~
-Monroe:收货方所在城市名称
-OH:收货方所在州或省编码
-45044:收货方邮政编码
-US:收货方国家编码
N1*BT**9*1178579680000~
-BT:付款方限定符
-9:付款方邓白氏编码限定符
-1178579680000:付款方邓白氏编码
N3*KROGER (KRG LLC) - RASC*P.O. BOX 305103~
-KROGER (KRG LLC) - RASC:付款方地址
-P.O. BOX 305103:付款方地址
N4*Nashville*TN*37230-5103*US~
-Nashville:付款方所在城市名称
-TN:付款方所在州或省编码
-37230-5103:付款方邮政编码
-US:付款方国家编码
N1*VN*Supplier Name - Live*92*425406~
-VN:供应商限定符
-Supplier Name - Live:供应商名称
-92:由买方或买方代理人指定的供应商限定符
-425406:供应商编号
PO1**24*EA*2.23**UP*073731004199*PI*100281448~
-24:数量
-EA:数量单位
-2.23:单价
-UP:订单识别编码限定符
-073731004199:订单识别编码
-PI:买方订单编码限定符
-100281448:买方订单编码
PID*F****ITEM1 DESCRIPTION 8CT 20 OZ~
-F:订单格式说明
-ITEM1 DESCRIPTION 8CT 20 OZ:物料描述
PO4*12~
-12:包装描述
SAC*A*B010******-0.18****02***100122~
-A:津贴
-B010:美分
--0.18:以指定货币面值表示的汇率
-02:发票外津贴/收费编码
-100122:发票外津贴/收费
PO1**22*EA*1.53**UP*073731003299*PI*100231854~
-22:数量
-EA:数量单位
-1.53:单价
-UP:订单识别编码限定符
-073731003299:订单识别编码
-PI:买方订单编码限定符
-100231854:买方订单编码
PID*F**** ITEM2 DESCRIPTION 24CT 16 OZ~
-F:订单格式说明
-ITEM2 DESCRIPTION 24CT 16 OZ:物料描述
PO4*22~
-22:包装描述
PO1**30*EA*3.56**UP*073731071099*PI*100431695~
-30:数量
-EA:数量单位
-3.56:单价
-UP:订单识别编码限定符
-073731071099:订单识别编码
-PI:买方订单编码限定符
-100431695:买方订单编码
PID*F**** ITEM3 DESCRIPTION 8CT 12 OZ~
-F:订单格式说明
-ITEM3 DESCRIPTION 8CT 12 OZ:物料描述
PO4*15~
-15:包装描述
SAC*A*B010******-0.1****02***628445~
-A:津贴
-B010:美分
--0.1:以指定货币面值表示的汇率
-02:发票外津贴/收费编码
-628445:发票外津贴/收费
CTT*3*76~
-3:行项目数
-76:指定数据值之和
AMT*TT*193.7~
-TT:交易总额编码
-193.7:货币金额
SE*36*0046~
GE*1*100000005~
IEA*1*100000005~
通过上述报文解读可以看到,Kroger发送的 X12 850 报文可读性较差,无论是企业的业务人员还是 IT 人员都很难从以上订单中直接获取到有效的业务信息。因此需要对此 X12 850 订单进行格式转换。本文将以转换为自定义的XML格式为例:
EDI 系统转换效果
利用知行之桥 EDI 系统可以将X12 850报文转换为可读性更强的XML 格式文件,以便进一步处理,转换效果如下:
<?xml version="1.0" encoding="UTF-8"?>
<EDI_850 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Version>1.0.0</Version>
<Mode>T</Mode>
<!-- 原始订单 -->
<TsetPurposeCode>00</TsetPurposeCode>
<!-- 采购订单类型代码-->
<POTypeCode>NE</POTypeCode>
<!-- 采购订单编号 -->
<PONumber>900000012622</PONumber>
<!-- 采购订单创建日期 -->
<PODate>20210804</PODate>
<Contact>
<!-- 买方联系人编码 -->
<ContactFunctionCode>BD</ContactFunctionCode>
<!-- 买方联系人名称 -->
<Name>Buyer Name</Name>
<!-- 买方联系人电话 -->
<TelephoneNumber>933-516-8148</TelephoneNumber>
</Contact>
<ShipmentTransportationInstructions>
<!-- 卖方预付运费 -->
<ShipmentMethodOfPayment>PP</ShipmentMethodOfPayment>
</ShipmentTransportationInstructions>
<TermsOfSaleOrDefferdTermsOfSale>
<!-- 付款条款类型代码:折扣不适用编码 -->
<TypeCode>05</TypeCode>
<!-- 货物接收编码 -->
<BasisDateCode>15</BasisDateCode>
<!-- 条款折扣百分比 -->
<DiscountPercent>0.1234</DiscountPercent>
<!-- 折扣天数 -->
<DiscountDaysDue>7</DiscountDaysDue>
<!-- 条款净天数 -->
<NetDays>10</NetDays>
<!-- 发票总额到期前的天数 -->
<Description>NET 10</Description>
</TermsOfSaleOrDefferdTermsOfSale>
<DoNotDeliverAfterDateTimeInfo>
<!-- 最早交付时间 -->
<Date>20210816</Date>
</DoNotDeliverAfterDateTimeInfo>
<DoNotDeliverBeforeDateTimeInfo>
<!-- 最晚交付时间 -->
<Date>20210816</Date>
</DoNotDeliverBeforeDateTimeInfo>
<CarrierDetails>
<!-- 最佳运输方式(托运人选项) -->
<TransportationTypeCode>T</TransportationTypeCode>
</CarrierDetails>
<PurchaseOrderNumber>
<!-- 采购订单编号 -->
<RefId>900000012622</RefId>
<Text>
<!-- 描述用文本数据 -->
<TextualData>bf79ca68-a52e-4542-b6a4-411a2b823711 1. SEND INVOICE TO ATTN ACCOUNTS PAYABLE.</TextualData>
</Text>
<Text>
<!-- 描述用文本数据 -->
<TextualData>2. NOTIFY OUR TRAFFIC MGR IF UNABLE TO MAKE DELIVERY. 3. SHOW PO. NO. ON INVOI</TextualData>
</Text>
<Text>
<!-- 描述用文本数据 -->
<TextualData>CE AND ALL SHIPPING DOCUMENTS. 4. DELIVER BY APPOINTMENTS ONLY, CALL AT LEAST 2</TextualData>
</Text>
<Text>
<!-- 描述用文本数据 -->
<TextualData>4 HOURS IN ADVANCE.5. SUBJECT TO STANDARD KROGER P.O. CONDITIONS. ADDRESS CHAN</TextualData>
</Text>
<Text>
<!-- 描述用文本数据 -->
<TextualData>GES - PLEASE SUBMIT VIA SUPPLIER HUB REPAYMENT REQUESTS AND/OR PAST DUE INVOICES</TextualData>
</Text>
<Text>
<!-- 描述用文本数据 -->
<TextualData>- PLEASE VISIT LAVANTE PORTAL</TextualData>
</Text>
</PurchaseOrderNumber>
<VendorInfo>
<!-- 供应商名称 -->
<Name>Supplier Name - Live</Name>
<!-- 供应商编号 -->
425406
</VendorInfo>
<ShipToInfo>
<!-- 收货方名称 -->
<Name>DC90797 KROGER - Monroe</Name>
<!-- 收货方邓白氏编码 -->
<DUNS4>1178579681001</DUNS4>
<AddressInfo>
<!-- 收货方地址 -->
<Address>6266 Hamilton Lebanon Rd</Address>
</AddressInfo>
<GeographicLocation>
<!-- 收货方所在城市名称 -->
<CityName>Monroe</CityName>
<!-- 收货方所在州或省编码 -->
<StateOrProvinceCode>OH</StateOrProvinceCode>
<!-- 收货方邮政编码 -->
<PostalCode>45044</PostalCode>
<!-- 收货方国家编码 -->
<CountryCode>US</CountryCode>
</GeographicLocation>
</ShipToInfo>
<BillToInfo>
<!-- 付款方邓白氏编码 -->
<DUNS4>1178579680000</DUNS4>
<AddressInfo>
<!-- 付款方地址 -->
<Address>KROGER (KRG LLC) - RASC</Address>
<!-- 付款方地址 -->
<Address2>P.O. BOX 305103</Address2>
</AddressInfo>
<GeographicLocation>
<!-- 付款方所在城市名称 -->
<CityName>Nashville</CityName>
<!-- 付款方所在州或省编码 -->
<StateOrProvinceCode>TN</StateOrProvinceCode>
<!-- 付款方邮政编码 -->
<PostalCode>37230-5103</PostalCode>
<!-- 付款方国家编码 -->
<CountryCode>US</CountryCode>
</GeographicLocation>
</BillToInfo>
<BaselineItem>
<!-- 数量 -->
<QuantityOrdered>24</QuantityOrdered>
<!-- 数量单位 -->
<UOM>EA</UOM>
<!-- 单价 -->
<UnitPrice>2.23</UnitPrice>
<!-- 订单识别编码 -->
<UPCConsumerPackageCode1551>073731004199</UPCConsumerPackageCode1551>
<!-- 买方订单编码 -->
<PurchaserItemCode>100281448</PurchaserItemCode>
<ProductDescription>
<!-- 订单格式说明 -->
<DescriptionType>F</DescriptionType>
<!-- 物料描述-->
<Description>ITEM1 DESCRIPTION 8CT 20 OZ</Description>
</ProductDescription>
<ItemPhysicalDetails>
<!-- 包装描述 -->
<PackQuantity>12</PackQuantity>
</ItemPhysicalDetails>
<ServicePromotionAllowanceOrChargeInfo>
<!-- 津贴 -->
<AllowanceOrChargeIndicator>A</AllowanceOrChargeIndicator>
<!-- 美分 -->
<ServicePromotionAllowanceChargeCode>B010</ServicePromotionAllowanceChargeCode>
<!-- 以指定货币面值表示的汇率 -->
<Rate>-0.18</Rate>
<!-- 发票外津贴/收费编码 -->
<AllowanceOrChargeMethodOfHandlingCode>02</AllowanceOrChargeMethodOfHandlingCode>
<!-- 发票外津贴/收费 -->
<Description>100122</Description>
</ServicePromotionAllowanceOrChargeInfo>
</BaselineItem>
<BaselineItem>
<!-- 数量 -->
<QuantityOrdered>22</QuantityOrdered>
<!-- 数量单位 -->
<UOM>EA</UOM>
<!-- 单价 -->
<UnitPrice>1.53</UnitPrice>
<!-- 订单识别编码 -->
<UPCConsumerPackageCode1551>073731003299</UPCConsumerPackageCode1551>
<!-- 买方订单编码 -->
<PurchaserItemCode>100231854</PurchaserItemCode>
<ProductDescription>
<!-- 订单格式说明 -->
<DescriptionType>F</DescriptionType>
<!-- 物料描述 -->
<Description> ITEM2 DESCRIPTION 24CT 16 OZ</Description>
</ProductDescription>
<ItemPhysicalDetails>
<!-- 包装描述 -->
<PackQuantity>22</PackQuantity>
</ItemPhysicalDetails>
</BaselineItem>
<BaselineItem>
<!-- 数量 -->
<QuantityOrdered>30</QuantityOrdered>
<!-- 数量单位 -->
<UOM>EA</UOM>
<!-- 单价 -->
<UnitPrice>3.56</UnitPrice>
<!-- 订单识别编码 -->
<UPCConsumerPackageCode1551>073731071099</UPCConsumerPackageCode1551>
<!-- 买方订单编码 -->
<PurchaserItemCode>100431695</PurchaserItemCode>
<ProductDescription>
<!-- 订单格式说明 -->
<DescriptionType>F</DescriptionType>
<!-- 物料描述 -->
<Description> ITEM3 DESCRIPTION 8CT 12 OZ</Description>
</ProductDescription>
<ItemPhysicalDetails>
<!-- 包装描述 -->
<PackQuantity>15</PackQuantity>
</ItemPhysicalDetails>
<ServicePromotionAllowanceOrChargeInfo>
<!-- 津贴 -->
<AllowanceOrChargeIndicator>A</AllowanceOrChargeIndicator>
<!-- 美分 -->
<ServicePromotionAllowanceChargeCode>B010</ServicePromotionAllowanceChargeCode>
<!-- 以指定货币面值表示的汇率 -->
<Rate>-0.1</Rate>
<!-- 发票外津贴/收费编码 -->
<AllowanceOrChargeMethodOfHandlingCode>02</AllowanceOrChargeMethodOfHandlingCode>
<!-- 发票外津贴/收费 -->
<Description>628445</Description>
</ServicePromotionAllowanceOrChargeInfo>
</BaselineItem>
</EDI_850>
如下,经知行之桥 EDI 系统转换之后的 XML 文件清晰显示了每个字段的业务含义,这样的文件可读性更强,并且更方便进行下一步数据处理,比如集成业务系统。
工作流示例
通过上述的讲解想必大家已经了解了 Kroger X12 850 采购订单在知行之桥 EDI 系统中的转换流程了,以下是上述工作流示例,您可以下载知行之桥EDI系统,导入【示例工作流】以及【Kroger_850_Sample】,进行实战操作。
下载 Kroger 850 工作流以及测试文件
在知行之桥 EDI 系统中导入上述工作流以及测试文件。
如下图所示:
①先点击右上角的工作区齿轮图标,选择创建工作区,命名为Kroger_850(可自定义)。
![edi](https://www.kasoftware.com/wp-content/uploads/2023/02/Kroger-EDI-8503.png)
②然后选择导入工作区,导入示例工作流:Kroger_850.arcflow。
![edi](https://www.kasoftware.com/wp-content/uploads/2023/02/Kroger-EDI-8504.png)
导入示例工作流后,在工作区可以看到示例,其中包含两个功能端口:
Kroger_X12ToXML端口:是一个X12端口,将原始X12 850转换为标准的XML文件;
Kroger_Mapping850:XML Map端口,沟通设置字段映射关系,将Kroger_X12ToXML端口输出的标准的XML文件转换为自定义XML文件。
③点开Kroger_X12ToXML端口,进入输入页面,在 更多里点击上传文件,上传示例文件:Kroger_850_Sample.x12。
![edi](https://www.kasoftware.com/wp-content/uploads/2023/02/Kroger-EDI-8505.png)
④点开Kroger_Mapping850端口,进入输出页面 ,点击 Kroger_850_Sample_100000005.xml 文件名即可下载文件,看到转换后的结果。
![edi](https://www.kasoftware.com/wp-content/uploads/2023/02/Kroger-EDI-8506.png)
以上是对接收 Kroger X12 850 采购订单报文的解读以及转换的详细介绍,了解更多 Kroger 的 EDI 报文信息,欢迎联系知行软件。
更多 EDI 信息,请参阅: EDI 是什么?