BizTalk映射循环xml到线性

时间:2014-08-13 08:20:26

标签: mapping biztalk biztalk-2010

我尝试将xml文件转换为flat文件,然后将其写入dbase。 我输入了这样的xml文件:

<?xml version="1.0"?><ns0:ORDER xmlns:ns0="http://TEST.FlatFileSchema2"><STORERKEY>10056</STORERKEY><SHIPMENT>0011864472</SHIPMENT><STORER><TYPE>SO</TYPE><STORERKEY>0010173479</STORERKEY><COMPANY>OptSibirOOO</COMPANY><ADDRESS1>ul.Voinskaya, d.140</ADDRESS1><COUNTRY>RU</COUNTRY><EXTERNALORDERKEY>8003158675</EXTERNALORDERKEY></STORER><STORER><TYPE>ST</TYPE><STORERKEY>0010173480</STORERKEY><COMPANY>OptSibirOOO</COMPANY><ADDRESS1>ul.Stantcionnaya, 4b</ADDRESS1><COUNTRY>RU</COUNTRY><EXTERNALORDERKEY>8003158675</EXTERNALORDERKEY></STORER><STORER><TYPE>SF</TYPE><STORERKEY>2033</STORERKEY><COMPANY>Tablogix Novosibirsk</COMPANY><ADDRESS1>o.p. 3307 km 16</ADDRESS1><COUNTRY>RU</COUNTRY><EXTERNALORDERKEY>8003158675</EXTERNALORDERKEY></STORER><STORER><TYPE>SE</TYPE><STORERKEY>261</STORERKEY><COMPANY>Mars Russia</COMPANY><ADDRESS1>Stupino1</ADDRESS1><COUNTRY>RU</COUNTRY><EXTERNALORDERKEY>8003158675</EXTERNALORDERKEY></STORER><TIME><TYPE>259</TYPE><DATETIME>201408070900</DATETIME></TIME><TIME><TYPE>79</TYPE><DATETIME>201408070900</DATETIME></TIME><TIME><TYPE>128</TYPE><DATETIME>201408071530</DATETIME></TIME><TIME><TYPE>137</TYPE><DATETIME>201408060000</DATETIME></TIME><ORDERDETAIL><EXTERNALORDERKEY>8003158675</EXTERNALORDERKEY><EXTERNALLINENUMBER>000010</EXTERNALLINENUMBER><SKU>YF251</SKU><OPENQTY>48</OPENQTY><ORIGINALQTY>48</ORIGINALQTY><SUSR2>0001</SUSR2></ORDERDETAIL><ORDERDETAIL><EXTERNALORDERKEY>8003158675</EXTERNALORDERKEY><EXTERNALLINENUMBER>000020</EXTERNALLINENUMBER><SKU>XH010</SKU><OPENQTY>60</OPENQTY><ORIGINALQTY>60</ORIGINALQTY><SUSR2>0001</SUSR2></ORDERDETAIL><ORDERDETAIL><EXTERNALORDERKEY>8003158675</EXTERNALORDERKEY><EXTERNALLINENUMBER>000030</EXTERNALLINENUMBER><SKU>XH018</SKU><OPENQTY>54</OPENQTY><ORIGINALQTY>54</ORIGINALQTY><SUSR2>0001</SUSR2></ORDERDETAIL><ORDERDETAIL><EXTERNALORDERKEY>8003158675</EXTERNALORDERKEY><EXTERNALLINENUMBER>000040</EXTERNALLINENUMBER><SKU>YF259</SKU><OPENQTY>54</OPENQTY><ORIGINALQTY>54</ORIGINALQTY><SUSR2>0001</SUSR2></ORDERDETAIL><ORDERDETAIL><EXTERNALORDERKEY>8003158675</EXTERNALORDERKEY><EXTERNALLINENUMBER>000050</EXTERNALLINENUMBER><SKU>10108852</SKU><OPENQTY>42</OPENQTY><ORIGINALQTY>42</ORIGINALQTY><SUSR2>0001</SUSR2></ORDERDETAIL></ns0:ORDER>

我创建了这样的地图:

<?xml version="1.0" encoding="utf-16"?><mapsource Name="BizTalk Map" Version="2" BizTalkServerMapperTool_Version="3.0" XRange="100" YRange="420" OmitXmlDeclaration="Yes" TreatElementsAsRecords="No" OptimizeValueMapping="No" GenerateDefaultFixedNodes="Yes" PreserveSequenceOrder="No" IgnoreNamespacesForLinks="Yes" XsltEncoding="windows-1251" method="xml" CopyPIs="No" xmlVersion="1.0"><SrcTree RootNode_Name="ORDER"><Reference Location=".\Orders.xsd" /></SrcTree><TrgTree RootNode_Name="Root"><Reference Location=".\Schema2.xsd" /></TrgTree><ScriptTypePrecedence><CSharp Enabled="Yes" /><ExternalAssembly Enabled="Yes" /><VbNet Enabled="Yes" /><JScript Enabled="Yes" /><XsltCallTemplate Enabled="Yes" /><Xslt Enabled="Yes" /></ScriptTypePrecedence><TreeValues><TestValues /><ConstantValues /></TreeValues><Pages><Page Name="Page 1"><Links><Link LinkID="164" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='TIME']/*[local-name()='DATETIME']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='REQUESTEDSHIPDATE']" /><Link LinkID="166" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='TIME']/*[local-name()='DATETIME']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='REQUESTEDSHIPDATE2']" /><Link LinkID="167" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='TIME']/*[local-name()='DATETIME']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='REQUESTEDSHIPDATE3']" /><Link LinkID="168" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='TIME']/*[local-name()='DATETIME']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='TRANSITTIME_WO_SHIP']" /><Link LinkID="169" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='TIME']/*[local-name()='DATETIME']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='PICKING_DATE']" /><Link LinkID="170" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='TIME']/*[local-name()='DATETIME']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='TRANSITTIME']" /><Link LinkID="171" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='TIME']/*[local-name()='DATETIME']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='TRANSITTIME2']" /><Link LinkID="214" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='STORER']/*[local-name()='STORERKEY']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='STORER']" /><Link LinkID="215" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='STORER']/*[local-name()='COMPANY']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='COMPANY']" /><Link LinkID="216" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='STORER']/*[local-name()='ADDRESS1']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='ADDRESS1']" /><Link LinkID="217" LinkFrom="/*[local-name()='&lt;Schema&gt;']/*[local-name()='ORDER']/*[local-name()='STORER']/*[local-name()='EXTERNALORDERKEY']" LinkTo="/*[local-name()='&lt;Schema&gt;']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='SUSR1']" /></Links><Functoids /></Page></Pages></mapsource>

但是在输出文件中我只看到第一条记录:

<?xml version="1.0"?><ns0:Root xmlns:ns0="http://TEST.Schema2"><Record><STORER>0010173479</STORER><COMPANY>OptSibirOOO</COMPANY><ADDRESS1>ul.Voinskaya, d.140</ADDRESS1><SUSR1>8003158675</SUSR1><REQUESTEDSHIPDATE>201408070900</REQUESTEDSHIPDATE><REQUESTEDSHIPDATE2>201408070900</REQUESTEDSHIPDATE2><REQUESTEDSHIPDATE3>201408070900</REQUESTEDSHIPDATE3><TRANSITTIME_WO_SHIP>201408070900</TRANSITTIME_WO_SHIP><PICKING_DATE>201408070900</PICKING_DATE><TRANSITTIME>201408070900</TRANSITTIME><TRANSITTIME2>201408070900</TRANSITTIME2></Record></ns0:Root>

如何在输出文件中查看所有循环记录?

1 个答案:

答案 0 :(得分:2)

我发现了一个错误: 我应该在xml文件架构中设置无限制的最大值。