on 10-28-2015 3:22 AM
Hi ,
I am working on Idoc to SOAP Asyn scenario. I am getting the one Idoc consist 1 flag with 3 different values on basis of these values I am routing them to different SOAP actions means different 3 interfaces . I have used java map to modified the SOAP envelope with different SOAP actions.
so
I have created
3 Message Mapping
3 Jar file (different 3 Envelope) used in 3 operation mapping for all 3 interfaces.
I used the flag for routing in receiver interface with 3 condition.
while testing the scenario when I send the idoc all 3 interface trigger but all have same values coming in IDOC payload.
Do I need to use BPM to send the proper data on basis of flag value coming in different segment in one IDOC
thanks
Hi Abhay,
while testing the scenario when I send the idoc all 3 interface trigger but all have same values coming in IDOC payload.
I think this is to be expected because E1P0000 can occur multiple times and in your condition editor it is set to multiline. Can you not filter the fields via message mapping?
Regards,
Mark
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Abhay,
xPath multiline and multi-mapping are two different things In your interface determination, checking this
will cause the xPath to evaluate the whole document. If you want to search only the first node, try unchecking multiline or use /HRMD_A09/IDOC/E1PLOGI/E1PITYP/E1P0000[0]/MASSN
Regards,
Mark
Mark is right. I did a search in your payload and it had MASSN values which matches all three conditions.
Therefore the multiline option is causing it to trigger all three.
However, before even considering to turn off the multiline, you need to first think about what should be the correct behavior when you get such a payload - should it trigger only one, or should it trigger all three create, update and delete contact. A very important design question to answer before you continue development.
Hi Eng,
I will multiple Segments in one IDOC in which multiple MASSN values will come and based value it should create target message . for example
if I will get 3 MASSN values in One IDOC with 01 first condition , 08 second condition and 17 third condition it should create three interface
one for create
one for update
one for delete
is this possible.
I guess yes
Thx
The answer is yes, and it should be clear just from the example you have provided - a single IDoc with which matches all 3 conditions did indeed create all three interface.
However the routing condition will not automatically "filter out" those segments before passing it to the mapping stage. Each of your mapping will still access the full IDoc payload. Therefore you need to ensure that for each mapping, it only considers the appropriate segment that matches the condition, i.e. mapping for Delete contact should only consider the segments wtih MASSN = 17.
Hello Abhay,
In the mapping you are splitting based on the logic?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Can you share screenshot of the routing condition and also the IDoc that you sent which triggered all 3 interfaces?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
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.