OTP 850订单详解

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

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

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

OTP850订单详解

OTP X12 850 示例订单详解

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

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

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

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 格式文件,以便于进一步处理,转换效果如下:

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

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

<?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>

<!--发货地编码-->

<AssignedByBuyerOrAgentId>0091</AssignedByBuyerOrAgentId>

<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>

<!--付款方编码-->

<AssignedByBuyerOrAgentId>0034</AssignedByBuyerOrAgentId>

<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>

<!--发货地编码-->

<AssignedByBuyerOrAgentId>0025</AssignedByBuyerOrAgentId>

<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 系统中导入上述工作流以及测试文件。

如下图所示:

OTP850订单详解

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

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

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

OTP850订单详解

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

OTP850订单详解

端口解读

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

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是什么? | EDI通信专家