cancel
Showing results for 
Search instead for 
Did you mean: 

How to process intermediate message without starting BPM

Former Member
0 Kudos

Hi,

I developed a NW BPM scenario which is working fine when the BPM starts ( when inbound interface receives a message) and as part of workflow intermediate message is invoked and the scenario run as expected however I have a requirement where an intermediate message ALONE should process with out starting the BPM because intermediate message triggers when a different message type inbound gets invoked

Do I need to set correlation condition which is set to true (default)

Do I need to change the design and add any extra step to process intermediate message directly when a different inbound interface get invoked

Thanks

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member186851
Active Contributor
0 Kudos

Hello Arun,

Guess in your case you should have multiple start messages,I dont think Intermediate message will be triggered without the main process start.

Former Member
0 Kudos

Correct I have 2 inbound interfaces - One to start BPM and other one to start intermediate message

My requirement is simple to process A interface async>sync>sync then process B interfaceasync>sync>sync however


- A and B interface message types are different and interface A and Interface B can be initiated any point of time on the process so BPM should make sure all the time interface A is processed get the response and then interface B should get initiated for request and response


- When A interface does not have any messages to be processes B interfaces messages should automatically processed- it should not wait for any A interface message


- The dependency between interface A and B is only when interface A has messages to be process then it should be in sequence if not interface B can process messages as an individual interface

Thanks

Former Member
0 Kudos

My requirement is simple to process A interface async>sync>async then process B interfaceasync>sync>async however


- A and B interface message types are different and interface A and Interface B can be initiated any point of time on the process so BPM should make sure all the time interface A is processed get the response and then interface B should get initiated for request and response


- When A interface does not have any messages to be processes B interfaces messages should automatically processed- it should not wait for any A interface message


- The dependency between interface A and B is only when interface A has messages to be process then it should be in sequence if not interface B can process messages as an individual interface

former_member186851
Active Contributor
0 Kudos

Then you should go with Multiple start events.

Former Member
0 Kudos

Correct but intermediate message is invoking only if BPM starts. I am in need of design where intermediate message should start irrespective of BPM start

former_member194786
Active Contributor
0 Kudos

Hi Arun,

Can I please ask how do you determine if the system A does not have any messages to process?

Is this a time dependent thing, that if a message is not received in (let's say) 2 hours, process only message from system B?

If so, you can have the start event using the message B, which then waits for message from system A to arrive or delay of 2 hours. If message is received, start processing with it, else after 2 hours start processing for message from system B. This way your sequencing will still be maintained and you can initiate the process using message from system B as well.

If the time based approach is not the mechanism, can you elaborate how is it that you confirm that there are no messages to be received from system A?

Cheers,

Sanjeev

Former Member
0 Kudos

Hi

Thank you for the reply

Yes, its time based FILE sender channel will poll every 30 minutes and if there any messages to be prcoessed then interface A messages should process first (mandatory requirement) then interface B messages should process, however if interface A does not have any messages to process and Interface messages B has some message then (BPM - Intermediate message should be invoked and then async>sync>async. This is where I am exactly stuck, need help to invoke intermediate message if BPM start in not invoked by Interface A inbound interface

you are saying start BPM with interface B but if there are no messages to process in interface B then interface A will not be invoked even though it has some messages to be processed

former_member194786
Active Contributor
0 Kudos

Hi Arun,

Apologies, I did not understand the complete requirement earlier.

Your solution would then be to start the BPM using the Java scheduler API and initiate a BPM instance every half an hour. Have 2 intermediate message steps to receive the files from both systems. And use a parallel branch with intermediate timer to stop waiting for files after 30 mins. Then determine if you received any of the files and if so process them in sequence, as required.

Here are a few useful links which explain the development of EJB to schedule BPM's:

How to start a process using BPM API | SCN

Regards,

Sanjeev.

Former Member
0 Kudos

Thanks for the reply

If i use scheduler API, How can i handle the sender file adapter polling, sender file adapter picks the files and sends it to the receiver channel ie JPR , if BPM is not started as soon as JPR receives messages then messages are lost

This is resolved by using super interface

http://sapexperts.wispubs.com/landing-pages/~/media/SAP%20Experts/Downloads/2013/July/SPJ_Reprint_A2...