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

Similar Messages

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

  • File BPM Webservice IDOC .........Error in BPM workflow(Sync send step)

    Hi all,
                      I have the same type scenario that is file initiates the bpm that invokes the Webservice.the file data goes into bpm as the input data of the webservice and webservice gives the response and then the web-service response is mapped to
    idoc and finally posted to R/3.
    The interface sI created:
    1.outbound Async  -
    >for file
    2. Abstract async----
    >bpm reciever step.
    3.Abstract sync----
    >bpm sync send step.
    4.inbound sync -
    >for the webservice to recieve the reqst and to send the response to Abstract sync
    5.Abstract async----
    >to send the data out of BPM
    6.inbound async----
    for idoc
    created 3 communication channel.
    1.file adapter: sender
    2.SOAP adapter: Recv
    3.IDOC adapter: Recv
    created 3 reciever determination
    Business process instance in ID
    reciever agreement(2)
    interface determaination
    But getting a problem in BPM.
    I think the scenario is logically correct as I have seen previous
    SDN suggestions.
    But getting the problem in BPM's sync step.and the SOAP rec channel is also inactive.in BPM workflow I can see the recv step is getting file req data but after that in the sync send step
    its stuck up.getting error.
    Please sir suggest me.

    Remove the interface you created for Idoc that is inbound async one. use the imported Idoc itself as the interface and also as the message type. Everything else looks good though i did not really evaluate ur ID configuration..
    VJ

  • BPM Sync Send Step & Correlation

    Hi Experts,
    BPM Scenario: Step wise
    1. Receive-1 from one sender
    2. Send-1 it syncu2019ly to SAP using proxy and receive the response msg
    3. N: 1 transformation b/w request message and response message to generate a target message
    4. Send-2 the target message to a receiver
    Though the scenario seems to be simple, I have a doubt about the sync send step.
    How does the sync send step works in detail?
    For every message the Receive-1 receives, a new process instance will be generated. When the message is sent to SAP syncu2019ly, how does it relate the response to the particular process instance?
    For example, if 2 BPM process instances are created for two messages the Receive-1 step receives. However say, the second message is relatively less in size; in-turn consumes less time to execute in SAP and reaches XI well before the response for first message.
    Which process instance will it be related to?
    Please explain!
    Karthik

    Thanks, Udo! With your reply I heave that itching thought.
    I would happy to read more about this sync-session logic.
    Can you please provide more information/ blog/ material for detailed info?
    P.S. pts added to you!
    Thanks,
    Karthik

  • Sync Send step after transformation step in BPM

    Hi Gurus,
    I have an interface where I am loading the data into an Oracle database and getting the response back (insertcount) from the database. Based on the response, I have to execute a stored procedure in another sync send step.
    I am doing perfectly alright until the transformation step. The sync send step after this step has the following entries.
    Sync interface: MI_LG_SP_INPUT_ABS
    Request Message: sp_lg_rec
    Response Message: sp_lg_snd
    While doing 'check(F7)', I am getting the following error.
    <b>Interface MI_LG_SP_INPUT_ABS for element sp_lg_poc_step2 is not abstract/asynchronous</b>
    The request message for this sync send step is the target message of the transformation step.
    This error is bugging me since 2 days. Please help me with this.
    Thanks
    Kalyan

    Sravya,
    I know what I did now. For my send sync interface which is MI_LG_SP_INPUT_ABS, I have unnecessarily created a container element and which caused this problem. From your post, I rechecked it and found that I don't need a container element for my abs/sync interface as I already have container elements for request and response which are abs/asynch.
    I gave you full points, thinking that you will come for my rescue in the future (just kidding!!!).
    Thanks again,
    Kalyan

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

  • Sync send step in a loop step

    Hi Gurus,
    I want to query a database and based on the return value I will proceed to the next step. For this I have a 'sync send' step where I am finding if the count(*) is 0 or greater than 0. If it is only '0' then only I will proceed to the next step.
    For this functionality I am using a loop step with in which I have this sync send step (querying the database). The control will come out of the loop only when the count is 0.
    But, I found that the response message container is not loading. That is the reason why the loop condition is always coming out as 'true'.
    I want to know if I can use the send step with in a loop in BPM.
    Please let me know your solutions.
    Thanks
    Kalyan

    Hi,
    see the counter variable , initial value is 0 ,then the loop always true.
    second thing is when you send the request for synchronously and the response message to receive step, is it correct,
    if so why do you want to maintain the loop, are more messages sending the messages in seqencially /syncrounously .
    I think you want to check the response interface value is it , check this correctly..
    See the below links for Sync Send .
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    Regards
    Chilla

  • 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

  • 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

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

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

  • Sending text photo only iphone and cant other cellphone

    sending text photo only iphone and cant other cellphone

    Howdy Michael,
    It sounds as if you are unable to send using Messages unless the receiving party is also on an iPhone, is that correct? 
    If that is the case, I would suggest you look at your iPhone's Settings > Messages and see if Send as SMS is turned on. You should also make sure that MMS Messaging is turned on. This allows you to send using either iMessages or cellular data. See this help article -
    Messages settings - iPhone
    Thanks for using Apple Support Communities.
    Best,
    Brett L 

  • Sync Step in BPM fails.

    Hi Experts,
    I am doing a HTTP>XI>RFC scenario. I am using the BPM .. SO my BPM is very simple and the requirement is if any of the transaction goes wrong the others should not be posted to R/3 from HTTP but rather should wait in a recieve step and once the failed one is corrected and resend then the other should be posted...
    So my BPM is like this
    Recivece step - > switch (container element CON ! = X ) then sync send to call the BPM - > check whether the return structure has error message E if so setting the container element CON = X thru a container operation and throwing a forced exception to stop the BPM...
    I am just testing it, this may not be a complete no of steps but now i get error in my SYNC step itself stating .
    <b>Work item 000000000047: Object CL_SWF_XI_MSG_BROKER method SEND_SYNCHRON cannot be executed
    Message no. WL821
    Diagnosis
    The calling of the object method for the work item ended with a return value for which no handling is modeled in the workflow.</b>
    I am not handling any exception in the workflow and i am sure that the payload i posted would not return any exception...
    I have just given the Sync interface, Request message, response message and the Receiver from Send context for my Sync step
    Could you please guide me where i am going wrong..
    Thanks in advance for you replies.
    Regards,
    Rajesh

    Hi Rajesh,
    The below thread talks about the same issue as you are having and it also talks about couple of OSS notes in it...Please see if they are relevant to your case..
    Object CL_SWF_XI_MSG_BROKER method SEND_SYNCHRON cannot be executed
    May be you already checked this by searching this on SDN...if yes, please ignore my reply...
    Thanks,
    Renjith

  • Sync Send step in Block step...in BPM

    Hi All is it possible to maintain a syncrounous send step in Block step, please let me know how....we can maintain for request message and response message.
    Thanks
    Srinivas

    Hi ,
    Its simple
    Receiver- transformation  -Block -
    Sync step -
    Container-----Block -
    Final send
    Exception -
    Regards,
    Jude

  • 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

Maybe you are looking for