OTP 850订单详解

2022-09-26 16:13:55 浏览数 (2)

本文将以OTP项目为依托,对符合 X12 报文标准的 OTP 850 订单进行解读,并将其转换为更易处理的 XML 格式文件。

在此前的文章如何读懂 X12 中,我们对 X12 已经做了详细的解读,接下来开始深入了解 850 订单。

下图为 OTP EDI X12 850 示例报文转换前以及经知行之桥 EDI 系统转换后的效果对比图:

OTP X12 850 示例订单详解

OTP会给供应商发送 符合X12 国际标准的 EDI 850 订单,示例如下:

代码语言:javascript复制
ISA*00*          *00*          *12*1234567890     *ZZ*GENERIC        *160726*1505*U*00401*850002059*0*T*>
GS*PC*1234567890*GENERIC*20160726*1505*850002059*X*004010
ST*850*0001

BEG*00*BY*999262*ReleaseNumber*20160721*12345678
- 00 = 默认值
- BY:买方
- 999262 = 采购订单编号
- ReleaseNumber = 版本号
- 20160721 = 采购订单日期
- 12345678 = 供应商识别号
 
CUR*LZ*USD*VN*USD
- LZ = 当地连锁店
- USD = 美元
- VN = 供应商
- USD = 美元
 
REF*VN*VN123456*description
- VN = 供应商订单号限定符
- VN123456 = 供应商订单号
- description = 补充描述

REF*DP*DP123456*description
- DP = 部门编号限定符
- DP123456 = 部门编号
- description = 补充描述

REF*ZZ*ZZ123456*description
- ZZ = 买方名称限定符
- ZZ123456 = 买方名称
- description = 补充描述

REF*6P*6P123456*description
- 6P = 集团编号限定符
- 6P123456 = 集团编号
- description = 补充描述

REF*DB*Note1
- DB = 文本限定符
- Note1 = 文本信息

REF*7N*Note2
- 7N = 文本限定符
- Note2 = 文本信息

REF*7O*Note3
- 7O = 文本限定符
- Note3 = 文本信息

FOB*PP*PrepaidMessage*PrepaidNote
- PP = 预付模式
- PrepaidMessage = 预付信息
- PrepaidNote = 预付注释

FOB*CF*FullFreightAllowanceMessage*Note
- CF = 全额运费补贴模式
- FullFreightAllowanceMessage = 全额运费补贴
- Note = 全额运费补贴注释
 
SAC*A*A260*ZZ*98al*100**13%
- A = 津贴标识
- A260 = 广告津贴限定符
- ZZ = 默认字符
- 98al = 广告津贴编码
- 100 = 广告津贴数目
- 13% = 广告津贴百分比

SAC*C*A010*ZZ*98ch*100**3%
- C = 收费标识
- A010 = 最低收费限定符
- ZZ = 默认字符
- 98ch = 最低收费编码
- 100 = 最低收费数目
- 3% = 最低收费百分比

ITD***6%*20220302*31*20220402*for sale
- 6% = 定期折扣百分比
- 20220302 = 折扣到期日
- 31 =  折扣天数
- 20220402 =  销售条款到期日
- for sale =  销售条款描述

DTM*010*20221002
- 010 = 要求的发货日期限定符
- 20221002 = 要求的发货日期

DTM*037*20220930
- 037 = 发货不能早于限定符
- 20220930 = 发货日期不能早于20220930
 
DTM*038*20221010
- 038 = 发货不能晚于限定符
- 20221010 = 发货日期不能晚于

DTM*063*20221031
- 063 = 交付不能晚于限定符
- 20221031 = 交付日期不能晚于

DTM*064*20221025
- 064 = 交付不能早于限定符
- 20221025 = 交付日期不能早于

TD5***6547**shipmentdec
- 6547 = 常规运输路线
- shipmentdec = 运输路线描述
 
N1*ST*OTP RETAIL*92*0091
- ST = 发货限定符
- OTP RETAIL = 发货地名称
- 92 = 由买方指定
- 0091 = 发货地编码

N3*CHANGAN street*No.098
- CHANGAN street = 发货方地址信息1
- No.098 = 发货方地址信息2

N4*XIAN*YONGING*710111*CN
- XIAN = 发货地城市
- YONGING = 发货地址
- 710111 = 发货地邮编
- CN = 发货地国家编码

N1*BT*billto*92*0034
- BT = 付款方限定符
- billto = 付款方名称
- 92 = 由买方指定
- 0034 = 付款方编码

N3*wujiang street*No.011
- wujiang street = 付款方地址信息1
- No.011 = 付款方地址信息2

N4*Suzhou*shizi*215000*CN
- Suzhou = 付款方城市
- shizi = 付款方地址
- 215000 = 付款方邮编
- CN = 付款方国家编码

N1*VN*vender*92*0025
- VN = 供应商限定符
- vender = 供应商名称
- 92 = 由买方指定
- 0025 = 发货地编码

N3*longhua street*No.099
- longhua street = 供应商地址信息1
- No.099 = 供应商地址信息2

N4*Haikou*haian*571000*CN
- Haikou = 供应商城市
- haian= 供应商地址
- 571000  = 供应商邮编
- CN = 供应商国家编码

明细信息:

PO1**144*EA*7.6**VN*123456000201*SK*00012345*UP*990*ZZ*VENDOR-STYLE-123*CG*34
- 144 = 订购数量
- EA = 测量单位
- 7.6 = 单价
- VN = 供应商物料编号限定符
- 123456000201 = 供应商物料编号
- SK = 产品标识符(SKU)
- 00012345 = 产品编号(SKU)
- UP = 产品标识符(UCC-12)
- 990 = 产品编号(UCC-12)
- ZZ = 产品描述标识符
- VENDOR-STYLE-123 = 产品描述
- CG = 内包装数量标识符
- 34 = 内包装数量
 
SAC*A*A260*ZZ*98al*100**13%
- A = 津贴标识符
- A260 = 广告津贴限定符
- ZZ = 默认值
- 98al = 广告津贴编码
- 100 = 广告津贴数目
- 13% = 广告津贴比例

SAC*C*A010*ZZ*98ch*100**3%
- C = 收费限定符
- A010 = 最低收费限定符
- ZZ = 默认字符
- 98ch = 最低收费编码
- 100 = 最低收费数目
- 3% = 最低收费百分比

CTP**RTL*23
- RTL = 零售价格限定符
- 23 = 零售价格

SDQ*EA*92*XIAN*123*CHENGDU*345
- EA= 测量单位编码
- 92 = 由买方或者买方联系人制定
- XIAN= ID
- 123 = 数量
- CHENGDU = ID
- 345 = 数量

DTM*002*20221002
- 002 = 要求交付时间限定符
- 20221002 = 要求交付时间

CTT*1
- 1 = 物料号数量

SE*40*0001
 
GE*1*850002059
IEA*1*850002059

通过上述报文解读可以看到,我们接收到的 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>
  <!--采购订单编号-->
  <PONumber>999262</PONumber>
  <!--版本号-->
  <ReleaseNumber>ReleaseNumber</ReleaseNumber>
  <!--采购订单日期-->
  <PODate>20160721</PODate>
  <!--供应商识别号-->
  <ContractNumber>12345678</ContractNumber>
  <CurrencySpecification>
    <!--当地连锁店货币代码-->
    <LZCurrencyCode>USD</LZCurrencyCode>
    <!--供应商货币代码-->
    <VNCurrencyCode>USD</VNCurrencyCode>
  </CurrencySpecification>
  <!--供应商订单号-->
  <VendorOrderNumber>VN123456</VendorOrderNumber>
  <VendorOrderNumberDescription>description</VendorOrderNumberDescription>
  <!--部门编号-->
  <DepartmentNumber>DP123456</DepartmentNumber>
  <DepartmentNumberDescription>description</DepartmentNumberDescription>
  <!--买方名称-->
  <MutuallyDefined>ZZ123456</MutuallyDefined>
  <MutuallyDefinedDescription>description</MutuallyDefinedDescription>
  <!--集团编号-->
  <GroupNumber>6P123456</GroupNumber>
  <GroupNumberDescription>description</GroupNumberDescription>
  <!--文本信息1-->
  <BuyerDebitMemoDescription>Note1</BuyerDebitMemoDescription>
  <!--文本信息2-->
  <PiggybackDescription>Note2</PiggybackDescription>
  <!--文本信息3-->
  <TriplebackDescription>Note3</TriplebackDescription>
  <ShipmentTransportationInstructions>
    <!--预付模式-->
    <ShipmentMethodOfPayment>PP</ShipmentMethodOfPayment>
    <!--预付信息-->
    <LocationQualifier>PrepaidMessage</LocationQualifier>
    <!--预付注释-->
    <Description>PrepaidNote</Description>
  </ShipmentTransportationInstructions>
  <ShipmentTransportationInstructions>
    <!--全额运费补贴模式-->
    <ShipmentMethodOfPayment>CF</ShipmentMethodOfPayment>
    <!--全额运费补贴-->
    <LocationQualifier>FullFreightAllowanceMessage</LocationQualifier>
    <!--全额运费补贴注释-->
    <Description>Note</Description>
  </ShipmentTransportationInstructions>
  <ServicePromotionAllowanceOrChargeInfo>
    <!--津贴标识-->
    <AllowanceOrChargeIndicator>A</AllowanceOrChargeIndicator>
    <!--广告津贴限定符-->
    <ServicePromotionAllowanceChargeCode>A260</ServicePromotionAllowanceChargeCode>
    <!--广告津贴编码-->
    <AgencyServicePromotionAllowanceChargeCode>98al</AgencyServicePromotionAllowanceChargeCode>
    <!--广告津贴数目-->
    <Amount>100</Amount>
    <!--广告津贴百分比限定符-->
    <AllowanceOrChargePercentQualifier></AllowanceOrChargePercentQualifier>
    <!--广告津贴百分比-->
    <Percent>13%</Percent>
    <Description></Description>
  </ServicePromotionAllowanceOrChargeInfo>
  <ServicePromotionAllowanceOrChargeInfo>
    <!--收费标识-->
    <AllowanceOrChargeIndicator>C</AllowanceOrChargeIndicator>
    <!--最低收费限定符-->
    <ServicePromotionAllowanceChargeCode>A010</ServicePromotionAllowanceChargeCode>
    <!--最低收费编码-->
    <AgencyServicePromotionAllowanceChargeCode>98ch</AgencyServicePromotionAllowanceChargeCode>
    <!--最低收费数目-->
    <Amount>100</Amount>
    <!--最低收费百分比限定符-->
    <AllowanceOrChargePercentQualifier></AllowanceOrChargePercentQualifier>
    <!--最低收费百分比-->
    <Percent>3%</Percent>
    <Description></Description>
  </ServicePromotionAllowanceOrChargeInfo>
  <TermsOfSaleOrDefferdTermsOfSale>
    <!--定期折扣百分比-->
    <DiscountPercent>6%</DiscountPercent>
    <!--折扣到期日-->
    <DiscountDueDate>20220302</DiscountDueDate>
    <!--折扣天数-->
    <DiscountDaysDue>31</DiscountDaysDue>
    <!--销售条款到期日-->
    <NetDueDate>20220402</NetDueDate>
    <!--销售条款描述-->
    <Description>for sale</Description>
  </TermsOfSaleOrDefferdTermsOfSale>
  <RequestedShipDateTimeInfo>
    <!--要求的发货日期-->
    <Date>20221002</Date>
  </RequestedShipDateTimeInfo>
  <ShipNotBeforeDateTimeInfo>
    <!--发货日期不能早于-->
    <Date>20220930</Date>
  </ShipNotBeforeDateTimeInfo>
  <ShipNotAfterDateTimeInfo>
    <!--发货日期不能晚于-->
    <Date>20221010</Date>
  </ShipNotAfterDateTimeInfo>
  <DoNotDeliverAfterDateTimeInfo>
    <!--交付日期不能晚于-->
    <Date>20221031</Date>
  </DoNotDeliverAfterDateTimeInfo>
  <DoNotDeliverBeforeDateTimeInfo>
    <!--交付日期不能早于-->
    <Date>20221025</Date>
  </DoNotDeliverBeforeDateTimeInfo>
  <CarrierDetails>
    <!--常规运输路线-->
    <IdentificationCode>6547</IdentificationCode>
    <!--运输路线描述-->
    <Routing>shipmentdec</Routing>
  </CarrierDetails>
  <ShipToInfo>
    <!--发货地名称-->
    <Name>OTP RETAIL</Name>
    <!--发货地编码-->
    <CodeAssignedByBuyerOrAgentId>0091</CodeAssignedByBuyerOrAgentId>
    <AddressInfo>
      <!--发货方地址信息1-->
      <Address>CHANGAN street</Address>
      <!--发货方地址信息2-->
      <Address2>No.098</Address2>
    </AddressInfo>
    <GeographicLocation>
      <!--发货地城市-->
      <CityName>XIAN</CityName>
      <!--发货地址-->
      <StateOrProvinceCode>YONGING</StateOrProvinceCode>
      <!--发货地邮编-->
      <PostalCode>710111</PostalCode>
      <!--发货地国家编码-->
      <CountryCode>CN</CountryCode>
    </GeographicLocation>
  </ShipToInfo>
  <BillToInfo>
    <!--付款方名称-->
    <Name>billto</Name>
    <!--付款方编码-->
    <CodeAssignedByBuyerOrAgentId>0034</CodeAssignedByBuyerOrAgentId>
    <AddressInfo>
      <!--付款方地址信息1-->
      <Address>wujiang street</Address>
      <!--付款方地址信息2-->
      <Address2>No.011</Address2>
    </AddressInfo>
    <GeographicLocation>
      <!--付款方城市-->
      <CityName>Suzhou</CityName>
      <!--付款方地址-->
      <StateOrProvinceCode>shizi</StateOrProvinceCode>
      <!--付款方邮编-->
      <PostalCode>215000</PostalCode>
      <!--付款方国家编码-->
      <CountryCode>CN</CountryCode>
    </GeographicLocation>
  </BillToInfo>
  <VendorInfo>
    <!--供应商名称-->
    <Name>vender</Name>
    <!--发货地编码-->
    <CodeAssignedByBuyerOrAgentId>0025</CodeAssignedByBuyerOrAgentId>
    <AddressInfo>
      <!--供应商地址信息1-->
      <Address>longhua street</Address>
      <!--供应商地址信息2-->
      <Address2>No.099</Address2>
    </AddressInfo>
    <GeographicLocation>
      <!--供应商城市-->
      <CityName>Haikou</CityName>
      <!--供应商地址-->
      <StateOrProvinceCode>haian</StateOrProvinceCode>
      <!--供应商邮编-->
      <PostalCode>571000</PostalCode>
      <!--供应商国家编码-->
      <CountryCode>CN</CountryCode>
    </GeographicLocation>
  </VendorInfo>
  <BaselineItem>
    <!--订购数量-->
    <QuantityOrdered>144</QuantityOrdered>
    <!--测量单位-->
    <UOM>EA</UOM>
    <!--单价-->
    <UnitPrice>7.6</UnitPrice>
    <!--供应商物料编号-->
    <VendorItemNumber>123456000201</VendorItemNumber>
    <!--产品标识符(SKU)-->
    <SKU>00012345</SKU>
    <!--产品编号(UCC-12)-->
    <UPCConsumerPackageCode12>990</UPCConsumerPackageCode12>
    <!--产品描述-->
    <MutuallyDefinedNumber>VENDOR-STYLE-123</MutuallyDefinedNumber>
    <!--内包装数量-->
    <CommodityGrouping>34</CommodityGrouping>
    <PriceInfo>
      <!--零售价格-->
      <UnitPrice>23</UnitPrice>
    </PriceInfo>
    <DestinationQuantity>
      <!--ID-->
      <IdentificationCode1>XIAN</IdentificationCode1>
      <!--数量-->
      <Quantity1>123</Quantity1>
      <!--ID-->
      <IdentificationCode2>CHENGDU</IdentificationCode2>
      <!--数量-->
      <Quantity2>345</Quantity2>
      <IdentificationCode3></IdentificationCode3>
      <Quantity3></Quantity3>
      <IdentificationCode4></IdentificationCode4>
      <Quantity4></Quantity4>
      <IdentificationCode5></IdentificationCode5>
      <Quantity5></Quantity5>
      <IdentificationCode6></IdentificationCode6>
      <Quantity6></Quantity6>
      <IdentificationCode7></IdentificationCode7>
      <Quantity7></Quantity7>
      <IdentificationCode8></IdentificationCode8>
      <Quantity8></Quantity8>
      <IdentificationCode9></IdentificationCode9>
      <Quantity9></Quantity9>
      <IdentificationCode10></IdentificationCode10>
      <Quantity10></Quantity10>
    </DestinationQuantity>
    <DeliveryRequestedDateTimeInfo>
      <!--要求交付时间-->
      <Date>20221002</Date>
    </DeliveryRequestedDateTimeInfo>
  </BaselineItem>
</EDI_850>

可以看到,经 EDI 系统转换之后的目标 XML 文件中,我们将业务数据与业务字段联系起来,这样的文件可读性更强,并且更方便进行下一步数据处理。

工作流示例

通过上述的讲解想必大家已经了解了 OTP 850 订单在知行之桥 EDI 系统中的转换流程了,以下是上述工作流示例,您可以下载知行之桥EDI系统,导入【示例工作流】以及【X12 850 测试文件】,进行实战操作。

 下载示例工作流以及测试文件

在知行之桥 EDI 系统中导入上述工作流以及测试文件。

如下图所示:

①先点击右上角的工作区齿轮图标,选择创建工作区,命名为OTP_850。

②然后选择导入工作区,选择OTP_850.arcflow。

③点开OTP_X12ToXML端口,点击上方 输入 ,在 更多 里点击上传文件,上传OTP_850_Sample.edi。

④点开OTP_XMLMap_850端口,点击上方 输出 ,点击 OTP_850_Sample_850002059.xml 即可下载文件,看到转换后的结果。

端口解读

以下端口是上述工作流的核心要素:

X12端口:即上文命名为OTP_X12ToXML的端口

X12端口可以将 XML 文档转换为 X12 文档,也可以将 X12 文档转换为 XML。本次示例中,需要将 XML Map 处理后的目标XML文件转换为X12 格式。生成 X12 文档时,X12 端口将 XML 转换为 X12 格式的文档,并生成适当的 X12 头,也就是我们上述报文讲解中出现的ISA字段。这个字段包含发送方ID以及接收方ID信息,您可以在X12 端口的设置选项卡中,根据您与文件接收方的实际情况设置以上信息。

XML MAP端口:即上文命名为OTP_XMLMap_850的端口

XML Map 端口提供了一种可视化设计器驱动的方式来将 XML 数据从一种结构转换为另一种结构。

XML Map 端口为转换 XML 结构提供了灵活且直观的界面。首先,应将源模板文件(包含所有输入文档的 XML 结构的文件)和目标模板文件(包含端口应输出的 XML 结构的文件)上传到端口。上述示例中我们已经提前将源模板以及目标模板文件设置好。 上传源和目标模板文件后,映射设计器将填充源和目标 XML 结构。然后,可以将源中的元素拖放到目标中的元素上,以建立映射关系。

以上是对接收 OTP 850 订单报文的解读以及转换的详细介绍,了解更多 OTP 的 EDI 报文信息,欢迎交流。

更多EDI信息,请参阅: EDI是什么?

阅读原文

0 人点赞