cancel
Showing results for 
Search instead for 
Did you mean: 

IDOC to SOAP

abhay_aggarwal
Participant
0 Kudos

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  

Accepted Solutions (0)

Answers (3)

Answers (3)

markangelo_dihiansan
Active Contributor
0 Kudos

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

abhay_aggarwal
Participant
0 Kudos

Hi Mark,

Thanks for reply

as I mention I not using multi mapping in this for every operation I am using one mapping and there corresponding jar file to modify soap envelop.

Thx

markangelo_dihiansan
Active Contributor
0 Kudos

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

engswee
Active Contributor
0 Kudos

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.

abhay_aggarwal
Participant
0 Kudos

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 

engswee
Active Contributor
0 Kudos

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.

abhay_aggarwal
Participant
0 Kudos

Hi,

Adding to above conditions if 2 condition true and third is false than mapping is getting fail for one  interface how this can be handle shall I again the same condition in xpath also.

Regards,

former_member186851
Active Contributor
0 Kudos

Hello Abhay,

In the mapping you are splitting based on the logic?

abhay_aggarwal
Participant
0 Kudos

Hi Raghu,

I am splitting basis of routing.

Thx

former_member186851
Active Contributor
0 Kudos

Hello Abhay,

In the routing your splitting based on routing,

But in your case the whole data will data will go to the receiver.

So add multiple messages in the same mapping then split it.

engswee
Active Contributor
0 Kudos

Can you share screenshot of the routing condition and also the IDoc that you sent which triggered all 3 interfaces?

abhay_aggarwal
Participant
0 Kudos

Hi,

Please find the below screen shot for routing and idoc payload. I thought of using multi mapping but as I am using three different jar in operation mapping guess it will not work.

Thx