cancel
Showing results for 
Search instead for 
Did you mean: 

Is this possible ?????

inigo_sacramento
Participant
0 Kudos

Hi.

My boss asked me for an scenario.

An XML file is passed to a BPM. The BPM has 4 clear steps.

1) It must check information in RFC vía BAPI. If XML info is OK, the process will continue. Else, it will stop.

2) Once info has been checked, i have to map part of the XML in order to create vendors via IDOC. Before continue with step 3, XI must 'sleep' until it receives an aknowledgment that all the IDOCS had been procesed in R3. If an error occurs in only 1 IDOC, the process must stop.

3) Once BPM knows that all the previous IDOCs had been procesed, it has to do a new mapping in order to create more IDOCS (of different type). XI must sleep again until all the IDOCS had been processed. Also, in order to continue with step four, XI must be sleeping until IDOCS has been processed.

4) Step four will create more IDOCS (of different types).

the question is?

while BPM is sleeping, can i start 'something' that awakes the BPM that is sleeping?

is correct to be checking in the BPM via LOOPs if R3 tables had been updated?

Thanks.

Accepted Solutions (1)

Accepted Solutions (1)

udo_martens
Active Contributor
0 Kudos

Hi inigo,

>while BPM is sleeping, can i start 'something' that awakes the BPM that is sleeping?

Yes, you create for sleeping a exception branch, which wil not be executed in case of receiving message.

>is correct to be checking in the BPM via LOOPs if R3 tables had been updated?

Yes, why not?

Regards, Udo

inigo_sacramento
Participant
0 Kudos

Hi Udo.

First of all, i don't know why i can't assign you 6 points. I'll try it later.

Ok, i know that i can have a loop in my bpm with a timer that wakes up every 5 minutes, check some info in R3 in order to end that loop. I don't like to much this solution because imagine that there is a problem in R3 that never creates the info that BPM is waiting for. This BPM will never stop.

The other thing is if i can do the same with the loop but this loop isn't going to be checking nothing in R3. There must be someone that will make something in r3 (finish the process of some IDOC) and this event will wake up the sleeping BPM. Is this possible? How can i do it?

thanks Udo.

MichalKrawczyk
Active Contributor
0 Kudos

hi,

>>>>finish the process of some IDOC) and this event will wake up the sleeping BPM. Is this possible? How can i do it?

in XI this is called Correlation

you can do all of your requirements with the use of correlations they are the ones that will wake yur bpm up

you just have to have a unique number on which you can base your correlation

with your scenario (many idocs) it won't be that easy to confirm them but it should be possible

if not you can always bundle all your idocs

in one structure (RFC, ABAP Proxy) and send it (and confirm) as one - this way the correlation will be much easier

Regards,

michal

udo_martens
Active Contributor
0 Kudos

Hi inigo,

>This BPM will never stop

You can create for every situation a exception branch to avoid that. You can also change global variables and ask for their value. So you have the main possibilities like in a real program.

The second part of your message is not easy to understand for me.

You create an exception branch where a timeout is called. I a special message receives the process before, the e-branch wont be executed.

Regards, Udo

Answers (0)