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

Similar Messages

  • Fault message in synchronous send step in BPM

    Hi,
    When executing a synchronous send step in BPM it is possible to handle application errors (fault messages) with an exception branch. But how do you get hold of the actual data in the Fault message(faultText, faultURL, faultDetail etc) for further processing (mapping)?
    Kind regards Johan

    Johan,
    u have to define another container element in integration process.
    For that container element an Async Abstract interface has to created with falult message as the message.
    Do u have the fault message defined already...
    Also go through this thread.
    Fault message handling in BPM
    -Naveen.

  • How to determine receivers in the send step in BPM?

    Hi Guys,
    I have 3 send steps in BPM defined with send context and for each send step i have defined a receiver determination in ID. Each Receiver Determination has a condition based on which identifies multiple receivers.
    The BPM is failing and unable to determine the conditional routing. Do i need to add the receiver determination step before each send step so that it identifies the receivers.
    Any help would be appreciated.
    Thanks,
    Raj

    Hi Guys,
    Thanks for all of you for the quick replies and it is really a great help.
    We have resolved the issue. The approach is as below.
    we have a generic design used by multiple customers. For the interface where we have the BPM, we are doing conditional routing for each customer before they hit the BPM that is as soon as we receive the Asynchronus request based on the condition we direct the message to a particular BPM. Basically every customer will have different BPM process. ie we create the same BPM with different names specific to each customer and in this way we dont complicate the BPM process and we will know if any particular customer has problems with his process.
    Please let me know comments or suggestions on the above approach
    Thanks,
    Raj

  • Regarding send step in bpm--"send context"

    i want to use the send step in my bpm with send context.
    The send context is a freely definable string, which you specify in the send step. You query the send context in a condition in the receiver determination in the Integration Directory. You must specify the send context to be able to send messages from the same message interfaces to different receivers in different send steps.
    but i did n't understand regarding the explanation given above.
    could u plz help me out

    Hi
    When you use Receiver determination step in BPM to get a list of receivers for a send step.
    You need to define send context to send messages from the same interface to different receivers in different send steps. As list of receivers is collected using receiver determination.
    Now you can use this to set condition(send context) based receiver in ID Receiver determination.
    Thanks
    Gaurav

  • Sync Send step in BPM.

    hi all,
    My BPM flow starts with a single message that I split using a message map into a list of messages into a block which is foreach mode to be sent synchronously one by one splitted messages to an Oracle stored procedure via the JDBC adapter. After the mapping step, the flow goes into a ParForEach block that executes the sync Send step to the JDBC adapter, and then has a Container Action that collects the responses.
    My problem is that BPM seems to not like executing a synchronous send from inside a block. The first execution of the send step will produce an error in the BPM flow.
    thanks in advance.
    srinivas.
    Edited by: sri_rambo on Nov 27, 2009 8:06 AM

    My problem is that BPM seems to not like executing a synchronous send from inside a block.
    BPM does support SYNCSend step inside a Block....but not for ForEach/ ParForEach mode of execution.
    I think you are following this procedure from quite a long time.....sync send inside a foreach block.
    Regards,
    Abhishek.

  • How to read fields from response message in send step in BPM

    Hi ,
    I have one  BPM scenario where I am using synchronous send step to insert data into database and to get response back from database as success or failure .My scenario involves inserting data into multiple tables and in multiple rows . If all the inserts are successful then I want to write success message  else I want the messaage as error . So can we read all the  SQL response and store it in container varibale and the have soem decision logic ?

    Hi,
    for everyinsertion, you will get a response
    <INSERT_COUNT> </INSERT_COUNT>
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    if the value ==1 , then insertions is sucessful, if value ==0, then insertion not succsful.
    So, in your mapping, just check if any of the values is 0 and if yes, then decide if you have to write a sucess message or a failure message.
    Regards,
    Bhavesh
    Regards,
    bhavesh

  • Send step in BPM is "logical deleted"

    Hi everybody,
    we are sending IDOCs from BPM to receiver determination (R/3 Backend).
    The BPM protocol marks the send step as "logically deleted".
    In SXMB_MONI strange!
    Sender = Receiver = BPM
    Any ideas?
    Regards Mario

    The required number in the fork was wrong!

  • Error in send step in BPM

    Hello,
    I ehanced an existing BPM where a send step sends data to a J2EE system. I inserted a switch and put the existing send step to one branche and a new send step to the otherweise-branche. The new send step interrupt with an error:
    <b>No exception defined for fault message hostname http://xml.apache.org/axis/</b>
    But there is an exception branche defined. An idea what's the problem?
    I didn't define a message called hostname, so where he got this name from?
    thx
    chris

    No, everything seems fine.
    Here is the payload of response :
    <i>
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="UNKNOWN">APPLICATION_ERROR</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>application fault</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="http://xml.apache.org/axis/">hostname</SAP:ApplicationFaultMessage>
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    </i>

  • Controlling a send step in BPM

    Hi I have a BPM like in which the last step will be
    block starts( (syn)RFC -> container->) block ends ->transformation-> send and i need to send the message in the last send step..based upon on field in the RFC response, i used a switch step after the block and in the branch i hav transform and step and in the branch otherwise i have the control step, but it seems ,it is not checking the condition, it alwys goes to the send step.
    and i am not able to see the switch step in the graphical work flow..any ideas?
    thanks

    Some basic checks that need to be done on the BPM:
    1) return code should be 0 in SXI_CACHE
    2) In SXI_CACHE there is an option to see the XML of your BPM.....this indicates what all steps are present in the BPM.....open this XML and check if each and every step is mentioned there.
    3) Check if there is any errored instance of the BPM in tcode SWWL...if yes then delete this instance
    4) I hope that your condition in Switch block is defined properly.
    5) Delete all the objects from ID (related to this interface)....then reimport the BPM from IR and again create the objects....last option
    Regards,
    Abhishek.

  • Sync send step in BPM fails and cant be resend   XI

    Hi Forum,
    I have a file ->JDBC(Sync)->file scenario, with a BPM, having a synchronous send ........ sending and receiving message from a SQL Server,
    the problem is ........... sometimes the synchronous send to the JDBC fails, bcoz of purely database connectivity issue, but then the whole scenario has to be rerun, coz sync send doesnt keep message persistent........ and we cant resend the failed Sync send step,
    pls help .... its a production system

    Hi sreeram,
    i think the sync send doesnt make retries while sending message,
    in this case it means data lost............means not persistent in the BPM
    do u think my design is faulty,
    is their any alternative

  • Receiver Determination with Synchrnous Send step in BPM

    Hi,
       Is there any way to use BPM Receiver Determination step type with Synchronous send step ?
    Is it possible to send a request to multiple receivers synchronously and capture the response?
    Appreciate for your response.
    Thanks,
    Rao.Mallikarjuna

    Use malticasting, check out these blogs
    Multicasting using Receiver Determination Step in BPM
    and pattern number 6 in BPM with Patterns explained Part-2
    Thanks!

  • How to handle error in Syncrounous Send step in BPM.

    Hi All,
    i am inserting the data into target database and getting the response from the target database in to XI(BPM) here i am sending the data as a bunch(packets), i mean i am splitting the recods into packets and inserting these packets into target database through Sync Send step... now my problem is how can i handle if any of the packet(one set of bunch recors) was fail, how can i handle this exception.
    Thanks in advances for your suggesions and solutions which came by your huge experiences.
    B'rgrds,
    Srinivas

    Since the requirement is to catch the Exception proceed as:
    Include a Block in your BPM --> Include the Send Step -> Right-click on the Block and choose insert Exception Branch> In the Exception Branch inlcude the logic that you want to implement in case of error.
    Possible Exception Handling logics:
    1) Send email to support personnel notifying him of the error and let the remaining process continue
    2) Send email to support personnel notifying him of the error and cancel the process
    3) Cancel the process.
    Make sure that you create a Exception Handler to be included in the Block and also in the System Error section of the Send Step.
    Regards,
    Abhishek.

  • 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.

  • BP Transport Acknowledgement problem...

    Hi,
    In, XI3.0 stack 11, Business process have two SEND STEPs one for PO and another one for GI and the required condition is GI idoc should get posted only after posting PO idoc.
    As of now I have put transport acknowledgement in the first send step so that once all PO idocs are sent to r/3 then only the second SEND step will post the GI idocs.
    But transport acknowledgement works only if I keep refreshing the sxmb_moni. If I drop a file and not opening the sxmb_moni for say one hour or one day the second SEND step is not getting processed. Only if I click refresh or open the sxmb_moni again, it is processing the next send step and post the GI idoc.
    Could any one help me to resolve the strange behaviour of transport acknowledgement? Is sxmb_moni something to do with getting any acknowledgement? What is happening in the background while refeshing the sxmb_moni?
    thanks,
    sasikumar

    When copying systems, you should never copy one system alone, but always CRM and ECC at the same time. Since both are closely coupled and both contain tables, in which it is described which kunnr is mapped to which CRM GUID, it is without alot of effort and deep middleware knowledge not possible to reactivate the data exchange properly. But even then you have to make sure that in both systems either the same partner numbers do not already exist or clear one system from all existing partners. Some of these mapping tables are i.e. CRMM_BUT_CUSTNO and CRMM_BUT_CONTNO, which contain the mapping information that is now obsolete. Usually these tables should be the same in CRM and ECC (and the data also), but in your case this is not true unfortunately. Even an initial download does not help as this is looking at these tables.
    Alternatively if you make a customizing client copy of the CRM this new client can be connected to the ECC much easier as you do not have to remove data from the client. However, of course you still need to make an initial DNL.
    Hope this helps, Kai

  • 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.

Maybe you are looking for

  • Can I use multiple iPhoto libraries with Aperture?

    I've been using iPhoto to manage my photos (successfully) for many years.  I have multiple themed iPhoto libraries with many thousands of photos in them (ten years' worth of digital plus another fifty years scanned).  I am thinking of downloading Ape

  • E1500 wireless router having problems streaming video and netflix

    We got a new E1500 router 2 nights ago. The internet works fine, but it has big trouble streaming videos and Netflix, those types of things. I have changed my MTU setting and all the settings suggested in the "Guide Me" section. My drivers are up to

  • Converting string containing multiple numbers to numbers eg.(1,2,3)

    SQL only for report (in Hummingbird... sigh...) example code: select * from table where numberfield in (select varchar2field from othertable where this = that) (select varchar2field from othertable where this = that) output: 125,458,784,56,895,121545

  • SOAP: need help with executeXMLQuery

    Hi all, I'm using OBIEE Webservices to retrieve report results from a .net web application. Everything works fine except that the XML returned is not the final result of the report but the initial fields used for calculating the reports, ie. no aggeg

  • EDIFACT

    Hi, How to do the mapping in EDIFACT ? Input is XML schema and output is EDIFACT schema. can u tell me the procedure for the mapping. Vinoth