Sync to Asyn Message interface mapping

Hi all,
I have a scenario where source message interface is a sync interface and target is async. Can any body suggest if it is possible to map the request message structure of source to target (async) and the response need to have a fixed value.
Is it required to use BPM or is it possible without BPM. Can any body please suggest? Any help will be appreciated.
Thanks
-Kulwant

Hi,
Defining Sync/Async Communication
Use
To enable the communication between a synchronously calling business system (synchronous outbound interface) and an asynchronously called business system (asynchronous inbound and outbound interface), you can define a sync/async bridge in an integration process. You can only define one sync/async bridge for each integration process.
You can also achieve sync/async communication by using the JMS adapter. If you do not have any particular demand for monitoring or for troubleshooting, SAP recommends that you use sync/async communication in the JMS adapter instead. The advantage of using the JMS adapter over synch/async communication using an integration process is a significant increase in system performance.
See: Async/Sync and Sync/Async Bridge in JMS Adapter
We use Sync/Async bridge to establish the Sync communication between the Applications.
Normally the Technical adapters like File will not support the Sync communication to send back the Response to the Sender system from the File system.
So in this case we will use Sync/Async bridge to establish the connection using BPM.
Check these
Bridging the Sync-Async bridge with Fork (XI)
Use of Synchronous-Asynchronous Bridge to Integrate Synchronous and Asynchronous systems using ccBPM in SAP Xi
Structure of a Sync/Async Bridge
The following table outlines the minimum components of a sync/async bridge:
*Step
Use*
Receive step to open the sync/async bridge
Receives the message request from the synchronously calling business system and opens the sync/async bridge
Asynchronous send step
Sends the received message asynchronously to the asynchronously called business system
Receive step
Receives the message from the asynchronously called business system
Send step to close the sync/async bridge
Sends, for example, the response from the asynchronously called business system to the synchronously calling business system
Performance Considerations
If you insert additional steps in the sync/async bridge, the synchronous time is increased correspondingly. If the time that elapses before the sync/async bridge is closed is too long, this can lead to problems.
Fault Messages
It is currently not possible to send fault messages back to the synchronously calling business system. If you want to return error statuses to the synchronously calling business system, you can define a field for an error indicator in the message that is sent to the synchronous interface.
Procedure
Define a Receive Step to Open the Sync/Async Bridge
1. Insert the receive step to open the sync/async bridge in the integration process.
*You can do this at the following points: *
Directly after the start marker
As the first step in a block if the block is the first step of the integration process and if it has the mode Standard
As the first step in a fork. If the fork already contains some starting receive steps, the Start Process indicator is automatically reset for these steps.
2. In the object area, define the container element that receives the synchronously sent message.
Specify an asynchronous, abstract interface in the container element. The message must correspond to the request message of the synchronous interface used to receive the message.
3. Select this container element in the Message field in the properties area of the receive step.
4. In the Mode field, select Open S/A Bridge.
5. Select the Start Process field.
The receive step to open the sync/async bridge must start the integration process. There must be no other receive steps to start the integration process.
6. Specify the synchronous interface for receiving the message from the synchronously calling business system. The message type of the message to be received and the request message from the synchronous interface must be identical.
Define an Asynchronous Send Step
7. Insert a send step that sends the received message asynchronously to the asynchronously called business system.
See also: Sending Messages from Integration Processes Asynchronously
Define a Receive Step
8. Insert a receive step that receives the message from the asynchronously called business system.
Define a Send Step to Close the Sync/Async Bridge
9. Insert the send step at the required position in the process definition.
Do not insert the send step in a loop, block, or fork.
10. In the Mode field, select Close S/A Bridge.
The integration process must not contain any further send steps to close a sync/async bridge.
11. In the Opened By field, specify the receive step that opened the sync/async bridge.
12. In the message field, specify the message that is sent to the synchronous interface.
This message must be of the same type as the response message from the synchronous interface that you specified in the opening receive step.
Example
You can find an example of a sync/async bridge in the Integration Repository under SAP Basis à SAP Basis 6.40, namespace http://sap.com/xi/XI/System/Patterns under BpmPatternSyncAsyncBridge.
For a description of the example, see Example: Sync/Async Communication.
BPM is an additional advantage of Netweaver XI. it provides features like Sync-Async Bridge, Async-Sync Bridge, stateful msgt processing.....so on.
Sync-Async Bridge acts as a bridge between a synchronous Business system and Asynchronous business system.
forex: if u r communicating with a synchronous RFC to a File system(always asynchronous, which is not able to send any response to synchronous RFC Interface).
In this kind of scenarios BPM Sync-Async Bridge enables communication between a Synchronous RFC to Asynchronous File system or vice versa..
Sync/async communication enables a synchronous sender system to communicate with a receiver system that cannot process synchronous messages
Plz go thru the following:
- Use of Synch - Asynch bridge in ccBPM
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] - Use of Synch - Asynch bridge in ccBPM
Asyn - Synch BPM -
http://help.sap.com/saphelp_nw70/helpdata/en/83/d2a84028c9e469e10000000a1550b0/content.htm
http://help.sap.com/saphelp_nw70/helpdata/en/43/65d4dab39b0398e10000000a1553f6/content.htm
Example on Sync/Async communication:
http://help.sap.com/saphelp_nw04s/helpdata/en/43/65d4dab39b0398e10000000a1553f6/frameset.htm
Thanks,
Swathi

Similar Messages

  • Interface Mapping does not exist in runtime cache

    Hi,
    I have a scenario of RFC to SOAP, when I do the test I get the error message "Interface mapping http://sapxi.xxx.co.za/XXXXXX/ InterfaceMapping_Name does not exist in runtime cache"
    Regards
    Scharlotte

    Hi...
    Try to re-create the Interface mapping.
    And also test your Configuration with test tool where you can find the error on which step.
    if the error found in interface mapping.. do re-create the interface determination step and receiver agreement.
    Provide the payload which is taken from sxmb_moni --> Inbound msg --> Payload
    u can follow this blog for how to test configuration part:
    Test Your XI Configuration With The New Test Tool
    Regards,
    Parvathy

  • Unable to view Abstract Message Interface(Sync) in Container Step of BPM

    Dear Friends,
    This is IDOC---SOAP Sync Communication Interface
    I have created the External Def by exporting & importing the Standard Idoc
    and Imported the WSDL File which has the Request & response Structure
    I have created the Outbound Sync message Interface for Idoc side
    and Abstract Sync message Interface for the same to use in BPM
    and also created Inbound Sync Message Interface for Webservice side
    and Abstract Sync Message Interface for the same to use in BPM
    Problem is::::
    While creating the Container varible inside the Integration Process, i have to select the Abstract Message Interface which i created for Idoc.
    But it is not at all visible in the list.
    What might be the problem
    REgards
    Seshagiri

    Hi,
    I have created
    For Idoc side
    1) Create O/b Sync by having request of Idoc and response structure of Idoc 
    2) Create ABS Sync by having the request of Idoc and response structure of Idoc 
    3) Create ABS Async by having the Request of Idoc Only
    For Webservice side
    1) Create I/b Sync by having the request of webservice and response of that
    2) Create ABS Sync by having the request of webservice and response of that
    3) Create ABS Async by having the Response of Webservice only
    I created the Steps inside the Integration Process as showed in the screens.
    1)Integration Process graph
    http://img145.imageshack.us/img145/4848/ipviewwv1.jpg
    2)Receive Step
    http://img293.imageshack.us/img293/1756/receivepropng8.jpg
    3)Send step1
    http://img179.imageshack.us/img179/2200/send1bd0.jpg
    4)Send Step2
    http://img182.imageshack.us/img182/8468/send2wl1.jpg
    When i check the F7, it is throwing the error like
    http://img247.imageshack.us/img247/4356/errortx3.jpg
    Regards
    Seshagiri

  • Message Mapping vs Interface Mapping test tabs giving different results.

    Hi all,
    I am developing an interface that always requires an output file to be created (even if there is no data).  I have found a way to change my select statement in the JDBC sender to initiate the message even if there isn't any data (using UNION select -1 ID, '' col1, '' col2, etc.) and that seems to work fine.  I then put logic in the message mapping to suppress the row that contains the -1 ID value, which would result in an empty file when there is no other data, and should result in a file containing only the correct data when there is data.
    So, my problem: I am always getting empty files with this logic.  I tested the logic in the message mapping test tab and it worked perfectly, however when I test it using the interface mapping test tab it results in what becomes an empty file!
    My source and destination structures are fairly simple:
    Root
    --row
    ID
    col1
    col2
    The logic I use to suppress the ID = -1 row is:
    =removeContexts([]ifWithoutElse([keepss=true]Not([]equalsS([]ID, Constant([value=-1]))), SplitByValue([type=Each value]row)))
    Obviously, I'm stumped - any help would be appreciated!
    Edited by: Mike Morrison on Sep 23, 2010 5:04 PM

    Hi Mike,
    Can you quote the error log..u r getting error in message mappin or interface mapping?
    Please suggest the test results for both the mappings.
    Thanks,
    Sushama

  • No namespace tag in target message (Test Interface mapping)

    Hi,
    I'm doing a <b>IDoc to file</b> scenario, and I'm using <b>external definitions</b> and a XSLT mapping. When I try to test the mapping in Interface Mapping he maps it but I <b>can't see the tree view</b>, I only get the source code...
    <?xml version="1.0" encoding="utf-8"?>
    <SenderID/><ReceiverID/><DocumentDate>20051028090653</DocumentDate>
    <DocumentNumber>456184</DocumentNumber><TestIndicator>     P</TestIndicator>
    <Version>1.0/SSCC</Version>
    <Desadv><MessageReferenceNumber>81749973</MessageReferenceNumber></Desadv>
    I presume that there is a <b>namespace</b> tag <b>needed</b> like
    <ns:Desadv xmlns:ns="http://www.certione.com/RFDesadv/Schema">
    but I don't know what to do to have it added to the target message which is external definition Desadv with namespace http://www.certione.com/RFDesadv/Schema in the XSD...
    Any help would be appreciated!
    Kind regards..
    Message was edited by: Bart De Saedeleer

    Hello,
    Could you put your XSD definition ?
    And check your mapping because it seems that you don't have a root node in output.
    <?xml version="1.0" encoding="utf-8"?>
    <b><MYROOTNODE></b>
    <SenderID/><ReceiverID/><DocumentDate>20051028090653</DocumentDate>
    <DocumentNumber>456184</DocumentNumber><TestIndicator>     P</TestIndicator>
    <Version>1.0/SSCC</Version>
    <Desadv><MessageReferenceNumber>81749973</MessageReferenceNumber></Desadv>
    <b></MYROOTNODE></b>
    Regards,
    Chris
    Message was edited by: Christophe DUMONT

  • Exchanging data between interface mapping and message mapping possible?

    Hi,
    please have a look at my interface mapping:
    source message -
    >
    mapping programs
    1. Java mapping
    2. XSL mapping
    3. message mapping
    > target message
    in my scenario a Java Class (1) is called for the interface mapping. There, some information ist read from the xml structure. Next, a xslt mapping (2) takes place that strips some information. The remaining data is passed to the message mapping (3)
    The reason for this is that the source message consists of a xml message inside an xml message.
    I am looking for a way to access the informationen gained in step 1 (Java class) in the message mapping (step 3). I was hoping that the global container (used by user-defined function within message mapping) is accessible from the java mapping, but I could not find out how.
    Anybody with some ideas how to pass information from step 1 to step 3? I cannot put the Information in the xml that is passed to the message mapping, because the schema of the inner xml cannot be changed.
    Thanks very much, best regards,
    Wolfgang

    Hi Wolfgang!
    I have used the "Dynamic Configuration" section in the XI Message header for this issue. You could write something into the Dynamic Configuration Section in step 1 (Java-Mapping) and read it out again in steps 2 or 3. You could use a section for a adapter you are not using in your interface for the real receiver. So if you have a File-Receiver Adapter at the "end" you could use some section of the e.g. SOAP adapter not to interfere with your receiver-adapter when using Dynamic Configuration Settings there ...
    See also: http://help.sap.com/saphelp_nw04/helpdata/de/43/09b16006526e72e10000000a422035/content.htm
    or
    http://help.sap.com/saphelp_nw04/helpdata/de/43/0a7d1be4e622f3e10000000a1553f7/content.htm
    Best regards,
    Andi

  • Two Message Mappings in one Interface Mapping without using BPM

    Hello Experts,
    I have this scenario, please help me
    I have to execute two mappings of which one is a java mapping and then the other is a message mapping sequentially.
    The mapping is something like below
    Message1  -> (java Mapping) -> Message2
    Message2
    Message1 -> (Message Mapping) -> Message3
    Based on the value in Message2 I have to map Message1 to Message3
    I am not an expert in java so please give me options that doesn't involve changing of java code.
    The above 2 mappings have to be implemented in only one interface mapping.
    Suggestions please.

    Hi Ravi!
    You say message2 dependes on message1 and message3 is mapped from message1 but using also values from message2? But this means, that whole mapping dependes only on message1!
    So change your mapping and use the one not based on message2, but message1. Put these as a condition in interface determination and based on these values use the correct mapping.
    Peter
    p.s. I'm not sure, if I got your requirement correctly, but your target message dependes only on message1 (since message2 dependes on it too), so this whole mapping can be done as 1. Unfortunately, you'll probably have to change your java part. Bur definetely, Raj is right.
    Edited by: Peter Jarunek on Feb 20, 2008 5:36 PM

  • Outbound and Abstract Sync message Interface difference

    Hi Experts,
    Is there any difference between the input and output messagetype for Outbound/Inbound Synch Message Interface and Abstract Sync Message Interface.
    Do we  need to mention the same input and output messagetype for both outbound and Abstract or it should be otherway around?
    Regards
    Sara

    ---Is there any difference between the input and output messagetype for Outbound/Inbound Synch Message Interface and Abstract Sync Message Interface.
    No there is not. U can select any message type irrespective of the type of message interface.
    ---Do we need to mention the same input and output messagetype for both outbound and Abstract or it should be otherway around?
    Yes. As per ur requirement u can specify the same.
    Regards,
    Prateek

  • Query Regarding Multi-Message Mapping in Interface Mapping.

    Hi All,
    I've a query that can we use Multi-Message Mapping in Interface Mapping if:
    One mapping structure is simple one-2-one mapping and
    Second mapping is calling a stored procedure.
    Please give me some links if the answer is YES.
    Thanks in Advance.
    Regards,
    Sreedhar.
    Edited by: Sreedhar Av on Oct 12, 2009 1:26 PM

    Hi,
    Your question not clear buddy..what i understood is..
    If you want execute multiple message mappings in Interface mapping we can ,just add two mapping programs in interface mapping.first mapping program output is input to the second mapping program.
    If first mapping program is very simple,if you want to execute stored procedure in second level mapping write used defned fun ction to conect to data base or create JDMC receiver communication channel ,cal the communictaion channel in udf.write stored procedure in UDF.
    SEARCH for more info in sdn how to perform DBLOOKUPS.
    regards,
    Raj

  • UDF works in Message Mapping but not in Interface Mapping

    Hello,
    I have encountered a very strange problem. I use a simple UDF in a message mappings which imports a class that has been imported as "imported archive".
    This works perfectly fine when testing the message mapping itself.
    However when I execute the message mapping within a interface mapping I get a Java Error indicating that resources are missing (com.sap.aii.ib.core.mapping.ResourceNotFoundException) This error refers to a missing class.
    How can this be? Message mapping works but not when using it in a interface mapping.
    Do you have any idea?

    Hello,
    this is what I have already tried, with the same result. But now I have come to a conclusion. It is a little bit tricky, but maybe also helpful for others:
    A method of a class (part of the imported archived) itself calls a class which throws an exception. This exception however is handled by the method itself and does not affect the overall outcome.
    In the message mapping itself you do not see the error message, only in the interface mapping. Result however is the same.
    Maybe the trace level is set different for mesage and interface mapping.....

  • Call another Message Interface from Java Mapping

    Hi Gurus!!
    I have designed a Java Mapping that does a Socket Connection. Before send the response of the Java Mapping, I have to send information to our SAP System.
    I have see in a blog that I can call a RFC from the Java Mapping, but my doubt is, can I call another Message Interface designed on XI?
    Thanks and regards,
    Manuel Míguez.

    That's tricky, since the proper way of doing it would be through BPM.
    Anyway, if you expose your XI interface as a WebService (Soap sender cc) you could access it through Mapping Lookup (lookup works for RFC, DB and Soap lookups). Check https://help.sap.com/javadocs/NW04S/current/pi/index.html
    But be aware that Mapping Lookup API is not intended for inserts/updates (since it doesn't contain any transacational handling), just mere lookups (selects in tables), so I'm not sure it is the best approach for your case.
    Regards,
    Henrique.

  • Use RFC message exception in Interface Mapping

    Hi,
    during my BP scenario I want to use the content of a RFC exception given back by my RFC in a interface mapping.
    Now I'm asking myself how to refer to a RFC exception as a source interface in an interface mapping (to use it in a message mapping was no problem).
    Do I have to specify a special message interface for the RFC exception?
    Thanks for any answer!

    Hi Christina,
    Cant believe that. Of course you need another interface.
    For example:
    synchr outbound-interface (output-message, input-message, fault-message)
    RFC is your inbound-interface in the interface mapping mapping. You should be able to choose Request, Response and Fault Type for the RFC.
    if nothing helps, send me screenshots (if-mapping, the other interface, the RFC) to [email protected]
    Regards,
    Udo

  • Message Mapping And Interface Mapping

    Hi,
    I have 2 software components.
    One is for sender and one is for receiver.I have created all the Data types,Message type and Message Interface fro sender in the first Software component and data types ,message type ,message interface for the receiver in the second software component .
    Now, in which Software component should i create Message Mapping and Interface Mapping?
    Thanks in Advance,
    mvk

    Hi,
    You could use the created Message type and Message interfaces in Sender as well as receiver software components for creating message mapping, interface mapping and integration scenario.
    Generally it makes sense to maintain the message mapping, interface mapping and integration scenario in receiver software component. The message mapping and Integration scenario is specifically based on the receiver end requirments, so its preffered on receiver software component.
    The sender side details could be reusable in case if you need those for another new receiver software component. If you maintain it in sender component, then that will lead to mix-up all the things on sender side even though its based on receiver end.
    I think this could help you.
    In PI7.1 now there is concept of Folders to maintain all the interfaces appropriatly and leads for reusability of existing objects.
    Please refer below links for more details,
    /people/thorsten.nordholmsbirk/blog/2006/07/25/structuring-integration-repository-content--part-1-software-component-versions
    http://help.sap.com/saphelp_nw04/helpdata/en/42/ed903cf6c4492ce10000000a114084/frameset.htm
    Thanks
    Swarup
    Edited by: Swarup Sawant on Jan 26, 2008 8:33 AM

  • Interface Mapping with Multiple Message Mappings

    Hi My Scenario is
    File to Idoc.( Multiple records to Multiple idocs )
    Due to Complexity of Mapping I split the Mapping step into 2.
    My Source System does not provide Namspace when they are sending XML Data.
    When I try 2 mappings individually both Mappings works fine.
    However when I try test using Interface Mapping target messages are not generated.
    Since 2nd Mapping invoves Mapping Split its expecting extra tags as shown here in the Targert Message generated from Message Mapping 1.
    <i><ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
       <ns0:Message1></i>
    How can I solve this problem ?

    When I do Message Mapping:
    From message Mapping 1 target Produced is as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:CostMaintenanceXI xmlns:ns0="http://test.xxx.com">
    <CostMaintenanceXI>
    <CostMaintenanceXI>
    <Product>000000000000000023</Product>
    <Plant>1401</Plant>
    <Supplier>0000000001</Supplier>
    <ValidityFrom>20021212</ValidityFrom>
    <DIIndicator>ZFOB</DIIndicator>
    <COGAmount></COGAmount>
    <COGCurrency></COGCurrency>
    <FreightAmount></FreightAmount>
    <FreightCurrency></FreightCurrency>
    <MISCAmount></MISCAmount>
    <MISCCurrency></MISCCurrency>
    <SPAAmount></SPAAmount>
    <SPACurrency></SPACurrency>
    <LandedCaseCost></LandedCaseCost>
    <LandedCaseCurrency></LandedCaseCurrency>
    <FrontLinePrice></FrontLinePrice>
    <FrontLinePriceCurrency></FrontLinePriceCurrency>
    </CostMaintenanceXI>
    </CostMaintenanceXI>
    </ns0:CostMaintenanceXI>
    in 2nd Mapping I entered some details in the test tab and the generated source is as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
       <ns0:Message1>
          <ns1:CostMaintenanceXI xmlns:ns1="http://test.xxx.com">
             <CostMaintenanceXI>
                <CostMaintenanceXI>
                   <Product>1</Product>
                   <Plant>1</Plant>
                   <Supplier>2</Supplier>
                   <ValidityFrom>12212122</ValidityFrom>
                   <FOBIndicator/>
                   <DIIndicator>ZFOD</DIIndicator>
                   <COGAmount>10</COGAmount>
                   <COGCurrency/>
                   <FreightAmount>10</FreightAmount>
                   <FreightCurrency/>
                   <MISCAmount>10</MISCAmount>
                   <MISCCurrency/>
                   <SPAAmount>10</SPAAmount>
                   <SPACurrency/>
                   <LandedCaseCost/>
                   <LandedCaseCurrency/>
                   <FrontLinePrice/>
                   <FrontLinePriceCurrency/>
                </CostMaintenanceXI>
             </CostMaintenanceXI>
          </ns1:CostMaintenanceXI>
       </ns0:Message1>
    </ns0:Messages>
    As you can see both of the above structures differs in xmlns. I dont see anything else weird.

  • Interface-Mapping with a Fault Message Type

    Hi,
    we have an abap-proxy and some messages generated errors. The errors can be displayed via sxmb_moni. The proxy raises an "Application Error (Restart possible)".
    Now I wanna transform the generated fault message (of the proxy) with a message mapping and send the output to a file.
    My problem is, that it is not possible to define an interface mapping with the fault message as well as it is not possible to define a receiver determination.
    Any ideas?
    Thanks a lot
    Regards
    Wolfgang Hummel

    Hello
    As far as I know you can propogate the application error back to the calling application only in case of a Synch Interface? Are you making a Synch call where the proxy triggers a fault message,  if yes then all you need to do is to make the change in XI to have the fault message for both the outbound and inbound message interfaces and then a corresponding fault message mapping and select this in the Interface Mapping and then the fault message will be sent to the source / calling application.
    In the case of Asynch calls I don't think this is possible until you use a BPM. Have not tried this myself though.
    Regards,
    Bhavesh

Maybe you are looking for

  • What is a "star" after phone number in a contact

    Using iPhone 4S with IOS 5.1. On some contacts there is a  "*" ("star") after one of the phone numbers. What is the meaning? Have not found any explanation in the User's Guide for IOS 5.1.

  • Upgraded to IOS 7.0.3 on my Iphone 4S. How do I see mail in each account separately?

    Upgraded to IOS 7.0.3 on my IPhone 4S. Previously mail was separated into individual accounts,  but now all mail is lumped into "All Inboxes". How do I see mail in each account separately, so that I can reply from appropriate account?

  • Can't search on connected Windows servers in OSX 10.5.6

    Ever since I switched to Leopard, I can no longer search for files on our servers. In Tiger there was an option for "Others" and I could select the server there. Anyone know how? Thanks GJS

  • Wont wake up from standby

    I've had this problem for sometime now, where it simply wont wake up from standby when it have slept for more than ≈3 hours, and I have to do a force shutdown. Programs opened when going in standby: Google Chrome, iTunes, Skype, Dropbox, Hamachi, Goo

  • Life with 64bit OS in a 32 bit world

    Ok Oracle gurus can you help me with this? I have VS 2008 installed on a 64bit OS. I am troubleshooting apps for my company that were built by a developer that quit. When i go to run the app to debug it i get the following error when i try to connect