Exception handling of Transport acknowledgement in asynchronous send in BPM

HI,
A silly question, but your help would be greatly appreciated..
- I have a asynch send step in a BPM for sending data to the target system through RFC
- It has acknoweledgement property of this send step is set to transport acknowledgement
- The exception property of this send step is set to throw a 'RFCException'
- This send step is inside a block
- This block also has an Exception branch which catches this 'RFCException'
- now my RFC channel failed for some known reason, but the flow never went into the Exception branch
IS this behaviour of the 'transport acknowledgement' property of an asynch send step in BPM expected ?
What should I take care so that if my RFC receiver channel throws an exception, the flow of my BPM goes to the exception branch ??

- now my RFC channel failed for some known reason, but the flow never went into the Exception branch
IS this behaviour of the 'transport acknowledgement' property of an asynch send step in BPM expected ?
What should I take care so that if my RFC receiver channel throws an exception, the flow of my BPM goes to the exception
branch ??
When an exception is caught by the Transport Acknowledgement it will trigger the Exception branch (if the send step is defined inside a Block with an Exception Branch)
I think you have not defined (and then assigned) a proper Exception Handler for the Block.
Click on the Block and define an Exception Handler......click on the Exception Branch and then select the Exception Handler from the dropdown......if this is not done then the Exception Branch wont be executed.....perform a check on your BPM in IR (using F7) you may get some warnings.
Regards,
Abhishek.

Similar Messages

  • Transport Acknowledgement in an Ansynchronous Send Step in BPM

    I tried this scenario /people/michal.krawczyk2/blog/2006/06/22/xi-playing-with-the-file-adapters-acknowledgments for a file acknowledgement in an ansynchronous send step in BPM and it worked fine.
    This made me think of something else...
    This SAP help site http://help.sap.com/saphelp_nw04/helpdata/en/43/65ce41ae343e2be10000000a1553f6/content.htm
    says -  for a "Permanent negative acknowledgment" the "Send step triggers system error for which you can define a specific exception handling."
    I understood this as saying "If the tartget file is not placed, a system error is thrown for which we can write our own exception handling"
    In the scenario explained in the blog the 'deadline branch' was made to wait for a few miutes and once exceeded, made to throw an exception "NegAck" which is handled in the "Exception handler branch"
    So what i tried was, I removed the 'deadline branch' and retained only the 'exception handler branch' and made the 'send step' to throw a system error "NegAck" so that if the "Send Step" recieves a negative acknowledgement, it would throw this error "NegAck" which I have handled in the "Exception Handler  Branch"
    However, this did not work. Can anyone kindly explain where was my mistake?

    Dear Bharath,
    hmmm nice question...
    The answer to this is....whenever you configure a async send step with "transport ack" it will never go into error..
    the send step will either get a positive ack(if the file reaches correctly) or a negative ack(if there is some problem like password expires) but it will will never go into error and hence directly the control will never go to exception handler block...
    consider the cases :
    1. Async send step with transport ack and file reaches correctly : +ve ack is generated and BPM will stop
    2. Async send step with transport ack and passowrd expires : the send step will not go in error but you will get error in adapter engine(RWB) so it will keep on restarting and corresponding negative ack will keep on getting generated but here also the send step has not gone to error but the message in AE has gone into error and hence control will not pass directly to exception handler block....what you can do is keep a timelimit thru deadline branch so that after that much time control goes to exception branch...
    This should solve your problem...
    do not forget to close the thread marking useful answers after your query is resolved
    Edited by: Tarang Shah on Mar 30, 2009 4:10 PM

  • Sync Send without a Exception Handler ??

    hi..
    Can a synchronous send step work with out an exception handler..??
    im gettin my messages and combinin then n sendin via the sync send to call rfc , followeed by a send back to my server..
    at this very stage it expects me to define a handler for the same for the sync send.
    regards,
    vishal

    hi bhavesh..
    im doin the same...
    Mode : Synch
    Request Message
    Response Message
    Receiver From : Send Context
    any reason fr it dmandin fr an exception handler../
    it tch details i see the error as "no handler defined for this system exception"..
    any inputs..

  • Sending a Message  in Exception Handler

    Is it possible to have a Send Step in an Exception Handler? How can I instantiate the Interface assigned to the Send step?
    Regards
    Mike

    I am calling an RFc synchrnously and when the Response comes in that part works fine as you can build an Abstract Interface for the Response which will be your out put for the BPM when everything went well.
    But in case of an Exception from the RFC for the Fault Message type you cannot define an Abstract Interface.
    I got this around by out putting the Request which is still avaialble in the BPM and did an interface mapping using the Request Abstract Interface. Manipulated the mapping to get the required result.
    Let me know if you can do some other way.

  • Capturing the Transport Acknowledgment

    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.

    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

  • BPM - triggering process based on Transport Acknowledgement

    hello everyone, have a theoretical type question i would like some advice on.
    scenario --> IDOC from R/3, transformed and sent to file adapter.  In the BPM, i have defined the send step to the file adapter as being asynchronous, but have specified an acknowledgement type of 'transport' to be returned. 
    As the step is asynchronous and is thus persisted i cannot trigger an exception if the send does not occur.  Question -is it possible to make subsequent steps dependent on the success of the transport acknowledgement being returned from the send step?
    thanks in advance for any light you can shed on this topic!
    /david

    hi,
    we can have the header file as header and item file as item. basically based on our convenient we can suggest the file name to the sender. so scheme can be anything that fits our requirement

  • Problem in Transport Acknowledgements

    Hi
    I have designed a Sync-Async scenario wherein the Transport acknowledgement from File adapter(async) is used as basis for determining how the dummy response to Sync sender interface would be..
    Now if i get a FTP access error/ File writing error in the file adapter, i would like the response structure to contain an error message.
    But i find this not getting simulated..Even if i have an error in file adapter, the Send Step doesn't throw a System Error(Exception),so that we can handle response accordingly.
    How do we handle this scenario???? Pls help me with your suggestions..
    Message was edited by: Sriram Vasudevan

    Hi,
    Generally this problem comes when size of lock table exceeds..
    check below lnik:
    http://help.sap.com/saphelp_nw70/helpdata/EN/44/5efc11f3893672e10000000a114a6b/content.htm
    Thanks
    Sunny

  • BPM Exception Handling

    I am trying to test my Deadline and Exception handling.But it is not at all working. I will explain what I have done, please guide me where I am going wrong.
    1) Block Step. Properties --- Exception == ERROR1
    2)Switch Step . Success Branch . Send Step. with a Transport Response. And I am sending to the Mail adapter. And in directory I have provided the WRONG URL FOR THIS Mail.
          Otherwsie Branch. Send step, sending to a File.
    3)Dead Lock Branch : Having a Control Step.
                  Properties
                   Action : Throw Exception
                   Exception: ERROR1
    4) Exception Branch.
               Properties
                    Exception Handler : ERROR1
          Send Step : Send a Message to  a File (
    Result
    I am Seeing a Clock in my SXMB_MONI OUTBOUND_Status column, because I am expecting a TRANSPOT Response, and this going to never happen, so I thought the Deadline monitor will wakeup after 1 minute interval and my Exception branch has to Trigger, but it has never triggered my Deadline branch aswell as my Exception Branch.
    WE are in XI SP 12.  We dont have CCMS installed yet, even ALERT management is not installed.
    Please guide me.
    Thanks.

    Hi Anand,
    I looked into the Transaction SWI2_DEAD and I dont see any listings there.
    I am executing 1 Minute deadline Monitoring and from here firing an exception Branch, for my Asynchronous Scenario.
    So definitely after a minute , the DeadLine Branch should have been fired. But it didnot take place.
    In the mean time I have located an OSS notes OSS note 829921 And I am awaiting my Basis team to apply this note.
    symptom
    If the execution of an asynchronous method ends with a "system error" or "application error", the work item is not set to the 'ERROR' status.
    Other terms
    Reason and Prerequisites
    This problem is caused by a program error.
    Solution
    Implement the correction instructions.
    Note the following manual changes that must be implemented BEFORE you use SNOTE to implement the corrections:
    1. Make sure that the SET_EXECUTION_INTERRUPTED method of the CL_SWF_RUN_RESULT class has the following parameters:
    a) IM_CODE, Importing, Optional, Type SWO_RETURN, default Value 0000
    b) IM_ERRORTYPE, Importing, Optional, Type SWO_ERRTYP, Default Value 0
    Note the following manual changes, which you must carry out AFTER you have implemented the corrections:
    1. The M_EXECUTION_INTERRUPTED attribute type of the CL_SWF_RUN_RESULT class must be changed to EXECUTION_INTERRUPTED.

  • BPM Transport Acknowledgement

    Hi
    I am doing the scenario JDBC-IDOC-JDBC.
    retrieve the data from JDBC and generate IDOC for each record and send to ECC.
    and then i need to update the status in JDBC for those records that are successfully transfered to ECC..
    if some records(each record in JDBC = one IDOC) i mean IDOC got failed to reach ECC that particular record we should not update in JDBC.
    For this i am using  Transport Acknowledgement option in async send step and send the IDOC to ECC.after succefull transfer of IDOC to ECC..,my further steps need to execute( here JDBC Update mapping and send steps)
    question:
    if send step receives the +ve ACK then the further steps will execute normally?
    In BPM if the adapter sends a negative ACK (-ve) can we stop BPM and cancel that process using exception handler??(with out deadline branch)i no need to wait for any time period.
    we have an option "system error" in send step..will it trigger for negative ack?? if not for what purpose we can use that??
    Thanks

    then i think it Will not execute next steps
    It depends on what Error handling you use in the BPM....suppose you wrap your Send step in a Block with Exception Branch and either leave the Exception Branch Empty or include a Throw Alert step then the further steps will be executed in the BPM.
    If you include Cancel Process Control Step then the BPM will stop when it gets an exception.
    what's the purpose of using the Transport ack.??
    Transport Ack is basically used in those scenarios where you want to confirm that the message has been delivered by SAP XI/ PI succuessfully to the end system....not to confirm whether the message has been processed by the end system.
    Mostly used with FILE (not compulsory though) and in similar scenarios where the end system/ protocol does not support ACK.
    terminate process as u told will terminate all the 50 transactions or only that particuar instance and remaining will execute normally??
    Terminate process will be executed when the BPM reports any error and is catched by the the Exception Branch having the relevant Control Step....this will cause the BPM to stop there itself.
    No further steps will be executed.

  • Integration Process exception handling & alerts, Java

    Hello,
    I would like to enhance my basic scenarios fool proof and with as much Java as possible.
    I have set up several asynchronous and synchronous File to SOAP transfers between systems A and B
    using PI70 including my own Java mapping classes and PI's AF_Modules beans. They work just fine.
    I have not designed my own Integration Processes yet, so execution is based on channel settings and availability timing.
    I have learned this aproach may be exposed to general faults resulting manual monitoring and repairing.
    For example server problems at receiver side can result data losses as sender channel just keeps removing source
    files like normally, as the process would be better to just stop right there and alert or something.
    My question is, is the "Enterprise services Builders" Integration Process & Graphical definition screen the one and only tool to 
    customize whole process exception handling and alerts in PI, and Java is not an option?
    Appreciate your advice on this.
    Kind regards m

    Hi m,
    Strange Name
    >>I have learned this aproach may be exposed to general faults resulting manual monitoring and repairing. For example server problems at receiver side can result data losses as sender channel just keeps removing source  files like normally, as the process would be better to just stop right there and alert or something.
    If you are looking to handle this particular scenario, then we have the alert mechanism and CCMS monitoring. There you will come to know whether the end system down or not.
    Also in addition to this you can write your own java (in message mapping, as modules, java mapping) /abap code (as abap mapping, user exit in standard functions etc) for providing more details in error scenarios. But you need to validate whether the maintenance/development cost for the code is justified in your scenarios
    Regards
    Suraj

  • File adapter transport acknowledgement in Integration Process

    Hi,
        I am working on a very complex integration process. In one of its part, a message is sent to the File Receiver and a Transport Acknowledgement is requested. From what I read, I still don't get it how to check in the integration process if everything was fine.
        Do I need to place an exception branch in the corresponding block and if the send step triggers an exception, that means that the acknowledgement wasn't received? Or do I need to make a receive step with a deadline of around 30-60 secs and there wait for the acknowledgment, triggering the exception here?
        Basically I would like to implement something like If there's an error do a specific mapping, if it went through then do a different mapping.Thanks in advance for your suggestions.
    Regards,
    George

    Basically I would like to implement something like If there's an error do a specific mapping, if it went through then do a different mapping.
    In that case you shouldn't think of Deadline branch. Use the exception branch inside block and there you may specify another mapping condition.
    Regards,
    Prateek

  • Transport Acknowledgement for HTTP adapter

    Hi all,
    I have the following Integration Process (BPM) defined.
    I receive a RFC Message from R/3 in XI. The RFC message is put into a BPM scenario. It then waits for a second message to arrive which belongs to the first. Then i have to send the two messages in order (first the 1st message, then the second). These messages are both Asynchron. To make sure the messages are sent in correct order, i put the send steps in separate blocks and i request a transport acknowledgement. The message is written with a file adapter to a directory. This is on the testing environment and (as far as i can see now) working correct, because the send step is waiting for the acknowledgement and then going to process the second message.
    Now in the production system we do not send the message to a file, but to another system using the HTTP adapter. I cannot test this in any other system, so my question is: <b>Can i use the Transport Acknowledgement with the HTTP adapter in the production system to make sure the messages are delivered in correct order???</b>
    Or do i have to do other things?
    Thanks in advance!
    Marcel Leeraar

    Hi,
    Considering that HTTP adapters also support transport ack's, I dont think this should be a problem and it should work just as it did with file adapters.
    http://help.sap.com/saphelp_nw04/helpdata/en/0d/5ab43b274a960de10000000a114084/content.htm
    Regards
    Bhavesh

  • Cache Synchronization Exception Handling

    I am setting up cache synchronization on WebLogic using JMS. I am looking into writing an exception handler to handle cache synchronization exceptions. The following statement in the documentation caught my attention:
    “As mentioned above, the TopLink cache does not begin the merge or update process until the database transaction has already been committed. This is quite beneficial in that it avoids letting uncommitted data into the shared cache, but should be recognized where transactional synchronization is considered. In cases where a merge may have failed there is no way to roll back the changes made to the database (although it is questionable whether this would be a good idea in any case). As a consequence, failures during remote merging can leave the cache in an inconsistent state. This makes it important to handle any errors that occur by performing cache normalization actions, such as resetting the cache, or even the server.”
    Suppose we have two app server instances, A and B. Instance A commits a change and sends the update notification to instance B. The merge fails on instance B with an optimistic lock exception.
    - I assume that a CacheSynchronizationException will be thrown. Will it be thrown on instance A, B, or both?
    - At this point which cache is inconsistent; A, B, or both?
    - The documentation suggests resetting the cache, but this seems a rather severe way of dealing with the problem. Is it feasible / effective to just refresh the objects in the change set of the CacheSynchronizationException?
    This is a simple exception handler. On receiving a CacheSynchronizationException it resets the cache and re-throws the exception.
    class ToplinkExceptionHandler implements ExceptionHandler{
         public Object handleException(RuntimeException exception) throws DatabaseException{
              if(exception instanceof CacheSynchronizationException){){
                   myServerSession.initializeAllIdentityMaps();
                   throw exception;
              }else{
                   throw exception;
    - Is this approach effective?
    - Once the cache is reset should the exception be re-thrown or should I consider it handled and swallow it? If I do swallow it what should the method return?
    Any advice would be appreciated.

    I had to fix a few errors (in our code) before getting it working. Since I have multiple sessions, I had to specify different multicast ports (actually I used a different multicast address itself) for each of the sessions. I was not setting the announcement delay on one of the sesssions and that was why it was announcing immediately upon coming up. Also I had to explicitly set asynchronous to false because it is true by default.
    BTW, we are not using CMP (entity beans) rather Java Objects. Our deployment has two Apache/Tomcat machines and two WebLogic machines. The WebLogic servers are in a round-robin cluster. The cache synchronization seems to be working fine for this configuration.
    Thanks.
    Anand R

  • File Receiver adapter Transport acknowledgement

    Hi All,
      I  have a send step in my BPM which send a file to one FTP server. I have enable transport ackowledgmnet on this send step to make sure file sent succesfully to FTP. Based on succesful acknowledgmet ( positive) i am  calling one stored procedure to update the status of that file ( Saying it is sucess).
      If it is negative ackowledgment deadlind step is defined. ( after 17 mins....idellay 3 X5=15 3 retries every 5 mins and + 2  so 17 mins).
    Now what happens is , in some cases  positive ackowledgment was not received eventhough file was sent within a seconds. Bcz of this update to second application is not happning properly.
    When i checked the audit logs for success and failed ones i could see some differences,
    Success (Positive Ack)
    2010-02-10 13:54:03 Success Start converting XML document content to plain text
    2010-02-10 13:54:03 Success File processing complete
    2010-02-10 13:54:03 Success Acknowledgement creation triggered for type: SystemAck
    2010-02-10 13:54:03 Success MP: Leaving module processor
    2010-02-10 13:54:03 Success Acknowledgement creation triggered for type: AckNotSupported
    2010-02-10 13:54:03 Success The message was successfully delivered to the application using connection File_http://sap.com/xi/XI/System.
    2010-02-10 13:54:03 Success The message status set to DLVD.
    Negative ack
    2010-02-10 13:54:03 Success Start converting XML document content to plain text
    2010-02-10 13:54:03 Success File processing complete
    2010-02-10 13:54:03 Success Acknowledgement creation triggered for type: SystemAck
    2010-02-10 13:54:03 Success MP: Leaving module processor
    2010-02-10 13:54:03 Success Acknowledgement creation triggered for type: AckNotSupported
    2010-02-10 13:54:03 Success The message was successfully delivered to the application using connection File_http://sap.com/xi/XI/System.
    2010-02-10 13:54:03 Success The message status set to DLVD.
    This is happening only for some cases and not for all. Please advice why this is happening.

    HI
      I have done the same way as mentioned by Michel in blog /people/michal.krawczyk2/blog/2006/06/22/xi-playing-with-the-file-adapters-acknowledgments
    In my BPM, i have send,mapping and send in one block
    First step is Send with Deadline branch( 17 mins ) and exeception Branch. and then Mapping and then send to other application.
    on succesful  ackowledgment only Mapping and send step will execute.
    But my issue now is, in some cases i am not getting positive ackowledgment even though file was sent in 10 seconds. what would be the issue?

  • Transport acknowledgement

    I'm using BPM in my scenario. In a loop, I'm sending out IDocs, for which I'm using transport acknowledgement.
    The strange thing is that the IDoc is received in R/3, but XI is still awaiting the transport acknowledgement. Sometimes this ackowledgement comes pretty fast, within a few seconds, but another time it takes up to 10 minutes before the transport acknowledgement is received.
    How is this possible? The XI IDoc adapter is supposed to send the transport acknowledgement, right? How can it be that is takes this long for the BPM send step to receive it?

    Hi
    Does anyone know if there has been an update to this issue from SAP side. I have the same problem and the issue can be also be found discussed in following threads:
    Re: Acknowledgement problem
    SXMB_MONI and BPM acknowledgement status updates
    I think it is weird that you will have to update the status in SXI_MONITOR to actually get the acknowledgement back. I have experienced the transport ack coming back right away, but now I also have this problem.
    Hopefully someone has been enlightened lately?
    Thanks!
    regards Pavel
    Edited by: Pavel Jonas on Jan 29, 2009 3:45 PM

Maybe you are looking for

  • What kind of email services does the iPad Supports

    I want to know which services are supported and some examples please, because I am interested in purchasing but need to know if covers my emailing needs for both personal and business, thanks

  • Adobe TV and Ipad

    I have no problem using the Ipad and connecting to Adobe TV to watch Julieanne Kost Tutorials. However, one of her tutorials "The Creative Composite-Drifting" runs on the Ipad for 13 minutes (it is a 50 minute video) and then the video and audio stop

  • ABAP HR: Delete IT0009 data for all employees

    HI All,   The reuqirement is to delete IT0009 for all employees from Dev system. Is there any function module which will do it in one go instead of loop and delete each PERNR record. Thanks.

  • Need for idempotent stateless session beans

    I'm trying to find a solution for failovering method calls on a stateless           session bean, even for method calls that already have started.           I understand that failover services for failures that occur while the method           is in

  • Having trouble accessing the student discount email registrati​on

    Everytime I click the link to register my edu email, the page says we're sorry and that they can't find what I am looking for? What can I do? I am trying to purchase a Macbook Air tonight! Please help! Thanks.