如何EDI标准文件转换为自定义XML?

本文详述了如何将基于X12标准的850采购订单EDI文件转换为自定义XML。首先,通过国际标准将EDI转换为标准XML,然后使用脚本映射实现自定义XML。转换后的XML结构清晰,标签对应EDI Segment,便于解析业务数据。通过提供的代码示例,演示了如何使用XMLDomSearch操作进行数据提取和自定义XML生成。
摘要由CSDN通过智能技术生成

今天分享EDI报文转换,主要围绕X12标准 850 采购订单展开介绍。

以下方案的源代码先分享出来。
https://www.kasoftware.com/translation/edi_xml_convert_sample.html

实现EDI转自定义XML,可以分两步完成。

  1. 根据国际标准,先将EDI文件转换为标准的XML文件;
  2. 通过脚本,实现标准XML与自定义XML的关系映射。

在这里插入图片描述

以850采购订单为例,源文件如下:

ISA*00*          *00*          *ZZ*WAYNE_TECH     *ZZ*ACME           *160609*1330*U*00401*000000007*0*T*>~
GS*PO*WAYNE_TECH*ACME*20160609*1330*7*T*004010~
ST*850*0001~
BEG*00*DS*0476696888**20150708~
REF*SB*ZZ11~
REF*6P*ZZ~
REF*8M*0056~
REF*CR*1070335099~
REF*CO*7109790082~
PER*CN*ACME, Inc.*TE*(555) 555-5555~
CSH*SC~
SAC*C*ZZZZ**********06~
TD5*Z*2*123456~
N9*PD*ZCOF~
MSG*Thanks!~
N1*BY*Wayne Tech*92*5601~
N2*Wayne Tech*~
N3*125 WayneHigh Road.~
N1*EN*ACME, Inc.~
N1*ST*Wayne Tech Plant 1*92*0000505462~
N2*Wayne Tech Plant 1*~
N3*100 Wayne Ave.~
N4*Chapel Hill*MX*27514*US**~
PO1**500000*EA*495*TP*BP*337S3744*VP*422242224~
PID*F****500,000 red widgets****EN~
SCH*500000*EA***002*20180708~
PO1**100*EA*395*HP*BP*337S3745*VP*422242226~
PID*F****100 blue widgets****EN~
SCH*100*EA***002*20180708~
PO1**500*EA*210*TP*BP*337S3746*VP*422201210~
PID*F****AH-0310 red widgets****EN~
SCH*500*EA***002*20180708~
PO1**150*EA*350*TP*BP*337S3747*VP*422241452~
PID*F****F-100 blue widgets****EN~
SCH*100*EA***002*20180708~
PO1**500000*EA*495*TP*BP*337S3748*VP*422244512~
PID*F****HU-021 black widgets****EN~
SCH*500000*EA***002*20180708~
PO1**1500*EA*3000*HP*BP*337S3749*VP*422241023~
PID*F****100-20J widgets****EN~
SCH*100*EA***002*20180708~
CTT*6*500100~
SE*39*0001~
GE*1*7~
IEA*1*000000007~

先看转换标准XML的结果,内容看似很长,一半以上的内容都是注释,解释每个字段对应的业务含义,即便没有EDI规范,也可以快速了解该EDI文件都包含了哪些业务数据:

<Interchange Delimiters=":*. ^~" xmlns="http://www.rssbus.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<Meta>
		<!--Authorization Information Qualifier-->
		<ISA01><!--No Authorization Information Present (No Meaningful Information in I02)-->00</ISA01>
		<!--Authorization Information-->
		<ISA02>          </ISA02>
		<!--Security Information Qualifer-->
		<ISA03>00</ISA03>
		<!--Security Information-->
		<ISA04>          </ISA04>
		<!--Interchange ID Qualifier-->
		<ISA05><!--Mutually Defined-->ZZ</ISA05>
		<!--Interchange Sender ID-->
		<ISA06>WAYNE_TECH     </ISA06>
		<!--Interchange ID Qualifier-->
		<ISA07><!--Mutually Defined-->ZZ</ISA07>
		<!--Interchange Receiver ID-->
		<ISA08>ACME           </ISA08>
		<!--Interchange Date-->
		<ISA09>160609</ISA09>
		<!--Interchange Time-->
		<ISA10>1330</ISA10>
		<!--Interchange Control Standards Identifier-->
		<ISA11>U</ISA11>
		<!--Interchange Control Version Number Code-->
		<ISA12><!--Standards Approved for Publication by ASC X12 Procedures Review Board through October 1997-->00401</ISA12>
		<!--Inter Control Number-->
		<ISA13>000000007</ISA13>
		<!--Acknowlegment Requested Code-->
		<ISA14>0</ISA14>
		<!--Interchange Usage Indicator Code-->
		<ISA15><!--Test Data-->T</ISA15>
		<!--Component Element Separator-->
		<ISA16>&gt;</ISA16>
	</Meta>
	<FunctionalGroup>
		<Meta>
			<!--Functional Identifier Code-->
			<GS01><!--Purchase Order (850)-->PO</GS01>
			<!--Application Sender&apos;s Code-->
			<GS02>WAYNE_TECH</GS02>
			<!--Application Receiver&apos;s Code-->
			<GS03>ACME</GS03>
			<!--Date-->
			<GS04>20160609</GS04>
			<!--Time-->
			<GS05>1330</GS05>
			<!--Group Control Number-->
			<GS06>7</GS06>
			<!--Responsible Agency Code-->
			<GS07><!--Transportation Data Coordinating Committee (TDCC)-->T</GS07>
			<!--Version / Release / Industry Identifier Code-->
			<GS08><!--Standards Approved for Publication by ASC X12 Procedures Review Board through October 1997-->004010</GS08>
		</Meta>
		<TransactionSet>
			<TX-00401-850 type="TransactionSet">
				<Meta>
					<!--Transaction Set Identifier Code-->
					<ST01><!--Purchase Order-->850</ST01>
					<!--Transaction Set Control Number-->
					<ST02>0001</ST02>
				</Meta>
				<BEG type="Segment">
					<!--Transaction Set Purpose Code-->
					<BEG01><!--Original-->00</BEG01>
					<!--Purchase Order Type Code-->
					<BEG02><!--Dropship-->DS</BEG02>
					<!--Purchase Order Number-->
					<BEG03>0476696888</BEG03>
					<!--Release Number-->
					<BEG04 xsi:nil="true"/>
					<!--Date-->
					<BEG05>20150708</BEG05>
				</BEG>
				<REF type="Segment">
					<!--Reference Identification Qualifier-->
					<REF01><!--Sales Region Number-->SB</REF01>
					<!--Reference Identification-->
					<REF02>ZZ11</REF02>
				</REF>
				<REF type="Segment">
					<!--Reference Identification Qualifier-->
					<REF01><!--Group Number-->6P</REF01>
					<!--Reference Identification-->
					<REF02>ZZ</REF02>
				</REF>
				<REF type="Segment">
					<!--Reference Identification Qualifier-->
					<REF01><!--Originating Company Identifier-->8M</REF01>
					<!--Reference Identification-->
					<REF02>0056</REF02>
				</REF>
				<REF type="Segment">
					<!--Reference Identification Qualifier-->
					<REF01><!--Customer Reference Number-->CR</REF01>
					<!--Reference Identification-->
					<REF02>1070335099</REF02>
				</REF>
				<REF type="Segment">
					<!--Reference Identification Qualifier-->
					<REF01><!--Customer Order Number-->CO</REF01>
					<!--Reference Identification-->
					<REF02>7109790082</REF02>
				</REF>
				<PER type="Segment">
					<!--Contact Function Code-->
					<PER01><!--General Contact-->CN</PER01>
					<!--Name-->
					<PER02>ACME, Inc.</PER02>
					<!--Commu
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值