on 12-02-2008 1:33 PM
Hi, experts!
I need to map this structure:
<InvoiceXml>
<Envelope>
<Sender>231141</Sender>
<Receiver>7290058160372</Receiver>
<DocType>INV100</DocType>
<Header>
<InvoiceNo>111</InvoiceNo>
<InvoiceMonth>200809</InvoiceMonth>
<SupplierCode>231141</SupplierCode>
</Header>
<Header>
<InvoiceNo>222</InvoiceNo>
<InvoiceMonth>200809</InvoiceMonth>
<SupplierCode>231141</SupplierCode>
</Header>
</Envelope>
</InvoiceXml>
to structure:
<InvoiceXml>
<Envelope>
<Sender>231141</Sender>
<Receiver>7290058160372</Receiver>
<DocType>INV100</DocType>
<InvoiceNo>111</InvoiceNo>
<InvoiceMonth>200809</InvoiceMonth>
<SupplierCode>231141</SupplierCode>
</Envelope>
<Envelope>
<Sender>231141</Sender>
<Receiver>7290058160372</Receiver>
<DocType>INV100</DocType>
<InvoiceNo>222</InvoiceNo>
<InvoiceMonth>200809</InvoiceMonth>
<SupplierCode>231141</SupplierCode>
</Envelope>
</InvoiceXml>
I'am using "useOneAsMany" function, this way:
........................... _________________
Envelope----
| ...........................|
Sender -
| useOneAsMany. |----
Sender
Envelope----
|________________|
but it didn't work What's wrong?
I need to map nodes from Envelope(that occurs only once) to each Envelope on the other side. So the I think, the only way is to use useOneAsMany?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
> So the I think, the only way is to use useOneAsMany?
Yes I guess now you are right.
But as third parameter you should use these parameters:
Sender
Header
Header
and I still guess that you should use the splitByValue function after useOneAsMany.
Regards
Patrick
Edited by: Patrick Koehnen on Dec 2, 2008 3:04 PM
Hi,
sorry I changed my answer a little bit
But I tested it and it should work now.
Regards
Patrick
BTW without the splitByValue function I get exactly your error message:
> Cannot produce target element /ns0:ProxyStructMT/Envelope/Sender. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd
Hi Dani ,
Try this
Sender -
>
CopyPerValue -
> SplitByValue -
> Sender
Header----
>
First map sender and Header source nodes to standard function copypervalue and then use splitbyvalue and then map it to target field sender
and try the same for other source nodes
like Reveiver and DocType
Regards
Syed
Edited by: Umar Syed on Dec 2, 2008 2:50 PM
Edited by: Umar Syed on Dec 2, 2008 2:51 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
at the moment I don't understand why you need useOneAsMany in this case, but if it's really needed try it with splitByValue like mentioned here:
http://help.sap.com/saphelp_nw04/helpdata/en/ef/df564b6aa24fc9ab0d685460747de5/frameset.htm
Regards
Patrick
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Dani,
Check in display queue for all the source fields it should have same no. of contexts. In your case it is not so, thats why you are getting this error.
What is your requirement?
Thanks!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Dani,
Map like this...
Header(Source)----
InvoiceNo(Source)--SplitByValue(EachValue)--InvoiceNo(Target)
Regards,
RajeshKumar.D
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.