Synchronous - asynchronous interface (RFC - XI - jdbc)

hello to everybody!
i want configure a synchronous - asynchronous interface (RFC - PI - jdbc) whit my PI 7.1
This RFC send 2 output tables to PI/XI and i want write it into 2 different tables in a SQL Server Database.
How can i do it?
i tried whit one mapping to a unique outbound datatype...but only header table was insert and not rows.
i tried whit 2 Receiver Interfaces but i have on mapping the follow error:
Multiple inbound interfaces not supported for synchronous calls
so??
other possibility?
BPM?
please help me
Thanks
Alessandro

Hi,
I have a similar problem; I have JMS - PI - RFC synchronous scenario. I will receive message from JMS, and depending on the data received, I should call either of two RFCs (NOT BOTH). The BAPI return message should then be sent back to JMS.
Hence, I have one "Sender/Outbound" Message Interface, one receiver determination for that Message Interface - in which there is "one" receiver (backend SAP system).
In "Interface Determination", I specifed the two BAPIs as two Interfaces, and defined conditions based on "context objects" - since I need to know the Interface Mapping "dynamically"
However, I get the error - "Multiple inbound interfaces not supported for synchronous calls ". any suggestions on how to proceed?
I am posting this question here as it is a related issue. Hope it is fine.
Thanks,
Archana

Similar Messages

  • Synchronous / Asynchronous Interface

    I am kinda confused about Synchronous interface/asynchronous.. When we talk about synchronous are we talking synchronous for the entire interface (From Sender system to XI to Receiver system) or we are just referring to Connection with XI system?
    If somebody can explain a classic synchronous and asynchronous scenario with a good example, I would really appreciate it..

    > I am kinda confused about Synchronous
    > interface/asynchronous.. When we talk about
    > synchronous are we talking synchronous for the entire
    > interface (From Sender system to XI to Receiver
    > system) or we are just referring to Connection with
    > XI system?
    XI decouples the sender and receiver of messages through interfaces. So, if the interface for the sender (called outbound interface) is synchronous, the sender is blocking on the request and the sender expects a response from XI synchronously.
    Consider
    System A -> XI -> System B
    If A's interface in XI is synchronous, then XI has to send a response to A synchronously. However XI may have an asynchronous interface with B. i.e. XI may post a message to B and may not expect a response from B. But A will not care what kind of processing happened between and B as long as A got a response back.

  • Synchronous-Asynchronous Interface with Java Proxy

    Hi Gurus!!
    I have an Interface which begins on SAP with a call to an asynchronous ABAP Proxy . Xi sends the message to Java Proxy Server. This Java Proxy Server calls to a Java Proxy Client that sends the response to SAP through XI. This response is taken on SAP on ABAP Proxy Inbound.
    These arquitechture is a requirement, because the time between the request and the response could be 30 minutes and the user shouldn't be waiting the response synchronously.
    Is there any way to the user could manage the response in the same "thread" that he opened in the request?
    I hope have been clear enough.
    Thanks and regards,
    Manuel Míguez.

    The only possibility I could think of is using correlation. There also you have the limitation of java proxy as it does not support adapter modules. Could you use SOAP for your scenario?
    JMS receiver could use inherent properties to define correlations. But as your case is non-JMS, you have to define it manually. Say, if your receiver system is X, then the request from XI to system X should carry its message ID information. While X created the response message, it should use this message ID as the correlation ID for the response message. This could be achieved using an adapter module.
    I guess you were not looking for such a complex solution.
    Regards,
    Prateek

  • Performance problem in RFC to JDBC interface

    Hello everybody!
    i'm working whit SAP PI 7.1
    We defined some interfaces RFC - PI - JDBC (SQL server) but we have some performance problem.
    If we have many row to write on the table then interface finish in timeout :
    Synchronous timeout exceeded.
    Returning to application. Exception: com.sap.engine.interfaces.messaging.api.exception.MessageExpiredException: Message 1d1f00b0-fecf-11de-8738-0015600446f0(OUTBOUND) expired.
    I read the PI tuning document and i tried to apply configuration whit Advanced Adapter Engine but whitout result.
    Now we want change the timeout in visual admin and maybe we solve the error but i'm asking myself....:
    It's normal that for write 1500 row in a table we need more than 4 minuts????
    It's possible accelerate this process??? After go live we will write messages whit more than 50.000 row.
    somebody may help me?
    PS: please no link to tuning guide or to notes (to increase the timeout parameter).

    This could be because your Database system (JDBC server) is taking more time to insert. The problem is not on PI side but on the receiving system side. Try inserting the same number od rows on the database server itself and check for the time taken for execution. Adding indexes on your database table solves the issue lot of times.
    Here PI is not the culprit but definitely  the receiver system.
    VJ

  • RFC to JDBC synchronous

    Hi experts,
    i have to scenario RFC to JDBC
    i need to know in R3 (parameter import by RFC) the number of lines inserted in database.
    receiver JDBC give mne this data, but my doubt is if is necessary mapping this statement?, is necessary to create this datatype, what is the datatype -string, int,..? have i to defined a synchronous scenario?, how many messages interfaces i need?
    very thanks,

    thanks all,
    how can i mapping this message, give me error..
    jdbc_response  1..1                      rfc_response 1..1
       insert_count  1..1                         count         0..1
         count          1..1
    my mapping is
    jdbc_response -> rfc_response
    count             -> count
    (insert count no mapping)
    the error is 'Returning synchronous error notification to calling application: com.sap.aii.af.ra.ms.api.DeliveryException: Application:EXCEPTION_DURING_EXECUTE:.'
    can you help me please?

  • RFC to JDBC Asynchronous Acknowledgements

    Hi All,
    I have one scenario RFC to JDBC (SQL db) async. This is schedule once in a day.
    My customer wants, if any data has unsuccessful to insert in a table of DB. ECC automatically come to know and send the particular data again.
    Is it possible?how?as of now I'm using PI 7.1.
    Please suggest me..
    Thanks,
    Arthita

    Hi Arhitam
    Why to complicate the scenario with acknowledgments?, your requirement implies a synchronous scenarios, if you dont want to retrieve data in the source RFC, you can do async/sync bridge like RFC - JDBC - Adapter to retrieve confirmation  (Check point 4 to see an example http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80f96dbf-adca-3010-ffb5-daf2d1f0e276?QuickLink=index&…)
    Regards.

  • Asynchronous Interfaces treated as Synchronous one?

    Hi eXperts,
    I'm now having a weird problem on an Asynchronous inbound interface in a SOAP-XI-R/3 scenario.
    When data coming through XI into R/3, the proxy is called, and works fine. But after the proxy call, a short dump happens in CL_PROXY_FRAMEWORK->XI_PROCESS_PAYLOAD saying the payload is 'null'. Since this is an Asynchronous interface, the payload would certainly be 'null' after the proxy call. So the problem is why this method even be called after the proxy?
    I checked the stack and found that CALL_PIPELINE_SYNC is used instead of CALL_PIPELINE_ASYNC, and I believe this might be the problem: SAP is treating this as an syschronous interface. However after checking settings in IR, both inbound and outbound interfaces are asynchronous.
    Has someone met this before? Does anybody know why SAP is treating an asynchronous interface as a synchronous one?
    Thanks in advance for your help.
    Regards
    Luis

    Hi,
    Did you check sender SOAP Adapter configuration ? What is the quality of service you mentioned ? it should be EO in your case.. check out this..
    also check is this proxy method is giving back the response.. check SXMB_MONI->Trace..
    Hope this helps,
    Regards,
    Moorthy

  • Reg error in interface mapping in RFC to JDBC scenario

    Hi Techies,
    Iam trying to map the scenario RFC to JDBC.
    In configuration window Iam testing the configuration.
    when Iam testing it is giving the error.
    " com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_mm_mapping_: Parsing an empty source. Root element expected! "
    My mapping is as follows
                       mt_receiver                    
                                                            statement               
                                                                ROW          
                                                     action---insert     
                 ZHRT002----
         Table     
         Item----
    access     
              MANDT               
              PERNR                                     PERNR
              PERID                            PERID
              SHOPN                           SHOPN
    Sender
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:ZTEST_PI_ZHRT002 xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
       <ZHRT002>
          <item>
             <MANDT/>
             <PERNR/>
             <PERID/>
    </item>
       </ZHRT002>
    </ns0:ZTEST_PI_ZHRT002>
    Reciver
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:mt_receiver xmlns:ns1="urn:sap-com:RFC2JDBC"><Statement1><ROW action="INSERT"><TABLE>ZHRT002</TABLE><access><PERNR></PERNR><PERID></PERID></access></ROW></Statement1></ns1:mt_receiver>
    Please give suggestion how to go about this.
    Thanks in advance,
    Regards,
    Kiran

    Hi,
    Please check the payload you are using to test the configuration.
    The structure seems to be Incorrect.
    Regards,
    Deepak

  • RFC to JDBC or PROXIES to JDBC ??

    Hello,
    I have a scenario where i need to send the data from SAP to two different Databases.
    In this what would be the best solution between RFC to JDBC and Proxies to JDBC.
    Which type can i prefer if I
    1) Have the response from databases to SAP?
    2) No response from the database to SAP?
    Appreciate for your answer.
    Thanks
    Lax

    Hi Madduri,
    Even I had to develop RFC to JDBC scenario. Our SAP system version was  4.7C
    Earlier my requirement was to send a response back (Synchronus) to SAP saying how many records were updated in the tables.
    The interface worked well till the development and quality system. however in Production system the interface started giving performane problems.
    The sender RFC adapter gave lot of problems in production. Many times the Data sent from SAP system didnt even reach the PI box.   We reported this error to SAP, however even they were not able to provide a solution.
    Then we decide to go for Asynchronous RFC to JDBC scenarios. Even Asynchronous interface gave same error in production.
    We couldnt use proxies as our SAP system version was 4.7C and there was no scope of SAP system being upgraded to 6.2 or higher. So in the end we had to scrap the interface.
    Just wanted to share above information with you.
    So best option for you would to use proxies if your SAP system verison is >= 6.2. Synchronous or Asynchronous will totally depend on business requirement.
    Regards,
    Deepak

  • Reg RFC to JDBC "Parsing an empty source. Root element expected!"

    Hi techies,
    This in regard of RFC to JDBC.
    in integration test iam getting the error.
    "com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_mm_mapping_: Parsing an empty source. Root element expected!"
    My Mapping and interface mapping tests are working fine, while testing the configuration Iam getting this error.
    My interface Mapping test result is as mentioned below
    Sender Interface (RFC Sender)
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:ZTEST_PI_ZHRT002 xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
       <ZHRT002>
          <item>
             <MANDT/>
             <PERNR>1234</PERNR>
             <PERID>kiran</PERID>
             <SHOPN>test</SHOPN>
          </item>
       </ZHRT002>
    </ns0:ZTEST_PI_ZHRT002>
    Reciver Interface after test
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:mt_receiver xmlns:ns1="urn:sap-com:RFC2JDBC"><Statement><dbTableName action="INSERT"><table>ZHRT002</table><access><PERNR>1234</PERNR><PERID>kiran</PERID><SHOPN>test</SHOPN><access></dbTableName></Statement></ns1:mt_receiver>
    My message Mapping is as mentioned below
    ZTEST_PI_ZHRT002 is my BAPI which is mapped to mt_receiver.
    ZHRT002 it my table which is mapped to Statement of reciver
    item of sender is floating ( not mapped to any reciver node)
    subsequently feilds are mapped.
    Reciver action is atribute (required) calling INSERT
    table is "ZHRT002" (constant) (1...1)
    This is my scenario.
    Thanks in advance,
    Regards,
    Kiran

    This is RFC to JDBC. Is it Synchronous or Asynchronous?
    Some tips:
    Create JDBC target data structure something similar to this
    <StatementName>
    <dbTableName action=u201DINSERTu201D>
    <table>realDbTableName</table>
    <access>
    <col1>val1</col1>
    <col2>val2</col2>
    </access>
    </dbTableName> 
      </StatementName>
    Map  Table name and action using Constant.
    >>item of sender is floating ( not mapped to any reciver node)
    What is that? you have to map source item node fields to target access fields.
    Please go through the below sap link . This might be very helpful.
    http://help.sap.com/saphelp_nw70/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm

  • Mapping problem in message response  RFC -- xi -- JDBC

    Hi all,
    I'm using the follow scenario:
    RFC <-> xi <-> JDBC
    It's a synchronous interface.
    In JDBC the message do a SELECT in database and returns selected rows in message response.
    The message response transfers selected rows to RFC.response in the mapping.
    It seems working right but no data are transfered to RFC.
    In SXMB_MONI I can see the selected rows from database.
    There is no error in JDBC and RFC adapter. Bellow is the message response in the SXMB_MONI:
      <ns1:MT_jbdc_select_response xmlns:ns1="http://braskem.com.br/xi/sapxi03">
      <t7_productionorder_response>
      <row>
      <PRODUCT>Nafta Media</PRODUCT>
      </row>
      <row>
      <PRODUCT>Nafta Media</PRODUCT>
      </row>
      </t7_productionorder_response>
      </ns1:MT_jbdc_select_response>
    I think that there is an error in message mapping between RFC.response <-- message_response, because I'm just mapping the fields <row> and <product>, because if I make a link beteween <t7_productionorder_response> and return table of RFC, a Short DUMP happens.
    Bellow the structure of MESSAGE RESPONSE:
       <t7_productionorder_response>
          <row>
             <PRODUCT/>
          </row>
       </t7_productionorder_response>
    Bellow the structure of RFC RESPONSE:
    <RFC.response>
      <t_return>
         <item>
             <product/>
         </item>
      </return>
    </RFC.response>
    When I make a link in the mapping between
    <t7_productionorder_response> -> <t_return>
    a short DUMP happens in RFC call in R/3.
    Anyone could help me about this problem ?
    Thanks in advance
    Regis Ferrato

    Hi,
      <i>because if I make a link beteween <t7_productionorder_response> and return table of RFC, a Short DUMP happens.</i>
    After doing this mapping, did you test it in the IR mapping editor? was it successful?
    Do specify the occurence of all the headers so we can help you better.
    Regards,
    Smitha.

  • RFC-XI-JDBC testing is not working

    Hi,
    I created rfc-xi-jdbc. I created 2 dt, 2 msg types, 2 msg mappings, 1 msg interface(synchronous, abstract), 1 interface mapping.
    In the CD, I defined, 1 sender, 1 receiver agreement. 1 receiver, 1 sender determination, 1 interface determination, and two comm channels.
    My RFC destination is working fine. But in se 37 , when I execute the FM, and submit the RFC destination I am getting dump. Please tell me what causes this error.
    In the message mapping when I tested it (rfc-jdbc) mapping, it gets the action as "insert" and not getting table value. Is it supposed to get a table name? or not?
    Thanks. I appreciate your help.
    Raj.

    Michal,
    As I said I already have this zreport program. This is how I am calling:
    CALL FUNCTION 'Z_PA_DINERS_TXN'
         destination 'DINERSIM' *RFC Dest 4 sender adapter
           EXPORTING
                ID            = lw_id
                INIT_ZDINERS  = lw_delete
           TABLES
                IT_ERROR   = IT_ERROR
                IT_ZDINERS = IT_IM_ZDINERS.
         commit work.
    Is that correct? I didnot create any seperate program for this, I am using the existing program. Please advice on further steps.
    In the RFC destination, do I need to mention XI server params in the gateway server host and service? or my sending system's details?
    Thanks,
    Raj.
    Message was edited by: Raj Peddisetty

  • RFC to JDBC Sync Scenario and get JDBC response

    Hi All,
    We need to create RFC to JDBC synchronous interface with update_insert action.
    And we need to get the number of records updated or inserted as response and map the response and send it back to ECC as RFC response mesg.
    I have gone through the help document on JDBC and it says :
    The response document has the following format; one of the two values is always 0 because either an UPDATE or an INSERT action is always executed:
    <update_count>count</update_count>
    <insert_count>count</insert_count>
    Now following is the question: Is this this the standard feature? Because in our case Database side they will not be sending any response back.
    So with the synchronous receiver JDBC channel would we get this update and insert count as response  by default?.
    Please help with replies.
    Thanks,
    Jane

    Hi Jane
    No setting needs to be done by the Database team, it is a standard feature.
    Whenever you insert or update records in DB using the JDBC Adapter, you will get the response with the count.
    If insertion fails due to some reason in JDBC Adapter, then there will be no response.
    Regards
    Osman

  • RFC to Jdbc Synch Scenario

    Hi,
    I have a scenario like RFC to JDBC synch scenario, so what would be the QOS for sending( RFC) communication channel and as well as JDBC communicaiton channel.
    Thanks n Advance.,
    Xeon

    Hi,
    Neither the Sender RFC adapter nir the Receiver JDBC adapter provide the option to select the QOS.
    In your case if the report triggering the call to XI is making a Synch Call then the QOS in the SOAP header will be BE. If the Inbound Interface for the Receiver JDBC adapter is also a Synchronous Interface the QOS is taken as BE for the Receiver JDBC adapter.
    You need not manually change the QOS anywhere as long as you are using Synch message interfaces.
    Regards
    Bhavesh

  • RFC to JDBC response

    Hello,
    I have a scenario SAP-> RFC -> XI -> JDBC. Where i'm using data from SAP R/3 to update a table in an Oracle database of a third party system. Is there any way i can find out if the fields have been updated succesfully or not?
    I know that only if i use a synchronous JDBC reciever i will get a response.
    Helpful suggestions will be rewarded.

    Hi,
    The Response sent by your JDBC adapter will be not be a Apllication Level Acknowledgement, but rather a System Level Acknowledgement and so, you will have to configure a BPM, if you want to send the number of rows Updated as a response to your RFC.
    For more info, just take  a look at this link,
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    It contains the info,
    <b>The response documents described below can only be evaluated by the Integration Server/PCK if the call is synchronous because the content of the response document is not accessible if the call is asynchronous. The response is put in a separate element <StatementName_response> for each statement element.</b>
    So, if you want to send the response, then you will have to configure your receiver JDBC adapter sysnchronous, use a BPM to route the response message to whichever system you want.
    Regards,
    Bhavesh

Maybe you are looking for