on 02-15-2010 5:19 PM
hi All,
I have to create an BPM scnario to get acknowledgement from receiver file adapter.
Steps created in BPM are:
receive -> send (Transport Acknowledgement is selected) as per blog /people/michal.krawczyk2/blog/2006/06/22/xi-playing-with-the-file-adapters-acknowledgments
Now what i want to do is whenever any type of acknowledgement is obtained i need to send success or failure message to proxy or JDBC(have alreay seen how to request for acknowledgements through client proxy).
What i need to do in order to achieve this scenario?
Thanks,
Mayank
Now what i want to do is whenever any type of acknowledgement is obtained i need to send success or failure message
to proxy or JDBC(have alreay seen how to request for acknowledgements through client proxy)
The negative acknowledgement can be obtained using an Exception Branch....in this branch maintain the logic that should take place in case of failure....you should also have a Deadline Branch and a Control Step (Cancel Process...in Exception Branch) so that after error handling the process ends.
Now after the above block place the send step that will happen when the ACK reports success.
Regards,
Abhishek.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
What will be the input to that send step?
You mentioned that success and failure both should be sent to the source system.
The logic in Exception Branch will take care of -ve ACK (assuming you will implement appropriate logic)
For +ve ACK you have to use the above send step, which will be executed once the control gets out of the BLOCK indicating everything was successful, the input to this Send Step will be the success message that you want to send.
Regards,
Abhishek.
hi Abhishek,
Right now i am looking at only +ve acknowledgement..
So will steps in BPM look like:
recieve -> send (Transport Acknowledgement) -> send(back to source)
"the input to this Send Step will be the success message that you want to send."
As there is no MT visible for Acknowledgement recieved.
how this success message will be populated with values?
Thanks,
Mayank
Right now i am looking at only +ve acknowledgement
Even then you have to implement a BLOCK with Excdption Branch and Deadline Branch....without these you wont be able to say whether the send has been successful or failure....now in youe Exception Branch just have a control step with Cancel Process...so that the send step does not get executed in case of failure and the process stops before sending success message
As there is no MT visible for Acknowledgement recieved
You have to create a separate DT and then use a Transformation step before the Send Step (or Interface Mapping in Interface Determination)....the job of this Mapping will be to populate the MT with required success message.
Regards,
Abhishek.
But in Exception Branch, what should i give in Exception Handler?
Click on the Block....in the properties window you will find an option to define an Exception Handler....give any name (even Mayank will also do)....once this is done click on the Exception Branch...in the property window select the above defined exception handler.
Regards,
Abhishek.
hi,
We have enabled automatic retry for async failed interfaces after every 5 minutes three times, i have selected deadline branch inside block with duration of 3 minutes and have an control step in deadline branch, in control step i have given cancel process. But still i am getting negative acknowledgement 4 times. It looks like deadline branch is not working properly.
What can be the cause of such error?
Thanks,
Mayank
Edited by: Mayank Gupta on Feb 23, 2010 6:33 AM
We have enabled automatic retry for async failed interfaces after every 5 minutes three times, i have selected deadline
branch inside block with duration of 3 minutes
Usually the dealine time limit should be same or greater than the total time of all the retries (by default the retry is done thrice at an interval of 5 mins)....in the deadline branch throw an Exception and then in the Exception Branch cath the same and cancel the process....the same desiign approach has been described in Michal's blog.
Regards,
Abhishek.
>
> What if duration in deadline branch is less than total time of all retries? will deadline branch work in this case.
Yes, it will work....I used the word usually to indicate that it would be better if we allow the adapter to go through the number of retries and then raise an exception.
Let us take an example, Deadline Time is 10 mins and the retry time (total) is 15 mins....now suppose if the message delivery becomes a success in the third attempt i.e. between 11 - 15 min, then our existing design would have already raise an excdptiona nd cancelled the process....may keep the support person wondering why the BPM raised an exception when the message was delivered?
Regards,
Abhishek.
hi,
If we are getting exception for some reason and error text as visible in moni for example is:
<SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: An error occurred while retrieving an FTP connection from the connection pool: com.sap.aii.af.lib.util.concurrent.ResourcePoolException: Unable to create new pooled resource: ConnectException: Connection timed out: connect</SAP:AdditionalText>
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
Is it possible to capture Additional Text somewhere in BPM, so that in case if deadline limit is exceeded we can send exception text back to the sender?
thanks.
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.