Microsoft Developer Network >
Forums Home
>
BizTalk Server Forums
>
BizTalk Server General
>
Making a XML file flat to SQL table
Making a XML file flat to SQL table
- Hi folks,
I hava a XML file with a strucure like
Record1 Segment MatNR
Childrecord1 Segment ISO
Childrecord2 Segment ORG
e.g. MatNR appears once in the file, ISO 10 times and ORG two times
I want to write this data to a SQL table, and the output should be like this
MatNR ORG1 ISO1
MatNR ORG1 ISO2
. . .
MatNR ORG1 ISO10
MatNR ORG2 ISO1
MatNR ORG2 ISO2
. . .
MatNR ORG2 ISO10
But I only get this
MatNR ORG1 ISO1
MatNR ORG1 ISO2
. . .
MatNR ORG1 ISO10
when I use a looping functoid
and if I don't use one I get
MatNR ORG1 ISO1
MatNR ORG2 ISO1
What do I wrong or is it immpossible to do it that way?
Regards and thanks
Peter- Edited byPeter Ungemach Thursday, October 29, 2009 4:29 PM
Answers
- Perhaps XSLT is a solution, but I have never wrote XSLT.
In the moment I'm trying another solution, to wrote the data in a schema in which the nodes are not on the same level, and wrote from this schema to the destination schema and then I can use looping functoids - not a nice way but it seems to work...- Marked As Answer byWen-Jun ZhangMSFT, ModeratorWednesday, November 04, 2009 9:42 AM
All Replies
- can you post your schema?
is MatNR ORG1 ISO1 also a repeatable record
KiranMP - i didn't get your problem.. are you trying to loop through both records. if so use a looping functoid, link from record 1 and record 2 to looping functoid. and link looping functoid to target node.
Please explain or post the schema if this is not the case...
Genuine Basil- Edited byGenuine Basil Thursday, October 29, 2009 4:08 PM.
- The complete input schema is this one
and I need the fields
E1MARAM-> MATNR (= MatNR above)
E1MARAM->E1MAKTM-> SPRAS_ISO ( = ISO above)
E1MARAM->E1MVKEM-> VKORG ( ORG above)
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="StandardBusinessDocument">
<xs:complexType>
<xs:sequence>
<xs:element name="StandardBusinessDocumentHeader">
<xs:complexType>
<xs:sequence>
<xs:element name="HeaderVersion" type="xs:decimal" />
<xs:element name="Sender">
<xs:complexType>
<xs:sequence>
<xs:element name="Identifier">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:unsignedByte">
<xs:attribute name="Authority" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Receiver">
<xs:complexType>
<xs:sequence>
<xs:element name="Identifier">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:unsignedByte">
<xs:attribute name="Authority" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DocumentIdentification">
<xs:complexType>
<xs:sequence>
<xs:element name="Standard" type="xs:string" />
<xs:element name="TypeVersion" type="xs:string" />
<xs:element name="InstanceIdentifier" type="xs:string" />
<xs:element name="Type" type="xs:string" />
<xs:element name="CreationDateAndTime" type="xs:dateTime" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BusinessScope">
<xs:complexType>
<xs:sequence>
<xs:element name="Scope">
<xs:complexType>
<xs:sequence>
<xs:element name="Type" type="xs:string" />
<xs:element name="InstanceIdentifier" type="xs:string" />
<xs:element name="Identifier" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Z2MATMAS">
<xs:complexType>
<xs:sequence>
<xs:element name="IDOC">
<xs:complexType>
<xs:sequence>
<xs:element name="EDI_DC40">
<xs:complexType>
<xs:sequence>
<xs:element name="TABNAM" type="xs:string" />
<xs:element name="MANDT" type="xs:unsignedByte" />
<xs:element name="DOCNUM" type="xs:unsignedInt" />
<xs:element name="DOCREL" type="xs:unsignedShort" />
<xs:element name="STATUS" type="xs:unsignedByte" />
<xs:element name="DIRECT" type="xs:unsignedByte" />
<xs:element name="OUTMOD" type="xs:unsignedByte" />
<xs:element name="IDOCTYP" type="xs:string" />
<xs:element name="CIMTYP" type="xs:string" />
<xs:element name="MESTYP" type="xs:string" />
<xs:element name="SNDPOR" type="xs:string" />
<xs:element name="SNDPRT" type="xs:string" />
<xs:element name="SNDPRN" type="xs:string" />
<xs:element name="RCVPOR" type="xs:string" />
<xs:element name="RCVPRT" type="xs:string" />
<xs:element name="RCVPRN" type="xs:string" />
<xs:element name="CREDAT" type="xs:unsignedInt" />
<xs:element name="CRETIM" type="xs:unsignedInt" />
<xs:element name="SERIAL" type="xs:unsignedLong" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="E1MARAM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="MATNR" type="xs:unsignedInt" />
<xs:element name="ERSDA" type="xs:unsignedInt" />
<xs:element name="ERNAM" type="xs:string" />
<xs:element name="LAEDA" type="xs:unsignedInt" />
<xs:element name="AENAM" type="xs:string" />
<xs:element name="PSTAT" type="xs:string" />
<xs:element name="MTART" type="xs:string" />
<xs:element name="MBRSH" type="xs:string" />
<xs:element name="MATKL" type="xs:string" />
<xs:element name="MEINS" type="xs:string" />
<xs:element name="BSTME" type="xs:string" />
<xs:element name="BLANZ" type="xs:unsignedByte" />
<xs:element name="EKWSL" type="xs:unsignedByte" />
<xs:element name="BRGEW" type="xs:decimal" />
<xs:element name="NTGEW" type="xs:decimal" />
<xs:element name="GEWEI" type="xs:string" />
<xs:element name="VOLUM" type="xs:decimal" />
<xs:element name="VOLEH" type="xs:string" />
<xs:element name="RAUBE" type="xs:string" />
<xs:element name="TRAGR" type="xs:unsignedByte" />
<xs:element name="SPART" type="xs:unsignedByte" />
<xs:element name="WESCH" type="xs:decimal" />
<xs:element name="EAN11" type="xs:unsignedLong" />
<xs:element name="NUMTP" type="xs:string" />
<xs:element name="LAENG" type="xs:decimal" />
<xs:element name="BREIT" type="xs:decimal" />
<xs:element name="HOEHE" type="xs:decimal" />
<xs:element name="MEABM" type="xs:string" />
<xs:element name="ERGEW" type="xs:decimal" />
<xs:element name="ERVOL" type="xs:decimal" />
<xs:element name="GEWTO" type="xs:decimal" />
<xs:element name="VOLTO" type="xs:decimal" />
<xs:element name="VABME" type="xs:unsignedByte" />
<xs:element name="XCHPF" type="xs:string" />
<xs:element name="FUELG" type="xs:unsignedByte" />
<xs:element name="STFAK" type="xs:unsignedByte" />
<xs:element name="BEGRU" type="xs:string" />
<xs:element name="MHDRZ" type="xs:unsignedByte" />
<xs:element name="MHDHB" type="xs:unsignedShort" />
<xs:element name="MHDLP" type="xs:unsignedByte" />
<xs:element name="VPSTA" type="xs:string" />
<xs:element name="MSTAE" type="xs:unsignedByte" />
<xs:element name="MSTAV" type="xs:unsignedByte" />
<xs:element name="MSTDE" type="xs:unsignedInt" />
<xs:element name="MSTDV" type="xs:unsignedInt" />
<xs:element name="COMPL" type="xs:unsignedByte" />
<xs:element name="MTPOS_MARA" type="xs:string" />
<xs:element name="GEWTO_NEW" type="xs:decimal" />
<xs:element name="VOLTO_NEW" type="xs:decimal" />
<xs:element maxOccurs="unbounded" name="Z1OCLFM">
<xs:complexType>
<xs:sequence>
<xs:element name="KLART" type="xs:string" />
<xs:element name="CLASS" type="xs:string" />
<xs:element name="ATNAM" type="xs:string" />
<xs:element name="ATWRT" type="xs:string" />
<xs:element name="ATWRT_NEUTRAL_VALUE" type="xs:string" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="E1MAKTM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="SPRAS" type="xs:string" />
<xs:element name="MAKTX" type="xs:string" />
<xs:element name="SPRAS_ISO" type="xs:string" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="E1MARCM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="WERKS" type="xs:string" />
<xs:element name="PSTAT" type="xs:string" />
<xs:element minOccurs="0" name="EKGRP" type="xs:string" />
<xs:element minOccurs="0" name="DISMM" type="xs:string" />
<xs:element minOccurs="0" name="DISPO" type="xs:string" />
<xs:element name="PLIFZ" type="xs:unsignedByte" />
<xs:element name="WEBAZ" type="xs:unsignedByte" />
<xs:element name="PERKZ" type="xs:string" />
<xs:element name="AUSSS" type="xs:decimal" />
<xs:element minOccurs="0" name="DISLS" type="xs:string" />
<xs:element minOccurs="0" name="BESKZ" type="xs:string" />
<xs:element name="MINBE" type="xs:decimal" />
<xs:element name="EISBE" type="xs:decimal" />
<xs:element name="BSTMI" type="xs:decimal" />
<xs:element name="BSTMA" type="xs:decimal" />
<xs:element name="BSTFE" type="xs:decimal" />
<xs:element name="BSTRF" type="xs:decimal" />
<xs:element name="MABST" type="xs:decimal" />
<xs:element name="LOSFX" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="ALTSL" type="xs:unsignedByte" />
<xs:element name="AUSDT" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="KZBED" type="xs:string" />
<xs:element minOccurs="0" name="FHORI" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="RGEKZ" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="FEVOR" type="xs:string" />
<xs:element name="BEARZ" type="xs:decimal" />
<xs:element name="RUEZT" type="xs:decimal" />
<xs:element name="TRANZ" type="xs:decimal" />
<xs:element name="BASMG" type="xs:decimal" />
<xs:element name="DZEIT" type="xs:unsignedByte" />
<xs:element name="MAXLZ" type="xs:unsignedByte" />
<xs:element name="UEETO" type="xs:decimal" />
<xs:element name="UNETO" type="xs:decimal" />
<xs:element name="WZEIT" type="xs:unsignedByte" />
<xs:element name="VZUSL" type="xs:decimal" />
<xs:element name="UMLMC" type="xs:decimal" />
<xs:element minOccurs="0" name="LADGR" type="xs:unsignedByte" />
<xs:element name="XCHPF" type="xs:string" />
<xs:element name="LGRAD" type="xs:decimal" />
<xs:element name="OBJID" type="xs:unsignedByte" />
<xs:element name="MTVFP" type="xs:string" />
<xs:element name="VRVEZ" type="xs:decimal" />
<xs:element name="VBAMG" type="xs:decimal" />
<xs:element name="VBEAZ" type="xs:decimal" />
<xs:element minOccurs="0" name="KAUTB" type="xs:string" />
<xs:element name="STAWN" type="xs:unsignedInt" />
<xs:element minOccurs="0" name="MTVER" type="xs:string" />
<xs:element minOccurs="0" name="HERKL" type="xs:string" />
<xs:element name="TRAME" type="xs:decimal" />
<xs:element name="FXHOR" type="xs:unsignedByte" />
<xs:element name="VINT1" type="xs:unsignedByte" />
<xs:element name="VINT2" type="xs:unsignedByte" />
<xs:element name="LOSGR" type="xs:decimal" />
<xs:element minOccurs="0" name="SOBSK" type="xs:string" />
<xs:element minOccurs="0" name="LGPRO" type="xs:string" />
<xs:element name="KAUSF" type="xs:decimal" />
<xs:element name="TAKZT" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="AWSLS" type="xs:string" />
<xs:element name="VRBDT" type="xs:unsignedByte" />
<xs:element name="VRBFK" type="xs:decimal" />
<xs:element name="PREND" type="xs:unsignedByte" />
<xs:element name="PRENG" type="xs:unsignedByte" />
<xs:element name="PRFRQ" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="LGFSB" type="xs:string" />
<xs:element name="MMSTA" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="SHFLG" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="SFCPF" type="xs:string" />
<xs:element name="SHZET" type="xs:unsignedByte" />
<xs:element name="MMSTD" type="xs:unsignedInt" />
<xs:element name="DPLHO" type="xs:unsignedByte" />
<xs:element name="MINLS" type="xs:decimal" />
<xs:element name="MAXLS" type="xs:decimal" />
<xs:element name="FIXLS" type="xs:decimal" />
<xs:element name="LTINC" type="xs:decimal" />
<xs:element name="COMPL" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="APOKZ" type="xs:unsignedByte" />
<xs:element name="EISLO" type="xs:decimal" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="E1MARDM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="LGORT" type="xs:string" />
<xs:element name="PSTAT" type="xs:string" />
<xs:element name="LMINB" type="xs:decimal" />
<xs:element name="LBSTF" type="xs:decimal" />
<xs:element name="BSKRF" type="xs:float" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="E1MPGDM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="E1MVEGM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="ERTAG" type="xs:unsignedInt" />
<xs:element name="VBWRT" type="xs:decimal" />
<xs:element name="KOVBW" type="xs:decimal" />
<xs:element name="KZEXI" type="xs:string" />
<xs:element name="ANTEI" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="E1MVEUM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="ERTAG" type="xs:unsignedInt" />
<xs:element name="VBWRT" type="xs:decimal" />
<xs:element name="KOVBW" type="xs:decimal" />
<xs:element name="KZEXI" type="xs:string" />
<xs:element name="ANTEI" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="E1MKALM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="VERID" type="xs:string" />
<xs:element name="BDATU" type="xs:unsignedInt" />
<xs:element name="ADATU" type="xs:unsignedInt" />
<xs:element name="STLAL" type="xs:unsignedByte" />
<xs:element name="STLAN" type="xs:unsignedByte" />
<xs:element name="PLNTY" type="xs:string" />
<xs:element name="PLNNR" type="xs:unsignedInt" />
<xs:element name="ALNAL" type="xs:unsignedByte" />
<xs:element name="LOSGR" type="xs:decimal" />
<xs:element name="TEXT1" type="xs:string" />
<xs:element name="EWAHR" type="xs:unsignedByte" />
<xs:element name="BSTMI" type="xs:decimal" />
<xs:element name="BSTMA" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="E1MARMM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="MEINH" type="xs:string" />
<xs:element name="UMREZ" type="xs:unsignedShort" />
<xs:element name="UMREN" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="EAN11" type="xs:unsignedLong" />
<xs:element minOccurs="0" name="NUMTP" type="xs:string" />
<xs:element name="LAENG" type="xs:decimal" />
<xs:element name="BREIT" type="xs:decimal" />
<xs:element name="HOEHE" type="xs:decimal" />
<xs:element minOccurs="0" name="MEABM" type="xs:string" />
<xs:element name="VOLUM" type="xs:decimal" />
<xs:element minOccurs="0" name="VOLEH" type="xs:string" />
<xs:element name="BRGEW" type="xs:decimal" />
<xs:element minOccurs="0" name="GEWEI" type="xs:string" />
<xs:element minOccurs="0" name="E1MEANM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="MEINH" type="xs:string" />
<xs:element name="LFNUM" type="xs:unsignedByte" />
<xs:element name="EAN11" type="xs:unsignedLong" />
<xs:element name="EANTP" type="xs:string" />
<xs:element name="HPEAN" type="xs:string" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="E1MBEWM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="BWKEY" type="xs:string" />
<xs:element name="VPRSV" type="xs:string" />
<xs:element name="VERPR" type="xs:decimal" />
<xs:element name="STPRS" type="xs:decimal" />
<xs:element name="PEINH" type="xs:unsignedShort" />
<xs:element name="BKLAS" type="xs:string" />
<xs:element name="VMVPR" type="xs:string" />
<xs:element name="VMVER" type="xs:decimal" />
<xs:element name="VMSTP" type="xs:decimal" />
<xs:element name="VMPEI" type="xs:unsignedShort" />
<xs:element name="VMBKL" type="xs:string" />
<xs:element name="VJVPR" type="xs:string" />
<xs:element name="VJVER" type="xs:decimal" />
<xs:element name="VJSTP" type="xs:decimal" />
<xs:element name="LFGJA" type="xs:unsignedShort" />
<xs:element name="LFMON" type="xs:unsignedByte" />
<xs:element name="ZKPRS" type="xs:unsignedByte" />
<xs:element name="ZKDAT" type="xs:unsignedByte" />
<xs:element name="BWPRS" type="xs:unsignedByte" />
<xs:element name="BWPRH" type="xs:unsignedByte" />
<xs:element name="VJBWS" type="xs:unsignedByte" />
<xs:element name="VJBWH" type="xs:unsignedByte" />
<xs:element name="VVJLB" type="xs:decimal" />
<xs:element name="VVMLB" type="xs:decimal" />
<xs:element name="VVSAL" type="xs:decimal" />
<xs:element name="ZPLPR" type="xs:unsignedByte" />
<xs:element name="ZPLP1" type="xs:unsignedByte" />
<xs:element name="ZPLP2" type="xs:unsignedByte" />
<xs:element name="ZPLP3" type="xs:unsignedByte" />
<xs:element name="ZPLD1" type="xs:unsignedByte" />
<xs:element name="ZPLD2" type="xs:unsignedByte" />
<xs:element name="ZPLD3" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="KALKL" type="xs:string" />
<xs:element name="BWPH1" type="xs:unsignedByte" />
<xs:element name="BWPS1" type="xs:unsignedByte" />
<xs:element name="ABWKZ" type="xs:unsignedByte" />
<xs:element name="PSTAT" type="xs:string" />
<xs:element name="KALN1" type="xs:unsignedInt" />
<xs:element name="KALNR" type="xs:unsignedInt" />
<xs:element minOccurs="0" name="BWVA2" type="xs:string" />
<xs:element name="VERS1" type="xs:unsignedByte" />
<xs:element name="VERS2" type="xs:unsignedByte" />
<xs:element name="VERS3" type="xs:unsignedByte" />
<xs:element name="PPRDZ" type="xs:unsignedByte" />
<xs:element name="PPRDL" type="xs:unsignedByte" />
<xs:element name="PPRDV" type="xs:unsignedByte" />
<xs:element name="PDATZ" type="xs:unsignedByte" />
<xs:element name="PDATL" type="xs:unsignedShort" />
<xs:element name="PDATV" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="EKALR" type="xs:string" />
<xs:element name="VPLPR" type="xs:unsignedByte" />
<xs:element name="VJBKL" type="xs:string" />
<xs:element name="VJPEI" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="HKMAT" type="xs:string" />
<xs:element name="BWPEI" type="xs:unsignedByte" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="E1MLGNM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="LGNUM" type="xs:unsignedShort" />
<xs:element name="LTKZE" type="xs:unsignedShort" />
<xs:element name="LTKZA" type="xs:unsignedShort" />
<xs:element name="LHMG1" type="xs:decimal" />
<xs:element name="LHMG2" type="xs:decimal" />
<xs:element name="LHMG3" type="xs:decimal" />
<xs:element name="LHME1" type="xs:string" />
<xs:element name="LETY1" type="xs:string" />
<xs:element name="BSSKZ" type="xs:string" />
<xs:element name="MKAPV" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="E1MVKEM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="VKORG" type="xs:unsignedShort" />
<xs:element name="VTWEG" type="xs:unsignedByte" />
<xs:element name="VERSG" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="BONUS" type="xs:string" />
<xs:element name="SKTOF" type="xs:string" />
<xs:element name="VMSTA" type="xs:unsignedByte" />
<xs:element name="VMSTD" type="xs:unsignedInt" />
<xs:element name="AUMNG" type="xs:decimal" />
<xs:element name="LFMNG" type="xs:decimal" />
<xs:element name="EFMNG" type="xs:decimal" />
<xs:element name="SCMNG" type="xs:decimal" />
<xs:element name="VRKME" type="xs:string" />
<xs:element name="MTPOS" type="xs:string" />
<xs:element minOccurs="0" name="DWERK" type="xs:string" />
<xs:element minOccurs="0" name="PRODH" type="xs:string" />
<xs:element minOccurs="0" name="PMATN" type="xs:unsignedInt" />
<xs:element minOccurs="0" name="KONDM" type="xs:string" />
<xs:element name="KTGRM" type="xs:string" />
<xs:element minOccurs="0" name="MVGR3" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="MVGR4" type="xs:unsignedByte" />
<xs:element name="MVGR5" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="RDPRF" type="xs:string" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="E1MLANM">
<xs:complexType>
<xs:sequence>
<xs:element name="MSGFN" type="xs:unsignedByte" />
<xs:element name="ALAND" type="xs:string" />
<xs:element name="TATY1" type="xs:string" />
<xs:element name="TAXM1" type="xs:string" />
<xs:element minOccurs="0" name="TATY2" type="xs:string" />
<xs:element minOccurs="0" name="TAXM2" type="xs:string" />
<xs:element minOccurs="0" name="TATY3" type="xs:string" />
<xs:element minOccurs="0" name="TAXM3" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="TATY4" type="xs:string" />
<xs:element minOccurs="0" name="TAXM4" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="TATY5" type="xs:string" />
<xs:element minOccurs="0" name="TAXM5" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="TATY6" type="xs:string" />
<xs:element minOccurs="0" name="TAXM6" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="TATY7" type="xs:string" />
<xs:element minOccurs="0" name="TAXM7" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="TATY8" type="xs:string" />
<xs:element minOccurs="0" name="TAXM8" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="TATY9" type="xs:string" />
<xs:element minOccurs="0" name="TAXM9" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="TAXIM" type="xs:unsignedByte" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="Z1BDCPV">
<xs:complexType>
<xs:sequence>
<xs:element name="CPIDENT" type="xs:unsignedInt" />
<xs:element name="MESTYPE" type="xs:string" />
<xs:element name="TABNAME" type="xs:string" />
<xs:element name="TABKEY" type="xs:string" />
<xs:element name="FLDNAME" type="xs:string" />
<xs:element name="CRETIME" type="xs:unsignedLong" />
<xs:element name="ACTTIME" type="xs:unsignedLong" />
<xs:element name="USRNAME" type="xs:string" />
<xs:element name="CDOBJCL" type="xs:string" />
<xs:element name="CDOBJID" type="xs:unsignedInt" />
<xs:element name="CDCHGNO" type="xs:unsignedInt" />
<xs:element name="CDCHGID" type="xs:string" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="BEGIN" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
and I want to map the schema:
<?xml version="1.0"?>
<xs:schema xmlns:tns="http://Sirius_MaterialHierarchy_StepA" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://Sirius_MaterialHierarchy_StepA" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="req_Sirius_MaterialHierarchy_StepA">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:updategram="urn:schemas-microsoft-com:xml-updategram" updategram:Prefix="updg" minOccurs="1" maxOccurs="unbounded" name="sync">
<xs:complexType>
<xs:sequence>
<xs:element updategram:Prefix="updg" minOccurs="0" maxOccurs="unbounded" name="after">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="MSGB_MaterialHierarchy">
<xs:complexType>
<xs:attribute name="ClientUID" type="xs:string" />
<xs:attribute name="MrdrNr_MARA_MATNR" type="xs:string" />
<xs:attribute name="ComCode" type="xs:string" />
<xs:attribute name="CrossPlantStatus_MARA_MSTAE" type="xs:string" />
<xs:attribute name="CrossPlantStatusValidFrom_MARA_MSTDE" type="xs:string" />
<xs:attribute name="CrossDistributionStatus_MARA_MSTAV" type="xs:string" />
<xs:attribute name="CrossDistributionStatusValidFrom_MARA_MSTDV" type="xs:string" />
<xs:attribute name="CategoryGroup_MARA_MTPOS" type="xs:string" />
<xs:attribute name="EAN11_MARA_EAN11" type="xs:string" />
<xs:attribute name="LastChangeDate_LAEDA_MARA" type="xs:string" />
<xs:attribute name="EANCase_MARA_EAN_CS" type="xs:string" />
<xs:attribute name="EANZCU_MARA_EAN_ZCU" type="xs:string" />
<xs:attribute name="SalesOrg_MVKE_VKORG" type="xs:string" />
<xs:attribute name="DistributionChannel_MVKE_VTWEG" type="xs:string" />
<xs:attribute name="VolumeRebateGroup_MVKE_BONUS" type="xs:string" />
<xs:attribute name="DistrChainSpecificStatusValidFrom_MVKE_VMSTD" type="xs:string" />
<xs:attribute name="SalesUnit_MVKE_VRKME" type="xs:string" />
<xs:attribute name="ProductHierarchy_MVKE_PRODH" type="xs:string" />
<xs:attribute name="PricingRefMaterial_MVKE_PMATN" type="xs:string" />
<xs:attribute name="PricingGroup_MVKE_KONDM" type="xs:string" />
<xs:attribute name="ItemCategoryGroup_MVKE_MTPOS" type="xs:string" />
<xs:attribute name="ReceiveDate" type="xs:string" />
<xs:attribute name="Status" type="xs:int" />
<xs:attribute name="LanguageKey_MAKT_SPRAS" type="xs:string" />
<xs:attribute name="Description_MAKT_MAKTX" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rsp_Sirius_MaterialHierarchy_StepA">
<xs:complexType>
<xs:sequence>
<xs:element name="Success" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema> - Ok, one fault on my side both - ORG and ISO - are on the same level in the schema.
If I put a looping functoid to the mapping a connect the fields E1MAKTM and E1MVKEM, I got 2 lines for the ORG and 10 lines for ISO, but I want 10 lines with the different ISO for one ORG and 10 lines for the other ORG with the 10 differend ISO - this cant be acheived by looping functoid i guess, you need to write custom xslt
for-each org and ISO.
KiranMP- Edited byKiran mp Thursday, October 29, 2009 5:02 PMte
- Perhaps XSLT is a solution, but I have never wrote XSLT.
In the moment I'm trying another solution, to wrote the data in a schema in which the nodes are not on the same level, and wrote from this schema to the destination schema and then I can use looping functoids - not a nice way but it seems to work...- Marked As Answer byWen-Jun ZhangMSFT, ModeratorWednesday, November 04, 2009 9:42 AM
Hi Peter,
Using a temporary schema for 2 steps mapping is the correct way in case you don't want to use custom XSLT.
Sincerely WenJun Zhang - MSFT Microsoft Online Community Support Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

