cancel
Showing results for 
Search instead for 
Did you mean: 

BPM: Send step with acknowledgment - Application

Former Member
0 Kudos

Hi folks,

I’ve a simple BPM with receiver(sender file)->mapping->send(IDoc receiver). The Send step is configured with the option Acknowledge type -> Application. The scenario runs well, the IDoc is successfully processed, but my BPM remains waiting with the clock icon!!! Going to sxi_monitor, in the PE details is a step waiting for an event from R/3 with the message “Waiting for an event SEND_OK_APPLICATION type CL_SWF_XI_MESSAGE. It seams waiting for an event that R/3 didn’t send… Did I miss some steps at R/3?

The idea is to receive an ack after my IDoc is successfully processed at R/3, in order to finish the BPM.

Regarding Acknowledgment type -> Application, the sap help says:

Wait for Acknowledgement

Specify whether the send step is to wait for an acknowledgement. To receive an acknowledgement in the send step, the receiver (adapter, business system, and so on) must send the corresponding acknowledgment.

Application - Specifies that the message was processed successfully by the receiver application (for example, ‘posted’).

I guess it should works, but maybe I'm missing something. Anyone knows how to work with this kind of ack at ccBPM?

Thanks in advance,

Ricardo.

Edited by: Ricardo Quintino on Jan 21, 2008 4:33 PM

Accepted Solutions (1)

Accepted Solutions (1)

bhavesh_kantilal
Active Contributor
0 Kudos

Ricardo

Please look into this thread I raised a few months back. Working on Idoc ack's and figuring them out took me sometime, but I do hope this thread can start of as the starting point.

Regards

Bhavesh

Former Member
0 Kudos

Hi all,

Thanks for your quick answers. I’ve gone through the How to guide on IDoc Ack's and what I understood is it doesn’t work so well with BPM. I mean, this ALEUD is strictly async and we should have a job scheduled to process it. So, with this approach I’ll have a BPM instance opened waiting for so long… and I don’t want it! I need to know when the first IDoc is processed successfully to process other IDoc type. I would like to have something near to sync communication… (I know IDocs are async, but maybe it’s possible to do).

Bhavesh, your thread is very useful; definitely you should write a blog But I guess it doesn’t apply to me. I’m using IDoc packing at XI, so in one message I’m sending a bundle of IDocs and I’m not sure how to handle this correlation at BPM 1xN you know? Any ideas?

Thank you all and points rewarded,

Ricardo.

bhavesh_kantilal
Active Contributor
0 Kudos

Ricardo,

You would not believe me but I had the same requirement a year back.

Infact I ended up posting a thread on this on the XI forum,

Answering your question in 2 phases,

1. R3 can send the AleAduit back to XI immediately. In the inbound processing code, all the R3 team would need to do is add the code to trigger the RBDSTATE report to trigger AleAudit to XI.

2. The problem with Correlation - Well, in your case as you are using Idoc Packaging , the solution 1 in my earlier thread would not do the trick. If you look in IDX5 in XI you will see that the Idoc Packaging trigger multiple Idoc's from XI itself but again the problem is the correlation and for this there is no straight forward solution than having some custom field in the Idoc and in the corresponding response.

But yeah overall your analysis was perfect. Idoc's are used for Asynch Communications and hence trying to achieve what we are acheiving is not always and necessarily the best solution. Proxies help in these cases, and if proxies are not possible then I guess RFC is the way to go.

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh,

Thanks for your reply

Your approaches seam to be a possibility.

But anyway, with this BPM, the same that you did, I’m having problems to handle the dependency between these 2 IDocs. I mean, the senders are both files (File to IDoc) and if I start the process with the second file, the File sender process it and in the monitor a correlation error is triggered!!! Shouldn't this second file/message wait in the queue for the first file/message triggers the BPM? Or I’m missing something?

Once again, thank you and points rewarded,

Ricardo.

bhavesh_kantilal
Active Contributor
0 Kudos

>

>start the process with the second file, the File sender process it and in the monitor a >correlation error is triggered!!! >

hmm.. The solution is to use a Fork in the BPM, that will receive both these files and then sequentially post the Idoc's one after the other.

If the concern is that you want to wait for sometime to ensure idoc posted by file 1 is processed in SAP before idoc's of File 2 you can have a wait step with a arbitary wait time that will post Idoc from Fiel 1, make BPM wait then post Idoc from File 2.

If you use a fork you will have to wait until both are available until idoc's start getting posted.

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh,

I’ve added a fork with all receivers steps (with start process checked for all) and the transformation steps for each one as well. Out of the block and the fork, I set all senders steps sequentially. But, even with this change I’m getting a correlation error in my BPM saying the correlation key field is initial. I’m using a date with yyyymmdd format as correlation, since this process only runs once per day.

Do you know what is missing here?

Once again, thanks for your help and points rewarded,

Ricardo.

bhavesh_kantilal
Active Contributor
0 Kudos

Ricardo,

Not sure what the problem can be. Before starting the next round of testing jkust make sure ytou cancel tyour Integration process from SXMB_MONI_BPE or use transaction SWWL.

PS : Do this only on Development.

Also make sure that the Datatype is the same for both the correlation fields and also when defining the COrrelation in the Correlation Editor, i.e, if the Datatype has the elements as String the Correlation should also have them as String. If Datatype is Date then the Correlation definition in the BPM should also be Date and so on

Make sure BPM has state 0 in SXI_CACHE after everychange!

Regards

Bhavesh

PPS: Points dont matter as long as questions are meaningful which definitely are this time around. Thanks!

Former Member
0 Kudos

Hi Bhavesh,

>> Also make sure that the Datatype is the same for both the correlation fields

So, you mean that the key field correlation for both Messages should use the same Data Type? I'm using different Data Types - one per each message and the fields are both strings with lenght 8. But, I guess it doesn't matter if is a date or a string I guess, because it can be considered as an ID.

Thanks for the tip, but I'm also using SWWL to delete BPM errors in order to avoid misunderstandings during next BPM instances. Also in the SXI_CACHE my BPM shows a status 0, it means ok.

Regards,

Ricardo.

Edited by: Ricardo Quintino on Jan 23, 2008 3:19 PM

bhavesh_kantilal
Active Contributor
0 Kudos

Arrgh at times I am not very clear, am I?

<DT1>

<Element1 Type= String>

</DT1>

<Dt2>

<Element2 Type= String>

</Dt2>

This is what I meant, assume you want to correlate Element1 and Element2 in DT1 and DT2.

The Element 1 and Element 2 should be of the same type and, when you define the correlation in the BPM in the Correlation Editor, the Type you give there should also be the same.

Made sense?

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh,

Now made sense And is just what I have in my BPM.

I'll check it further and as soon as I've this issue cleared I come back to give you some feedback.

Thanks for all and cheers,

Ricardo.

Former Member
0 Kudos

Hi guys,

Sorry the delay, but it is fixed! I had one correlation key field wrong… duh!

Now I’m dealing with other problem, but I’ll open a new thread for that.

Once again, thank you all for all your helpful tips.

Ricardo.

Edited by: Ricardo Quintino on Jan 30, 2008 3:02 PM

Answers (3)

Answers (3)

ravi_raman2
Active Contributor
0 Kudos

Ricardo,

Yes the bpm will wait......since you have requested an acknowledgement but its not been recieved, you can bypass it if you want to finish the scenario, Then work on

the aleaud part, for which as others have mentioned you need to set up idoc acknowledgements..this link might be useful

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/903a0abc-e56e-2910-51a8-9dc616df...

Regards

Ravi Raman

PS: number of replies is directly proportional to points awarded...!!!

Former Member
0 Kudos

HI Ricardo,

if my understanding is correct then your BPM is wainting for Acknowledgement from R/3.

is the acknowledgements configured at R/3 for that idoc type?

what ever you did at XI is correct.

Regards,

Sukarna

Former Member
0 Kudos

Ricardo:

Did you configure the ALE audits for IDOC. As far as I know, IDOC acknowledgments can be triggered only if you configure ALE audits.. Please go through " How to: Handle Acknowledgments for IDOC" document