cancel
Showing results for 
Search instead for 
Did you mean: 

Capturing the Transport Acknowledgment

Former Member
0 Kudos

I am sending a PO from a legacy System (File Adapter /)Asynchronous and from XI we are sending to a Vendor using (Asynchronous/HTTP Adapter).

I am using a BPM to do the above process. In my Send Step to Vendor, I have the Transport Acknowldgement set. I am trying to catch the Bad Return code, if the Vendor Server is Down or Vendor Server Gateway timed out or any other problems.

How should I move further?

My BPM looks like Receive Step (Receive a message from File) & Send step (Transport Acknowledgment set, Send the message to Vendor), both of the above steps are inside a Block Step?

Now if I get a bad return code, I want to capture that and I want to attach that payload of error message and need to send it thru a mail. Please note, I know how to configure a mail adapter and I have already executed that.

Thanks.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Please help me.

Former Member
0 Kudos

Hi Karen,

I am not sure if you will be able to capture the return code from the transport acknowldgement in a send step.

what i have observerd so far is that the step step just waits till it receives the transport acknowledgement.

May be you could wait and see if message goes into error status or throws an exception after all the retries.

Assuming it throws an exception, then you can capture this using exception branch and send a mail using mail adpter or raise alerts via e-mail.

If it does'nt throw any exception after all the retries then you can have a deadline branch(after waiting for a certain amount of time) to raise an alert via e-mail or send a mail using mail adapter to handle such scenario manually.

So just see if your send step throes any exception after all retries.

This is just my opinion on this issue and hope i am not confusing you )

Just try this or wait for other developers experiences and ideas on this.

Regards

Anand

Former Member
0 Kudos

Thanks Anand, you have cleared my Major doubt, so for I was assuming that we can trap the Transport Acknowledgement, so your point clarified me thats not possible. Thanks for that.

Now coming to the Exception Branch , When I initially place my Block, in the block properties I am defining an Exception as FAULT.

And inside the exception branch I have a Control step. The control Step Properties are like this

Action : Throw Exception

Exception: FAULT

This is how I have coded. I know still I haven't gotten the logic of catching exeption. Could you please tell me how should I move from my above scenario. Do you have any Blogs that will help me to learn setting the Exception Branch.

Thanks a bunch.

Former Member
0 Kudos

Hi Karen,

As I said >> I am not sure if you will be able to capture the return code from the transport acknowldgement in a send step.

Just wait for other developers excperiences and ideas on this to see if there is some way we can capture this.

Meanwhile you can just check and try the differenet approaches i had suggested based on wheather send step throws any exception or not after all retries.

And regarding an exception handling Place your send step in a block , just choose the exception 'FAULT' as well in you send step properties i.e Exceptions->System Error. whenever your send step has any system errors the exception FAULT will be thrown and the control goes to exception branch. In the exception branch all the steps specified (like control step which can either raise an alert, or throw exception or cancel the process or any other step).

Also check these links

http://help.sap.com/saphelp_nw04/helpdata/en/33/4a773f12f14a18e10000000a114084/content.htm

http://help.sap.com/saphelp_nw04/helpdata/en/bb/e1283f2bbad036e10000000a114084/content.htm

hope this helps

Regards

Anand

Message was edited by: Anand Torgal

Former Member
0 Kudos

Thanks Anand

I Have defined a Block Step. In Exceptions I am saying "HTTPError"

In My Send Step Exceptions--> SystemError --> I am selecting "HTTPError"

I Inserted an Exception Branch for that above Block and dropped a Control Step . Action ---> Throw Exception and Exception, when I click the dropdown I am not seeing the HTTPError that I have defined for the block.

On the other hand when I define a Deadline branch, I see the HTTPErro, what exactly I am missing here.

Former Member
0 Kudos

Karen,

I guess, your Block would look something like this.

1. Block with Exception(Property) "HTTPError".

2. Normal Branch with the send step and Exception(Property) "HTTPError".

3. Deadline Branch with the control step and Exception(Property) "HTTPError".

4. Exception Branch with the control step and property 'raise alert'.

So whenever an exception is thrown in a send step of normal branch or an timeout occurs in an dead line branch then an exception "HTTPError" is thrown and the control will be given to the appropriate exception branch. Once the control is given to exception branch you can raise an alert or send an email etc...

>>I Inserted an Exception Branch for that above Block and dropped a Control Step . Action ---> Throw Exception and Exception, when I click the dropdown I am not seeing the HTTPError that I have defined for the block.

That's correct, excption defined for a blcok will be visible only in normal path and the deadline branch..

Exception branch is meant to handle an exception from normal branch and the deadline branch. In case your scenario needs to raise an exception in the exception branch using the contorl step the you need to put your control step in another block and define another different exception for the same. But i guess currently you do not need such scenario.

>>On the other hand when I define a Deadline branch, I see the HTTPErro, what exactly I am missing here.

I think my explnation for the first question answers this..

Hope this helps..

Regards

Anand