cancel
Showing results for 
Search instead for 
Did you mean: 

A doubt in triggering BPM

0 Kudos

Hi All,

I have a scenario where IDocs would be posted from R3 randomly to a non SAP system.

I would need to wait for 30 mins after posting one IDoc to the non SAP System and receive a Ack from that non SAP System.

If I receive a Ack within 30 mins or if the 30 mins of time is already elaspsed, i would need to process with the next IDoc.

Or in other words, there should always be one BPM instance active at any point of time and my IDocs should wait until that BPM is freed up..

Do you guys have any idea to achieve this? Your help is highly appreciated.

Thanks

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

When you are expecting a ack message back from the sender you can specify the delay time till it has wait..

I think but i am not sure about this property ..may be you can check for the same and necessary action for the same can be handled with the help of the blocks...

put the block and define the steps needed in case of time delay time exceeds and in case of errors also..

HTH

Rajesh

0 Kudos

Hi Rajesh,

Thanks for your reply.

Actually, the only challenge i have is avoiding multiple instances of BPM when more than one IDoc is triggered from R3 to XI.

I have already designed the entire BPM, but when multiple IDocs are triggered, multiple instances of BPM are getting instantiated.

I want the IDocs to wait until the current BPM instance is closed.

Thanks..

former_member187339
Active Contributor
0 Kudos

Hi

>>I have already designed the entire BPM, but when multiple IDocs are triggered, multiple instances of BPM are getting instantiated.I want the IDocs to wait until the current BPM instance is closed.

Unfortunately this cannot be done in PI. Once a new IDoc comes the business process is started. You can try collecting Idocs in Sender R3 and send it hourly once. So all Idocs in that set will come and by little modification of BPM you can collect them and start the wait

Regards

Suraj

0 Kudos

HI Suraj,

Thanks for your reply. Actually R3 collects a batch a IDocs(of MessageType A) and sends to XI and also sends a summary IDoc of MessageType B, that contians all the IDoc numbers of type A.

Using some corrleations I need to wait until Message Type B is received .There would be n number of such Batches(each batch containing few message Types A and one Message Type B).

My BPM(which would be timed out in 2 hrs) should process each batch in sequence. Meaning that second batch should be picked by the BPM only when the first BPM is auto-timed out.Or in other words, at any point of time, only one BPM instance should be active.

Pls let me know if you have sugeestions.

thanks a lot in advance..

former_member187339
Active Contributor
0 Kudos

Hi Senthil,

Earlier we have faced a issue like this in which payext idocs needs to be collected in BPM and then only it shoudl be mapped and further processed.. For a bunch of Payext idocs we used to get 1 Eupxr idoc, so we have used the second idoc as a correlation for the collection..

But it was not a feasible approach as we used to get the payext of other bunch (if eupxr of 1st bunch got delayed). So we have used to correlate using transaction id and eupxr.. I suggest you to check this feasibility in your case.

Regards

Suraj

0 Kudos

WoW ! That was my exact requirment !!!

I need to collect the PAYEXT IDocs until the corresponding EUXPER IDoc is received by XI.

There woculd n such bunches each bunch containing many PAYEXT and one EUXPER.

However, each batch of IDocs should trigger the BPM only after a 1 hour interval.Within this 1 hr, the current active instance of BPM would be timed out.This would make sure that any point of time only one active BPM instance is available.

Any suggestions pls....

thanks,

senthil

former_member187339
Active Contributor
0 Kudos

Hi Senthil,

>>However, each batch of IDocs should trigger the BPM only after a 1 hour interval.Within this 1 hr, the current active instance of BPM would be timed out.This would make sure that any point of time only one active BPM instance is available.

Think like this a PAYEXT idoc will trigger the bpm and it will start collecting the payext idocs, not we need to make sure that all the collected payext belongs to one bundle or package (here the transaction id will be useful)...one eupxr idoc is reached we can check whether is having the same transaction id as the payext and if yes then the collection process shoudl be stopped.. this way you will have only one instance of bpm collecting at a time.. right!!!

Regards

Suraj

0 Kudos

Hi Suraj,

Suppose if the next batch of IDocs(along with EUXPER) is also triggered from R3 at the same time(i.e two batches of PAYEXT IDocs, and hence two EUXPER reaches XI) , there would be another BPM instance called, right.

But we need to call the second BPM only after 1 hour.Customer is not ready to process next batch within 1 hour time interval.

former_member187339
Active Contributor
0 Kudos

Hi Senthil,

>>But we need to call the second BPM only after 1 hour.Customer is not ready to process next batch within 1 hour time interval.

Then either the customer shoudl run the payment transaction after 1hour.. or the idocs shoudl be hold in R3 itself for an hour and then pushed out of ECC

See we cannot hold and start the bpm ...

Regards

Suraj

0 Kudos

hmm..the users wants to trigger IDoc batches in an ad-hoc manner.

ECC guys are saying that they wouldnt be able to hold the IDoc for a limited time, before pushing to XI.

I am asking them if they can schedule a batch job that wud run once in hour to send one batch in an hourly interval.

But still, with a low volume of daily IDOc batches, an hourly batch program may have performance impact in ECC.

Anyways, thanks for your help...