on 01-22-2010 9:37 AM
Hi Experts,
I want to generate multiple idocs at the target,from a single message coming from the sender file system.
The splitting of the message should happen in XI only if-
1.The segment X coming multiple times in source message
2.If plant field in the segment XI is is 123
Please help me with the conditions in the mapping and settings in XI to generate multiple idocs at the target side.
Regards,
Suresh.
Hi,
Create XSD of IDOC and change occounrace of IDOC to 0 to unbounded.
Now use this XSD as target message type in your mapping.
Use Exists function in IDOC node mapping as per your requirement. It will solve your issue.
Let me know if you have any doubts.
-Gouri
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi suresh,
try with the below mapping ..
Use ifWithOutElse.
if Plant(field of segment X) equalsS "123", then map segment X directly to the required target node(occurrance should be 1..n). Hope this works.
Regards,
Swetha.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
>>>1.The segment X coming multiple times in source message
connect this segment X with IDOC segment in the mapping ( after you change the occurance of the IDOC from 1..1 to 1...unbounded)
what's the issue here anyway ?
Regards,
Michal Krawczyk
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for the information.
This is actually a change of the existing interface.
In mapping the the top node(name is IDOC) of target structure XSD is already mapped 1-1 with the source structure (XSD )top node(name is IDOC).
If i remove the mapping and link X segment of source to target IDOC node, will it not cause a problem in generating message at runtime.
Regards,
Suresh.
Hi Friends,
I am trying to change the occurance of XSD by exporting out from XI into notepad. But the problem is i dont know where to add the entry maxOccurs="unbounded".
based on the blog--> /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
But my XSD structure is something different. please check below-
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:types>
- <xsd:schema version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="WMMBID02">
- <xsd:annotation>
<xsd:documentation>Stock movements</xsd:documentation>
</xsd:annotation>
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="IDOC">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="EDI_DC40">
- <xsd:annotation>
Please help !!
Regards,
Suresh.
You cannot perform a multimapping (1:N) since IDOC does not support it...however you can do IDOC bundelling (refer blog by MIchal on this)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Suresh,
You can make use of the famous IDOC Occurance change trick:
/people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
Then map the source node which can occur multiple times with the IDOC node of the target.
Regards,
Ravi
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
81 | |
25 | |
12 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.