Switching Step based on Send Step Acknowledgement in BPM

Hello Everyone,
We have an inteface scenario to read a file, send the message to an R/3 system, check the return code and generate an email if the acknowledgement is not OK.  NT file -> SAP XI -(asyn ABAP proxy)-> R/3.
We want to use the standard inbound interface provided by SAP which is an asynchronous proxy interface. We implemented a BPM with a send step and application acknowledgement. Now based on the application acknowledgement we want to send an email to a support group. Is there a way we can check the acknowledgement status and implement a switch step?
Sathi.

Hi Naveen,
Thanks for your response.
OK I will try transport acknowledgement. I find these acknowledgements are not available in a container. So how can I implement a switch to perform 2 different processing paths based on success/failure status of the acknowledgement.

Similar Messages

  • Introducing a wait after Send step - file write in cc BPM

    Hi
        We have a cc BPM - in which we have a send step - that writes a to a file system - we have a transport acknowledgement requested in this step  - which we receive in runtime - once the message is passed into the Adapter engine ( not after the file is written )
    The requirement is that the next step after this send step should not be started until the file is written to the folder. We have an option of introducing a wait - but do not want to delay the BPM by a full minute ( the least wait time is a minute ) .
    How do we make sure that the step after send step - file write executes only after the file is written to the folder in the send step ?
    Any ideas, solutions, work arounds ?

    we have a transport acknowledgement requested in this step - which we receive in runtime - once the message is passed
    into the Adapter engine ( not after the file is written )
    Transport Ack sends back the ACK when the message is successfully delivered from the Adapter Engine (channel) to the end system.....and not when the message is transferred to Adapter Engine....if there is any error in sending message to AE then the BPM does not need Transport Ack logic to ctach it....only Exception Branch is enough then
    is there any other way of introducing a wait - less than a minute
    The Wait step of BPM cannot go below the minimum limit of 1 minute......if you want to introduce a delay of some seconds then in a mapping use the Thread.sleep logic and check.....this will slow down (stop) the processing....for more info refer:
    Re: Delay in MM possible ?
    Regards,
    Abhishek.

  • 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

  • BPM RFC synch send step

    Hi
    I am using RFC synch send step with in parforeach block in BPM. do I need to activate correlation to correlate synchronous request and synchronous response for RFC synch send step ?
    Please let me know if you have any ideas on this.
    Thanks
    Anand

    Hi Michal,
    Thanks for the reply.
    In SAP help I found the statement made below.
    Activating a Correlation
    An asynchronous or synchronous send step can activate correlations. This can be useful in the following cases:
    ·        Synchronous send step
    A synchronous send step waits for a reply message to be received. On receipt of this reply message,
    correlations can be activated to correlate additional messages.**********************************Any idea on highlighted sentence...
    Thanks
    Anand

  • File Adapter Acknowledgement in BPM

    Himadri,
    You cannot achieve this unfortunately
    Reason is that file adapter supports only Transport Acknowledgements. What this implies is that the BPM checks only if the message is sent from the BPE to the Adapter Engine Successfully. It does not check to see if the file is written in the target destination.
    Just try this, give an incorrect folder ( or something of this sort ) in the file adpater and try Transport Acknowledgement. Wrap this around an exception block. You will be surprised that the exception block is not called.
    Reason like i told is that the BPE thinks it is successful as the message has been passed to the adapter engine.!
    Regards
    Bhavesh

    Sandro,
    Thanks for that input. Actually tried the same on my XI box and what you have told is absolutely correct.
    Until the transport acknowledgement is not received for the first send step, the next send step will not be called! I seem to have forgotten something somewhere or my observation which I had given earlier was with respect to some othe scenario which am not able to recollect!
    Himadri~~ Apologies for the incorrect answer. Transport Ack's should do the trick for you like correct pointed by Sandro.
    Thanks,
    Regards
    Bhavesh

  • Acknowledgment in BPM

    Hi
    Scenario is File->PI(BPM)->Aysnc proxy...
    I am using a standard content inbound ASYNC proxy which I cannot edit. From the BPM I am calling an abstract interface which in turn calls this inbound ASYNC proxy. I need application errors (if any) back from this proxy or u can say application acknowledgment. But in the BPM how can I get it back, how can I handle the ack message. I cannot put the fault message type inside the BPM container, since the abstract interface cannot have fault type to be added with the message.
    I cannot make the inbound interface as SYNC, because it is a standard interface and I want to use it AS IS.
    Please shower some points on this.
    Regards
    Anandan

    Hi Anandan,
    There are two ways...
    1. You will have to build another interface (logical) in the same BPM. You can expose a web service/or choose your mode of receiving the data from the partner. In that, you will have to mainatain a field for identifying the correlation. For e.g. if you are sending an invoice, and you could use the invoice number or the order number as the correlation field. In the BPM, you will have to add another receiver step after the send step and then use this field as the correlation in that. For more about how to work with correlations, you can use the help "http://help.sap.com/saphelp_nw2004s/helpdata/en/6e/57c53f3e0f0228e10000000a114084/frameset.htm". This will show how to use correlation.
    2. If it is just a notification kind of thing i.e. if you wanted to know wheter the proxy has been called successfully or not, then you do not need all this effort. All you need to do is as Abhishek has suggested, use a transport acknowledgement. Since you are going to call a proxy (I am assuming it is ABAP proxy), and since it is an integral part of the Integration engine, if the communication fails, the BPM will fail. You can do an exception handling and then do what ever you want in the exception block like writing a file or sending an alert etc...However, you will not be able to get the exact error message implicitly. For this all you need to do is put your send step in a block and handle the exception for that block. For handling exception blocks, you can use the example "http://help.sap.com/saphelp_nw2004s/helpdata/en/ca/7c5c41fe06cf1ee10000000a155106/frameset.htm".
    Hope this helps.
    Thanks and Regards,
    Sarath.

  • User getting locked while sending message sync via BPM. Please help

    Hi Experts,
       I have a sync - sync scenario where I am sending data synchronously from webservice to a sync RFC FM. I am using BPM and in BPM I have three steps
    1. Receive step - Opens Sync-Async Bridge
    2. Sync Send step
    3. Send step - Closes SYnc-Async bridge.
    This BPM solution is same as that give in the blog https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken]
    When I test this scenario I am getting
    <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
    <SAP:Category>XIServer</SAP:Category>
    <SAP:Code area="INTERNAL">PL_TIMEOUT</SAP:Code>
    <SAP:P1 />
    <SAP:P2 />
    <SAP:P3 />
    <SAP:P4 />
    <SAP:AdditionalText />
    <SAP:ApplicationFaultMessage namespace="" />
    <SAP:Stack>Timeout condition of pipeline reached</SAP:Stack>
    <SAP:Retry>N</SAP:Retry>
    </SAP:Error>
    When I check the "Status monitor for Sync/Async communication" via SXMB_MONI, I found that my message is listed there with BPE status = "Wait".
    On double clicking my message I found that there is an error " User is locked. Please notify the person responsible".
    Why is my BPE struck in "Wait" stage and user is locked?
    What am I doing wrong? Am I missing any settings in SOAP sender communication channel?
    Please help me in resolving this problem.
    Regards
    Gopal

    Hi,
    Few months ago we had also problems with "locked user" in XI, in our case XIAPPLUSER was sometimes (b)locked.
    Perhaps note:
    721548 Changing the passwords of the XI 3.0 service users
    will help you.
    We removed and entered the service users again, with the password in CAPITALS and language blank.
    After that our problem was solved, I hope yours too.
    Regards
    Jack

  • How to get detail info of application acknowledgement in BPM send step

    Hello
    in BPM we will send an async message to SAP backend system, we need to know if the message is successfully process or not, if not, we need to get the detail info which is returned in the acknowledgement message.
    As you know in PI monitor, you can open the acknowledgement message and you can see the error texts that are sent by the SAP backend system to PI in the acknowledgement message. However seems like there is no standard way in PI BPM to get the error texts inside the acknowledgement. In the send step you can only specify that application ACK is required, if negative ACK comes in, an exception is raised and you can handle the exception in the exception branch. However there is nowhere to capture the acknowledgement message to get the detail error texts.
    Anyone has good idea to get the error texts from the application acknowledgment message inside BPM/
    Thanks

    we need to know if the message is successfully process or not, if not, we need to get the detail info which is returned in
    the acknowledgement message
    One way to have the above requirement done is make the process synchronous (if RFC/ Proxy). The response message should contain the state of processing of the message inside SAP....now in the BPM make a check on the response message to see if it is a success or failure....you can apply logic like is success terminate the BPM without any alert.....if failure raise an alert/ send a mail.
    Regards,
    Abhishek.

  • BPM Send step and acknowledge application.

    Hi All,
    with this url
    http://help.sap.com/saphelp_nw70/helpdata/EN/43/65ce41ae343e2be10000000a1553f6/frameset.htm
    I understand that we can define application for acknowledgment from SEND Step in BPM. and this acknowledge will can let me know document as I sent to R3 that posting success or not. But when I try configure with this param. I see only waiting acknowledgement in SXMB_MONI. So how I can to configure this param. Do I have to config someting on R3 side or not?
    Thanks and Regards
    Park

    Ricardo,
    You would not believe me but I had the same requirement a year back.
    Infact I ended up posting a thread on this on the XI forum,
    Idoc Acknowledgements and Idoc Packaging
    Answering your question in 2 phases,
    1. R3 can send the AleAduit back to XI immediately. In the inbound processing code, all the R3 team would need to do is add the code to trigger the RBDSTATE report to trigger AleAudit to XI.
    2. The problem with Correlation - Well, in your case as you are using Idoc Packaging , the solution 1 in my earlier thread would not do the trick. If you look in IDX5 in XI you will see that the Idoc Packaging trigger multiple Idoc's from XI itself but again the problem is the correlation and for this there is no straight forward solution than having some custom field in the Idoc and in the corresponding response.
    But yeah overall your analysis was perfect. Idoc's are used for Asynch Communications and hence trying to achieve what we are acheiving is not always and necessarily the best solution. Proxies help in these cases, and if proxies are not possible then I guess RFC is the way to go.
    Regards
    Bhavesh

  • BPM: Send step with acknowledgment - Application

    Hi folks,
    I’ve a simple BPM with receiver(sender file)->mapping->send(IDoc receiver). The Send step is configured with the option Acknowledge type -> Application. The scenario runs well, the IDoc is successfully processed, but my BPM remains waiting with the clock icon!!! Going to sxi_monitor, in the PE details is a step waiting for an event from R/3 with the message “Waiting for an event SEND_OK_APPLICATION type CL_SWF_XI_MESSAGE. It seams waiting for an event that R/3 didn’t send… Did I miss some steps at R/3?
    The idea is to receive an ack after my IDoc is successfully processed at R/3, in order to finish the BPM.
    Regarding Acknowledgment type -> Application, the sap help says:
    Wait for Acknowledgement
    Specify whether the send step is to wait for an acknowledgement. To receive an acknowledgement in the send step, the receiver (adapter, business system, and so on) must send the corresponding acknowledgment.
    Application - Specifies that the message was processed successfully by the receiver application (for example, ‘posted’).
    I guess it should works, but maybe I'm missing something. Anyone knows how to work with this kind of ack at ccBPM?
    Thanks in advance,
    Ricardo.
    Edited by: Ricardo  Quintino on Jan 21, 2008 4:33 PM

    Ricardo,
    You would not believe me but I had the same requirement a year back.
    Infact I ended up posting a thread on this on the XI forum,
    Idoc Acknowledgements and Idoc Packaging
    Answering your question in 2 phases,
    1. R3 can send the AleAduit back to XI immediately. In the inbound processing code, all the R3 team would need to do is add the code to trigger the RBDSTATE report to trigger AleAudit to XI.
    2. The problem with Correlation - Well, in your case as you are using Idoc Packaging , the solution 1 in my earlier thread would not do the trick. If you look in IDX5 in XI you will see that the Idoc Packaging trigger multiple Idoc's from XI itself but again the problem is the correlation and for this there is no straight forward solution than having some custom field in the Idoc and in the corresponding response.
    But yeah overall your analysis was perfect. Idoc's are used for Asynch Communications and hence trying to achieve what we are acheiving is not always and necessarily the best solution. Proxies help in these cases, and if proxies are not possible then I guess RFC is the way to go.
    Regards
    Bhavesh

  • 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

  • Condition check (based on sender file name) at receiver determination step

    Hi,
    My scenario is File to AS2 (Sender side file adapter and receiver side AS2 adapter)
    We have 5 customers, but the source location is same to pick the files, Here we are not using any ESR objects.
    Based on the source file name PI need to determine to whoom this file need to send at receiver determination step
    Craeted objects
    1 Sender CC,
    1 Sender agreement,
    1 Receiver determination
    5 Interface determinations
    5 Receiver agreements
    5 Receiver CCs.
    Could you please provide me your valuable inputs.
    Thanks
    Ramesh

    Hi Venkataramesh,
    I understand your scenario as, picking files (different file naming standard for different target customer) from one source folder. Based on file name, that payload should be sent to corresponding target customer. You have mentioned u201CHere we are not using any ESR objectsu201D. I can see two reasons for this decision
    1. PI is used to route the messages, i.e., no need to transform the payload. OR
    2. Files can binary files like PDF, ZIP, JPG, GIFu2026
    Now I can see two possible solutions
    1.     Simple solution, as proposed by u201CPrabhu Rajesh Janardananu201D, make it into 5 different scenarios  (5 sender channels).
    2.     Bit complex solution, only one sender channel, using extended receiver determination
    Step 1:- In Sender File channel check u201CAdapter u2013 Specific Message Adapteru201D in Advanced tab. File Name should be checked.
    Step 2:- In Receiver Determination, Select Type of Receiver Determination as u201CExtendedu201D. http://help.sap.com/saphelp_nwpi711/helpdata/en/48/ce2a423a8e5430e10000000a42189b/frameset.htm
    Step 3:- Do a Graphical Mapping (use it Operation Mapping in Receiver Determination).
    Step 4:-
    Source and target of graphical mapping will be same (below), because you donu2019t want to access input payload (it can be XML, flat file, JGP, GIF and you donu2019t have its structure).
    <Receivers>
       <Receiver>
          <Party agency="" scheme=""></Party>
          <Service></Service>
       </Receiver>
    </Receivers>
    Step 5:- Write a UDF in Graphical mapping as below. http://help.sap.com/saphelp_nwpi71/helpdata/EN/43/03612cdecc6e76e10000000a422035/frameset.htm Pay attention to method declaration
    public String Determine_Receiver( Container container) throws StreamTransformationException
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create(u201Chttp://sap.com/xi/XI/System/Fileu201D,u201CFileNameu201D);
    String valueOld = conf.get(key);
    //Put your logic here
    if (valueOld.equal(u201Cuser1u201D)) {
    return u201Cuser1u201D;}
    if (valueOld.equal(u201Cuser2u201D)) {
    return u201Cuser2u201D;}
    if (valueOld.equal(u201Cuser3u201D)) {
    return u201Cuser3u201D;}
    Step 6: Now use this UDF to map to u201CReceiveru201D and u201C Serviceu201D.
    This solution need more fine tuning.
    Regards,
    Raghu_Vamsee
    Edited by: Raghu Vamsee on Jan 8, 2011 5:56 PM

  • Sending step in Integration Process waiting for Acknowledgement infinitely

    In process I had to send an MATMAS, CLFMAS and CNPMAS. The data for
    this IDoc comes in one message from third party system. So, my
    Integration Process has receive step (to collect a data), and three
    send-steps (for MATMAS, for CLFMAS, for CNPMAS), one by one. The
    receive-step catch an inbound message and then (without transforms)
    send this message to each of this three send-steps in Asynchronous
    mode. The inbound message transforms in Interface Determination to
    IDoc. Three steps, one Interface Determination with three conditions,
    that looks
    like «ProcessStep=send_matmas», «ProcessStep=send_clfmas», «ProcessStep=s
    end_cnpmas», and in this place I set a mapping to transform inbound
    message to IDoc. All send-steps has property Acknowledgement, which set
    to Transport value. So in first send-step MATMAS goes to R3, then R3 in
    response send ALEAUD IDoc (trans WE05 shows an incoming MATMAS and
    outgoing ALEAUD); ALEAUD comes to XI (trans IDX5 shows inbound and
    outbound messages), but ALEAUD didnu2019t transforms to XI Acknowledgement.
    And there is no any CLFMAS or CNPMAS, because all processes sleeps in
    their first send-steps (trans SWWL shows a many STARTED processes).
    Each send-step waits for event u2018SEND_OK_TRANSPORTu2019. Moreover, if I use
    trans sxmb_moni to monitor this situation and if I press refresh (F5
    button) every time, sxmb_moni every time requests a status of
    Acknowledgements, XI transform ALEAUD to Ack, send-step in process
    catch this status, process wake up and moves to next send-step (which
    sends an CLFMAS and waits for Ack). By continuously pressing refresh
    (F5) in sxmb_moni all process becomes COMPLETED (trans SWWL), all
    ALEAUD transforms to XI Ack and all IDocs goes to R3. But pressing F5
    itu2019s not a solution for integration.

    Hi Igor,
    I dont think your manual refresh changes the status . The status changes is the status change of GUI . The system will take how much so ever it needs to take and not as per your manual refresh.
    Regards
    joel

  • BPM Send Step with acknowledgment: ID: sender agreement?

    Hello everybody,
    I have a send step in BPM and I expect a acknowledgement from the receiver.
    Do I have to configure a sender agreement?
    Thanks a lot
    Regards Mario

    mario,
    I have tried to use a Sen Synchronous Step to a JDBC adapter from a BPM and it works fine.
    <i>After changing the send step in BPM from async to sync with acknowledgement, I get not response message</i>.
    When you select MODE as SEND SYNCHRONOUS in your Send Step, there is no option to Select ACKNOWLEDGEMENT.
    When you select the MODE as SEND ASYNCHRNOUS , you can have acknowledgements.
    But, as you are using a RECEIVER  JDBC adapter , you need to have a SEND SYNCHRNOUS step that will get the response back from the JDBC adapter. This response will double up as Acknowledgemet.
    You can surround this Send Synchrnous Step with an Exceptuion Handler to handle any exception that might occur.
    Regards,
    Bhavesh

  • BPM handle empty message in send step

    Hi, Friends:
    I have a following BPM sceario(PI7.1 EHP1)
    It mainly has following steps:
    Receive -> Transformation (Multi-Mapping) -> Fork (4 branches: one send step each branch)
    The multi-mapping result is to generate 4 types of messages based on logic.
    Sometimes all 4 types of message generated, and sometimes only one type of message generated.
    When there is a message not generated, the send step generate error which is not caught in exception branch.
    I searched forum, so far not lucky to find solution.
    Any idea how to  handle empty message (do not send it) in send step?
    Regards
    Liang
    Edited by: Liang Ji on Dec 7, 2010 8:42 PM

    Hi, Abhishek:
    The reason to use Fork is that all the branches can be reached.
    By using switch, it only judge one input value and only one condition turns true.
    Actually in most cases, the number of my input value is more than one, saying two or more message types generated.
    And this is not multi-line situaion, because the messages generated are different types.
    Your reply remind me to add switch inside fork.
    Regards
    Liang
    Edited by: Liang Ji on Dec 8, 2010 5:32 PM

Maybe you are looking for

  • Design Concern for XI Scenario!

    Hi All, Do you have any design solutions for following scenarios with respect to BPM,Adapaters and sync/async flow: 1. JSP - > XI---->DB 2. JSP<--->SAPR/3<->XI<--->DB 3. DB-->XI->JSP 4. JSP<->XI<--->DB Appreciated your  time! Will get you reward! Tha

  • Wired vs. Wireless network visability to shared music on a NAS

    I have upgraded to 10.2.1.1 iTunes, I am running a wired network in my home that also has a WAP connected for my wireless devices.  The issue is, when connected to the wireless I can see my shared music that resides on my NAS in iTunes.  If I connect

  • POE device flapping on switch access port

    I have a switch at a remote office.  I have a Cisco 2851 Router and two cisco 3650 POE switches.  I also have three Aruba 105 POE APs. Two are plugged into one switch, and one into another. Yesterday we had a power issue that caused all of the equipm

  • Agent's Ability to Decline a Queue Call - UCCX

         We have a group of agents that not only answer queue calls but have another line that they also need to answer calls on. Business needs require this functionality. Their complaint is that while they're on a non-queue call and a queue call comes

  • Events on ical not sync to iphone

    events on ical not sync to iphone