Webservice to IDOC : Bridge sync/async

Hi,
I have a simple scenario where we send data synchronously via webservices and idoc would be created in target system.
So I need to create a sync/async bridge.
But i have a doubt in first receiver step and its properties:
Syncronous interfaces --> it must be a SYNC and abstract message interface
Message --> It must be an element of container. When i create element in container, only abstract ASYNC message interface could be selected.
Then,  with this configuration,  error  " Message to be received and synchronous interface do not have identical types " is returned.
How to do it?
Thanks, in advance
Carme.

Hi Carme,
Just make sure you are making a SYNC/ASYNC bridge in BPM as explained in the following doc's
saptechnical. com/Tutorials/XI/SYNCASYNC/Page2.htm
Alternatively you can use the BPM pattern; BpmPatternSyncAsyncBridge for the same.
http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/frameset.htm

Similar Messages

  • Use of sync async bridge for webservices

    Hi ,
    We have a scenario where we need to send a data from ERP system to PI via webservice. PI communicates with a third party system via webservice.
    The data can be posted to this third party system using webservices. The third party system then reads some data asynchronosly and sends the data to PI . We need this data to be sent to the synchronous webservice from ERP system.
    Can we use the sync async bridge for this scenario. Some details on how we can do this will be very helpful..
    Thanks
    Bharathwaj

    Hi Abhishek,
    Thanks for the immediate reply.
    The scenario is 
    ERP <---WS/SOAP--->PI -----WS /SOAP of 3rd party---> 3rd Party system (X).
                                                       PI  <------- WS of PI
                X posts the data to a backend. THe system X then picks some processed information. This system is not capable of sending the response synchronosly. It can post this data to PI once the data is available. Now PI needs to take this data and post it to the WS request from ERP.
    Hope I have provided some clarity on the scenarion..
    Thanks again.
    Bharathwaj
    Edited by: Bharathwaj on Aug 11, 2009 4:59 PM

  • Sync/Async bridge

    Hey
    My task is to have an Idoc sent to a Web Service. I have heard that this can be solved using a sync/async bridge in BPM, but from what I can read (help.sap.com) it always say that the first receive step is from a synchronous application. My question is then: Can I use the sync/async bridge to call a web service - i.e. changing from asynchronous (Idoc) to synchronous (WS call)?
    Anyone knows a blog that shows some good examples of sync/async communication? I have read the inital blogs on BPM, but not found anyone good at async/sync communiation...
    thanks a lot!
    regards Marianne

    Hi,
    If you want to receive the response from Webservice means you need to use BPM here.
    Otherwise no need of any BPM,
    That too if u want to response from WS also u dont require any Sync/Async Step here.
    You can configure the BPM with Async receive-Sync Send-Async Send
    REgards
    Seshagiri

  • Regd NWBPM Sync/Async Bridge

    Hi,
    I have a synchronous to Asynchronous interface. Customer sending the data through SOAP and he is expecting the response. From PI we are sending the data to ECC through IDoc.
    I checked couple of blogs but those are related to Sync-to-Async (Async request and Async Response at target side). Can you please help me how to achieve this.
    I checked  below links
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80f96dbf-adca-3010-ffb5-daf2d1f0e276?QuickLink=index&…
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/50be5f78-c84d-3010-32ac-ea68b7202932?QuickLink=index&…
    Thank you.
    Regards,
    Venkat

    Hi Rohini,
    Sync/async communication enables a synchronous sender system to communicate with a receiver system that cannot process synchronous messages.
    The central component of sync/async communication is the sync/async bridge, which enables the Integration Server to receive synchronous messages from a sender and send them to a receiver as asynchronous messages. Conversely, it can send the asynchronous response from the receiver back to the sender as a synchronous response.
    To do this, you define an integration process, which is started as soon as a synchronous message is received from the sender system. The process uses a special receive step to open the sync/async bridge, sends the received message to the receiver system asynchronously, and waits for the asynchronous response to arrive from the receiver.
    The Business Process Engine receives the asynchronous response from the receiver, correlates it with the corresponding query, and activates the waiting process, which then sends the response back to the sender synchronously.
    There is an example of the Sync/Async Bridge in th SWCV: SAP BASIS.
    Namespace: http://sap.com/xi/XI/System/Patterns
    Go through this link to get a good idea as to how to <a href="http://help.sap.com/saphelp_nw04/helpdata/en/43/65d4dab39b0398e10000000a1553f6/frameset.htm">Define Sync/Async Communication</a>
    This blog also should give you some idea...
    https://www.sdn.sap.com/sdn/weblogs.sdn?blog=/pub/wlg/1403 [original link is broken]
    Also go through these links:
    http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c4/dc06418752ef6fe10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/f9/66bf40ad090366e10000000a1550b0/RN_XI_DE_neu.pdf
    I hope it helps.
    Regards,
    Abhy
    Message was edited by: Abhy Thomas

  • Dynamic configuration in Sync/Async bridge in JMS

    Hi
    Scenario:
    Portal sending request to JMS MQ and getting Response using sync/Async Bridge.
    I have to written a UDF which will capture the value for cust_uid from request mapping and store it in dynamic configuration
    And when the response comes from JMS MQu2026.this value gets populated in response mapping.
    I have tested the UDF in a dummy Soap2rfc scenario and its working fine.
    But when used in Sync/Async Bridge, the dynamic configuration  fails.
    For Sync/Async Bridge, there are 2 channels 1) Sender JMS 2) receiver JMS.
    The synchronous request is converted to an asynchronous request in the module processor and sent.
    The asynchronous system sends a response to a sender adapter. In the module processor of the sender adapter, this response is forwarded to the module processor of the original receiver adapter, where it is sent as a synchronous response of the waiting synchronous request.
    Please  suggest
    Regards
    Abhijit

    Hi Abhijit,
    Okay, so your data extraction/insertion is working fine for a simple synchronous request responser call.
    I suppose this is working fine because your receiver adapter copies some part of the request message (at least the dc header) to the response message. (But I don't think this always works for all the adapter types). It is not working for the sync-async bridge because there are two unrelated messages in this case.
    In order to copy the dc header from the first message to the second message, I think you can use the DynamicConfiguraitionBean module to store the dc header value in the module data and use this module again to recover it and set it to the second message. The whole process is somewhat complicated, but I will sketch the approach below.
    First, let's call the first use of DCB the store step and the second the recover step. These store and recover steps must take place in the same module sequence so that they can use the module data to pass data from the first message to the second message. Furthermore, the store step must occur after the cust_id value is extracted into the dc header. So, your configuration must be placed in the receiver adapter side. Assuming the request message with the filled dc header coming into the module sequence, the first DCB module can be placed before the ROB module to store the dc header value in the module data. And the second DCB module can be placed after the WRB module to recover the dc header value from the module data and set it the dc header of the response message.
    I hope this will work.
    Regards, Yza

  • Getting Time-Out Error in Sync-Async Bridge

    Hi All,
    My IP has a Sync-Async Bridge. I have a fork, two senders, two switchs and a transformation step inside the bridge.
    If XI takes much time to process the IP, the send step that closes sync-async bridge is not waiting for the message after a particular period and throws time out error to the sender.
    Is it possible to increase the waiting time for sync-async bridge?
    This IP works correctly 8 out of 10 times. Sometimes the message is sitting permenantly in the queue(smq2) and gives me system failure error.
    Can u tell me why this problem happening?
    Thanks & Regards,
    Senthil.

    Dear Michal/Senthil,
    Can you pl clear a confusion that i have had for ages...
    suppose there is a sync/async bridge ( i understand that it is used for sync business system too async BS communcation )
    where we have 4 steps
    sync receive - > async send -> async receive -> sync send..
    i do understand that async send and async receive are combined through correlation
    but i do not understand how do they work..
    i mean when async send say send a file to a target system...does async receive reads a file from the same folder based on the corelation or wat...
    basically can you pls explain me how do the steps 2 and 3 above work
    Edited by: Tarang Shah on Mar 3, 2009 12:51 PM

  • Using WAIT step in Sync/Async Bridge

    I am using a sync/async bridge and placed a 1 minute wait step in between my async send and async reply.  When I test my process, the async reply comes in but then my 1 minute wait eventually times out and gives me an error.  Can someone guide me in fixing this BPM design (which steps to add and how)?
    http://webpages.charter.net/kpwendel/bpm_with_wait.jpg
    I would like it to stop waiting once the async reply comes in and not timeout.  If the 1 minute mark comes and a reply never came in, it would also be nice to send back an error message.
    Thanks!

    I pulled my WAIT task and had this scenario working a week ago.  I have not made any changes, but now my inbound replies to close the BPM and link up to the request are not "linking".  The request is eventually timing out even though the reply with a good correlation id comes in successfully.  Any suggestions?
    UPDATE:  I went through my objects in the IB:Config and resaved/activated them and now it is working.  Don't know what messed them up in the first place.
    Message was edited by: Keith Wendel

  • Sync/async bridge with mapping

    Hello togehter,
    i have to define a bridge between an sync RFC an an async DB Receiver.
    Thus i also need a mapping since the message types are different. But where
    in the BPM Flow can i add the interface mapping?

    <i>i have to define a bridge between an sync RFC an an async DB Receiver.
    Thus i also need a mapping since the message types are different. But where
    in the BPM Flow can i add the interface mapping? </i>
    >>>
    For the Sync/Async pattern -
    http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/content.htm
    You can assign you mapping (IM) in the transformation step.ref: http://help.sap.com/saphelp_nw04/helpdata/en/27/db283fd0ca8443e10000000a114084/content.htm

  • Sync/Async bridge via JMS with FAULT messages

    Hello all,<br><br>
    I set up a sync/async bridge scenario with using of JMS communication channel (SAP - JMSReceiverCC - JMSServer and application - JMSSenderCC - SAP). The normal communication works fine.<br>
    But what we can not solve is the Fault Message handling. If there is a application error behind the JMS, a fault message is generated instead of proper application response and sent back to XI. Without any additional setup of JMS Sender CC the processing of the message ends with "MAPPING - EXCEPTION_DURING_EXECUTE", because normal "response mapping" is executed instead of "fault message mapping". This is correct behavior without any discussion.<br><br>
    [SAPhelp|http://help.sap.com/saphelp_nw70/helpdata/en/45/202845de34072ce10000000a155369/frameset.htm] says that there are 2 module parameters to be set : fault, faultNamespace. The description is rather vague, so let's see, what the "NotifyResponseBean" does, when parameters fault/faultNamespace are filled:<br><br>
    <pre>if(fault != null && faultNamespace != null)
      if(faultNamespace.equals("http://sap.com/xi/XI/System"))
        ((XIMessage)message1).setMessageClass(MessageClass.SYSTEM_ERROR);
        ((XIMessage)message1).setError(fault, "no additional information");
      } else
        ((XIMessage)message1).setMessageClass(MessageClass.APPLICATION_ERROR);
        ErrorInfo errorinfo = message1.createErrorInfo();
        errorinfo.setAttribute("ApplicationFaultInterface", fault);
        errorinfo.setAttribute("ApplicationFaultInterfaceNamespace", faultNamespace);
        errorinfo.setAttribute("ErrorCode", fault);
        errorinfo.setAttribute("AdditionalErrorText", "no additional information");
        message1.setErrorInfo(errorinfo);
    } else
      ((XIMessage)message1).setMessageClass(MessageClass.APPLICATION_RESPONSE);
    }</pre><br>
    The code is pretty straight forward so one could assume, that it's the name and namespace of inbound synchronnous message interface what is supposed to be filled in the values of each parameter. And from that kind of information SAP XI can evolve how to handle the response, actually the fault.<br>
    Unfortunatelly the real situation is different - every time the fault message is generated and sent back to XI, the response is correctly corelated with the request message, "WaitResponseBean" and "NotifyResponseBean" are finished correctly and the processing crashes in messaging class on following exception:<br><br>
    java.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:592) at
    com.sap.aii.messaging.mo.MessageContext.setAttribute(MessageContext.java:140) at
    com.sap.aii.adapter.xi.ms.XIMessage.updateHeaders(XIMessage.java:4244) at
    com.sap.aii.adapter.xi.ms.XIMessage.getTransportHeaders(XIMessage.java:570) at
    com.sap.aii.af.ra.ms.impl.ServerConnectionImpl.request(ServerConnectionImpl.java:212) at
    com.sap.aii.af.ra.ms.impl.core.transport.http.MessagingServlet.doPost(MessagingServlet.java:337) at ...
    <br><br>
    Is there anyone, who can put more light on JMS sync/async bridge fault handling ???
    <br><br>
    Thank you ...<br>
    Regards
    Tomas

    Hello again,
    I proceed in investigation little more, but the main problem has not been solved. I found that the problem is not even in WaitResponseBean (placed in JMCReceiverCC). This bean is woken up properly on base of proper CorrelationID. See the log:
    2009-10-15 11:00:33 Success WRB: entering WaitResponseBean
    2009-10-15 11:00:33 Success WRB: retrieving the message for f1ea1fc0-b96d-11de-9b68-00144f4acd86 ...
    2009-10-15 11:00:46 Success WRB: retrieved the message: ApplicationError
    2009-10-15 11:00:46 Success WRB: leaving WaitResponseBean
    I think, that the problem is somewhere within main messaging functionality. I suppose that on base of exception message:
    com.sap.aii.messaging.mo.MessageContext.setAttribute(MessageContext.java:140) at
    which is generated.
    Any ideas or comments ?
    Thank you in advance.
    Regards
    Tomas

  • Sync async bridge configuration

    Hi,
    I am doing one sync to sync scenario using sync/async  bridge in BPM,I am posting one message from HTTP client.
    I am receiving the synchronous message inside bpm and opened sync aysnc bridge.
    Then I need to do some transformations,
    after transformation step I am closing sync/async bridge and sending the message back to sender system.
    I have created repository objects,
    while configuring directory objects,
    I have run wizard once between sender and BPM and do i need to run wizard again?
    please explain me about configuration (ID objects)?
    Thanks
    Best Regards,
    Harleen Kaur Chadha

    Hi Harleen,
       Check this below blog,its very useful for ur requirement.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/10c73036-f019-2b10-20bc-f15a25be9588
    Regards,
    Skumar

  • BPM Design using sync-async  bridge

    Hi Arpit,
    Below mentioned is an overview of the process flow which we are trying to implement.
    1. A synchronous interface takes in the request
    2. After the mapping, a file is created
    3. Another file adapter reads this file and sends a message back to the sync interface. This step is to make sure that the file is created
    I'm using a sync-async bridge for this process, since file creation and reading processes are asynchronous and the request/response is synchronous.
    Can somebody help me by telling how to design the BPM. How many send and receive steps are required etc?
    Thanks,
    Sandeep
        | Request  |    |    |       |    |     |    |       |
        |--------->|    |    |       |    |     |    |File   |
    HTTP|          |Sync|--->|Mapping|--->|Async|--->|Adapter|
        |<---------|I/f |<-  |       |    |I/f  |    |(write)|
        | Response |    | |  |       |    |     |    |_______|
                          |                              |
                          |                              |
                          |                          ____|___
                          ||      |   |        |    |        |
                          -|Async |<--|File Adp|<---|Folder  |
                           | I/f  |   |(read)  |    |________|

    Hi
    <i>>>I have to map the incoming xml from HTTP to another format before creating the file.</i>
    Ya then u can use the transform Step in between the
    sync Recv ---> Transform ---> Send to File System
    <i>>>Once a file is read, that interface has to send an acknowledgement message telling the status.</i>
    Wht type of acknowledgement msg telling the status.
    I think u can add another element in ur created file payload like <b>Status</b>: Created (ConstanT)
    Then u can map the payload of the readed file with tis payload having Ststus init.Fo this u need a <b>Transformation</b> Step.
    BTW i was searching some previous blogs and i got this and it is bit related to ur scenario.Go thru this
    /people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi
    Hope it helps.
    Regards
    Arpit Seth

  • BPM - Receive Sync/ASync Bridge Problem

    Hi,
    I am creating a scenario for an inbound Synch request to be serviced by a BPM process.
    Here is the problem that I am facing while trying to configure the Receive Step
    - I created a Message Interface defined as Abstract Synchronous.
    - I created a process model and put in a Receive Step: Mode - Opens S/A Bridge, Synchronous Interface - defined as above.
    - I define a container with Abstract type. But when I try to locate the above defined Abstract Synch message interface, I cannot find it.
    - As a workaround, I create another Abstract Message Interface defined as Abstract ASynch.
    - I create a container with this Abstract ASynch message type.
    - I use this container in the Receive Step.
    But activating the Business Process gives the error:
    Message to be received and Synchronous Interface do not have identical types.
    Can someone give me the correct procedure to configure the Sync / ASync Bridge ? thanks,
    -Manish

    Dan,
    This is the link you are looking for?
    http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/frameset.htm

  • Sync / Async Bridge without BPM

    Hi All,
    I was trying to implement the Sync / Async Bridge without the BPM. I am trying a HTTP to JMS Sync / Async Bridge. I have followed the following link and done exactly the same as shown in the document
    http://help.sap.com/saphelp_nw04/helpdata/EN/45/20d2b4c20a0732e10000000a155369/content.htm
    I have used a Java application which will poll the request queue and then place the message in the response queue with the same correlation ID frm the request queue.
    After following the above link the response message was not appearing, the message were going to deilvering status and after some time i found that they were cancelled without errors
    I searched in the forums for many solutions but what i found was this thread which stated that since the XI message ID is 32 bytes and Correlation ID is only 24 bytes its difficult for Modules to identify the response since the correlation is truncated.
    JMS: Synch/Async bridge - how to configure
    I tried changing the configuration in the reciver JMS channel to XI Conversion ID instead of Message ID and this also doesnt give me fruitfull results. The message was not being placed in the request queue, it gave an error saying that the conversion id was null. Though in the thread it seems to have worked for him.
    After this i planned to dynamically generate a Correlation ID (a dummy one) of 24bytes and i sent it to the request queue this time the message was retrived from the response queue only to find that the correlation ID this time has been converted to some other format
    Corrletion ID sent to the request queue: ABCDEFGHIJKLMNOPQRSTUVWX
    Corrlation ID coming in the response queue : 4142434445464748494a4b4c4d4e4f505152535455565758
    Can anyone put some light on what i exactly need to do or tell me why the conversion ID worked for Daneil in the thread and it gave me an error saying that the Conversion id is null
    Rgds
    Aditya

    Hi Prateek,
    This is what was tried in my first case. I did exactly what was given in that link.But since the Message id being 32 bytes and length of correlation id is 24 bytes id is getting truncated.
    So its not working fine.
    @ke i am having a look at the note will update you on this
    Thanks for your response
    Rgds
    Aditya

  • File based Sync-Async Bridge

    Hi All,
    I have a scenario where a file is available in a shared folder.
    This file needs to be picked by a RFC Function module called in a Synchronous mode and the contents of the file needs to be displayed as the output of this RFC.
    Is this achievable using Sync-Async Bridge.If so can someone explain me the steps to achieve the same?

    If i were to open a Sync-Async bridge, I need to do the following
    Step 1: Receive step to open the sync/async bridge
    Step 2:Asynchronous send step
    Step 3:Receive step
    Step 4: Send step to close the sync/async bridge
    In my scenario.
    Step 1: Receive the RFC's request message
    Step 2: ????
    Step 3: Get the message from the file
    Step 4: Transform the file's message to RFC's response message
    Step 5: Send the RFC's response message  
    Moreover file adapter works in a polling mechanism..

  • Double Sync-Async Bridge

    Hi guys,
    One simple question:
    Is it possible to have two S/A Bridge in a single BPM? It should be quite simple.....
    Thanks in advance

    Hi,
    You are right in real time this will be not possible to even use the two S/A in one process.
    But you could design the process in such a way that
    lets assume you have one sender A and two receiver B & C
    A--Synchronous
    B---Async
    C---Async
    Now the scenario is like
    A-request -
    > B as well as for  -
    > C.
    here B is async so you need to built A to B as S/A bridge but as I had said simultaneously it need to send the data to C which is also async then you need to use Fork to create two branches one for B and one for C.
    Here you need to create Dummy response for A as B or C will not send any response.
    This scenario is very rare to be practical..but there is chance that you could design it in BPM.
    I am pretty sure about the scenario will not work successfully as there will be 3 ports opened at a time and multiple resources will be consumed.
    1. Define a Receive Step to Open the Sync/Async Bridge
    2. Define fork with 2 branch one for A and one for B
    -One Branch-
    Define an Asynchronous Send Step for B
    Define a Receive Step for B
    -2nd Branch--
    Define an Asynchronous Send Step for C
    Define a Receive Step for C
    4. Define a Send Step to Close the Sync/Async Bridge
    Here if you see you have two Sync/Async bridges one for A to B and another for A to C.
    I never have implemented it just giving you the hint.
    Thanks
    Swarup

Maybe you are looking for