cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with BPM where two send steps receive the same input. Help!

gopalkrishna_baliga
Participant
0 Kudos

Hi Experts,

I am facing a complicated case.

I have the following scenario:

Input File data -> Validate file data against SAP table using RFC FM from SAP system 'A'-> Send the FM response to two steps in parallel.

First step will insert the response of RFC FM into custom table using another RFC FM in SAP system 'B.

Second step will Send the same response of RFC validation FM as Email using email adapter.

How to create BPM Integration process for this scenario?

If you see above, the response of validation FM has to be sent to two receivers.

I have tried like this:

Recv Step (gets the file data) -> Send Step for validation RFC FM (Sync)

-> Send Step for sending email(SendEmail_Async_Abstract)

---FORK

|-> Send Step for inserting response of validation RFC FM to custom table using another RFC call(InsertRes_Async_Abstract)

I have created two container variables.

1. SendEmail TYPE SendEmail_Async_Abstract

2. InsertRes TYPE InsertRes_Async_Abstract

In my Sync step prior to FORK, I have given the "Response Message" = SendEmail.

When I run the XI scenario, only Email is sent and the second branch of the FORK is not getting executed. I get the message in SXI_CACHE saying InsertRes contains no value.

Both the interfaces SendEmail_Async_Abstract and InsertRes_Async_Abstract contain the same message type.

I even tried to use container opertaion to populate InsertRes. In this, I gave the "target" = InsertRes

in the "Operation" = Assign and "Expression" = SendEmail.

This gives me an error saying InsertRes and SendEmail are not compatible.

What am I doing wrong? Please help me!

Thanks

Gopal

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

Make sure that the receive step is outside the fork.

So that both the branches receive the message.

Regards,

Smitha.

moorthy
Active Contributor
0 Kudos

Hi,

Just check the properties of Fork Step in BPM. Make the necessary branch equals to 2. Then check it. This time, this may not reflect in the runtime. After executing, if it is not reflected in SXMB_MONI->PE->Technical details (workflow log) then go and check in the SXI_CACHE for the Active version of BPM.

Also , no need of fork here. You can try 2 send steps in sequence. ( provided it is not required in parallel)

Hope this helps,

Regards,

Moorthy

gopalkrishna_baliga
Participant
0 Kudos

Hi Moorthy,

What is this PE? I can't find this in SXMB_MONI?

moorthy
Active Contributor
0 Kudos

PE is Process Engine, it will be in your SXMB_MONI and there will be a column called Outbound. There you can see.

Easier one is go to SXMB_MONI and go to your message and then keep going on right . Then you can see , all the sender service, interface,namespace, Receiver service/interface ....there you can see this. Provided BPM is trigered. Also you can view this from SXMB_MONI_BPE,

Thanks

STALANKI
Active Contributor
0 Kudos

donot need to use a bpm for this.

use jco for validating file or getting response from system a and map the result to rfc,email using 2 message mappingz and two recv determinations .