cancel
Showing results for 
Search instead for 
Did you mean: 

Handle Acknowledgements in BPM

0 Kudos

Hi,

We are receiving Application Acknowledgements in BPM. Based on the Success/Error in the Acknowledgements a respective message has to be triggered.

How can we achieve this ? Please let me know.

Regards,

Amar Nemalikanti

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

you can not dirrectly access the content of the ACK, however the BPM shows different behaviours based on the ACK status. E.g. if the ACK contains a success message the BPM will continue in its normal process, if the ACK contains a permanent error, it will either stop or go through an exception branch (provided such a branch has been defined). Have a look at the documentation: http://help.sap.com/saphelp_nw04/helpdata/en/43/65ce41ae343e2be10000000a1553f6/content.htm It doesnt"t state the above mentioned behaviour in detail but says that you need to define an exception branch.

The trickiest part is always to find out, when you will get a transient vs. as permanent error ack. If you are using ACKs with Proxies refer also to this link http://help.sap.com/saphelp_nw04/helpdata/en/29/345d3b7c32a527e10000000a114084/content.htm and this http://help.sap.com/saphelp_nw04/helpdata/en/f4/8620c6b58c422c960c53f3ed71b432/content.htm

Best regards

Christine

0 Kudos

I have read through all these documentation, but nowhere it directly talks about how to handle and process Acknowledgements from ABAP Proxies.

We have defined an exception branch in BPM but when the Acknowledgement has errors, the step in the exception does not get executed.

Is there anything else which needs to be done ?

Former Member
0 Kudos

have you checked if the state of ack is permanent or transient? It needs to have a permanent state, otherwise there is still a possibility that the error in the backend is resolved and therefore the exception branch will not be executed.

I can't check that at the moment, but each Proxy will have it's own ABAP Exception class and i think, there was a parameter somewhere in the Proxy structure that could be set to generate a permanent rather than a transient ack.

Also check if your backend system is configured to send out and really sents out ACKs. You might need to set parameter ACK_SYSTEM_FAILURE of category RUNTIME for Integration Engine Config of the backend.

Best regards

Christine

0 Kudos

We have the following code in the ABAP Proxy:

<b>method ZTESTII_DESPATCHED_DELIVERY_NO~EXECUTE_ASYNCHRONOUS.

      • **** INSERT IMPLEMENTATION HERE **** ***

data: lt_fault_return TYPE bapirettab.

*******************************************************************

*Enter code here to save Incoming ASN information in the ICH system

*******************************************************************

********************************************************************

  • If Error occurs trigger fault message

  • Trigger fault message

CALL METHOD cl_proxy_fault=>raise

EXPORTING

exception_class_name = '/SCMB/CX_BIF_DESDELVRY'

bapireturn_tab = lt_fault_return.

********************************************************************

endmethod.</b>

Former Member
0 Kudos

not to bad, however in the scenario where i got it working, i had slightly different code:


* create a message
MESSAGE ID ... TYPE ... NUMBER ...
WITH ... INTO l_text.

*raise exception
RAISE EXCEPTION TYPE <here comes the generated proxy exception>
EXPORTING
 text = l_text
 no_retry = 'X'.

COMMIT WORK.
...

I cheked various combinations but the only way i got permanent acks within a reasonable amount of time was to set the no_retry parameter of the exception (that's for 6.40, i think it has a slightly different name with 6.20) and set the Runtime Parameter as mentioned above.

Best regards

Christine