cancel
Showing results for 
Search instead for 
Did you mean: 

How to implement resend mechanism in BPM in order?

Former Member
0 Kudos

I have a requirement to implement a synchronous scenario in BPM,which doe sthe following steps

1)Recieves a transformed idoc message

2)Sends the message to a webservice synchronously

3)Waits for the response for a duration of 1 min

4)Resends it again if no response.

Could you please suggest a way to implement this processing in order in such a way that,if the idocs are sent in queued manner to the BPM,the second idoc is only sent after the complete processing of the first one is over,ie after the resend of the first idoc is completed?

Accepted Solutions (0)

Answers (4)

Answers (4)

former_member192375
Participant
0 Kudos

Hi Janice,

I would like to know if you were able to solve your BPM sync resend problem as explained. I basically have the same requirement.

Sending system sending a file (async) to a ccBPM which in turn sends the message synchronously to a SAP Standard SOA Enterprise Service "FreightOrderERPCreateRequestConfirmation_In". At this time the sync response from the Enterprise service is sent via mail to an appropriate e-mail address. This all works fine. What I now require is when the ES response is negative then the message sent should be attempted again. The reason for this is that we get temporary object locks in the ERP system which is normally resolved within milliseconds, so a retry would be appropriate. We would not like to change or enhance the ES and a resent file from the Sender is not possible.

I would appreciate any assistance you could provide in this regard.

Regards

Willie Hugo

Former Member
0 Kudos

Hi,

Does anyone have any suggestion regarding this.

For better clarity i will tell my requirement once gain.

I am implementing an idoc to synchronous web service scenario using BPM in between.The BPM have to recieve the idocs in order.This has been implemented successfully.

Now the BPM should accept each idoc,sent it to the synchronous web service,wait for the response and if no response available ,it should resend.If resend also not successful, then the other suceeding idocs should not be sent and should be stuck in queue,until we resolve the issue.Once the issue is solved,we should be able to resend the messages in the queue in the same order.

So al together,the entire processing should take place in Exactly Once in Order and the unprocessed idocs should be stuck in queue,if there is any sending or recieving issues.

I have currently implemented the BPM in such a way that i have a recieve step in loop with correltion as IDOC TYP so that it recievs all idocs to the same process instance.The same loop contains a transformation and also a sync send step with no exception handler defined to catch system sending errors.Hence the BPM will go into error status and the rest of the idocs will be stuck in the queue.And the BPM can be restarted after solving the communication issues. And all the messages will be resend.

If no sending errors,also,I suppose the synch send step willitself go into error state after it waits for the response for some seconds.Am i correct in this approach??

I would like to know your suggestions whether it will wrk fine or not.

Edited by: janice ann george on Jan 14, 2009 11:35 AM

MichalKrawczyk
Active Contributor
0 Kudos

hi,

a few questions for a start:

1. is your ERP sending system based on WAS 6.40 of higher?

(if not then you cannot do anything inside XI to provide serilization of IDOCs)

if 1 is ok then

2. can you just send IDOC to an asyn WS (restarts will happen automatically

and you don't need a BPM to do that) ?

Regards,

Michal Krawczyk

http://mypigenie.com XI/PI FAQ

Former Member
0 Kudos

1)The ERP sending system is above WAS 6.40

2)As we have a synchronous web service at one end designed by biztalk with response code from their end,we have to use a BPM.

prateek
Active Contributor
0 Kudos

As we have a synchronous web service at one end designed by biztalk with response code from their end,we have to use a BPM.

If there is no need for the response message (e.g. sending it to sender or some other system), then you may proceed with the async sceanrio. Idoc QOS is by default EO (async) so it will ensure that webservice response is not sent back to XI.

Regards,

Prateek

Former Member
0 Kudos

We need to check the response code and based on the response code we have another resent mechanism,and thats also from the same BPM.

Shabarish_Nair
Active Contributor
0 Kudos

note that Xi by default implements the resend at the adapter level. So you wouldnt have to implement a BPM.