cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple Operation Mapping based on conditions

sugata_bagchi2
Active Contributor
0 Kudos

Hi Experts,

I have a SOAP to RFC Async Scenario. Here I am receiving  messages in a batch mode e.g- in one single XI message there are multiple records.

+<row>

+<row>

+<row>

+<row>

+<row>

+<row>

.

.

.

.

+<row>

Something like the above one.

Now I have created two  operation mappings OM1 and OM2 and trying to execute them based on certain conditions in this  <row> structure.

Now, suppose if the first row is validating  the first condition and the  4rth row is validating the 2nd condition then, will the OM be executed as per the order mentioned ?

Say, in this case for 2nd row OM1 and 4rth row OM2.

Please help in this regard.

Thanks

Sugata B Majumder

Accepted Solutions (1)

Accepted Solutions (1)

sugata_bagchi2
Active Contributor
0 Kudos

Hi Baskar and Raja Sekhar,

You are right it is not working in the  Interface Det. level.

I have decided to split the entire scenario in two parts-

SOAP to File and then File to RFC.

in first case the SOAP to File will be a one to one mapping and and file will be placed in the AL11 path.

now using FCC in the second scenario  I will restrict the RecordSet per message to 1.

So, if there are 5 rows in the actual message from SOAP it will be split-ed in 5 XI messages and then for each of them that condition based Interface determination will be executed,

But I need one help to configure the FCC in the sender adapter for the  second scenario.

The input file will be XML only having multiple rows and I one to send it in XML format but one row per message.

I am going for this option because the mapping is huge and damn complex... can not rework with mapping.

Please let me know the parameters for sender FCC.

Thanks

Sugata

rajasekhar_reddy14
Active Contributor
0 Kudos

Hi ,

I dont prefer your design, adding one more extra mapping will solve your problem.

Solution:

1)Write a  condition in Interface determination.

2)Create one more addtional message mapping to sort the records .

this mapping should have source message has a source and target about you have to write mapping loigc to supress records.

Like same way one more mapping required in other operation mapping. that is how i designed my interfaces in my current project it worked.

Even i deal with 5000 records in one message but my logic working.

explore this option.

sugata_bagchi2
Active Contributor
0 Kudos

Hi Raja Sekhar,

Could you please explain it a bit more?  I have to maintain more than 3 -4 conditions for 1st OM

and 2 conditions for the 2nd OM.

Request you to please explain in little detail.

Thanks

Sugata

rajasekhar_reddy14
Active Contributor
0 Kudos

Hi ,

You have a condition logic to indetify the which mapping to execute , write a same condition in Interface determination .

2)Develop one more mapping  for each operation mapping , in this case mapping is between source to source message and write  same condition in for root node (interface determination condition) and reamaining fields are one to one.

The output of mapping will be only condition satisfied records. second level mapping is already developed mapping  .

Eg:

I developed similar kind of interface it is File to IDoc, the File record may have multiples records max 5000 but based on payload i have to call two different IDocs.

So what i did was written a same condition in Interface determiantion and developed 2 levels of mapping . first level mapping filter only condition satisfied records .

Hope you are clear.

Regards,

Raj

Answers (3)

Answers (3)

Former Member
0 Kudos

To answer your original question, if the message satisfies both conditions (as is the case in your example, because PI only checks if any of the rows satisfies the condition), both operation mappings will be called, each with the full message.

CSY

baskar_gopalakrishnan2
Active Contributor
0 Kudos

I would recommend to do the condition in the mapping if that is feasible for the requirement. Doing OM level might not be helpful.

rajasekhar_reddy14
Active Contributor
0 Kudos

Hi ,

1)Write a condition in INterface determination but it will not gaurantee 100%(as per my experince).

2)Write a condition in mapping also to supress records.

This solution works , in my current project maintaining logic in both the cases working.

Regards,

Raj