Commit Handling In RFC adapter

hi...
Can any one explain what is the commit Handling in RFC Adapter scenario
venkat

Hi ,
From documentation
<i>"Commit Control for Individual BAPI Calls
If you want to use this communication channel to call BAPIs as remote-enabled function modules that change data in the database, set the indicator.
If executed successfully, the transaction is written to the database by calling the function module BAPI_TRANSACTION_COMMIT explicitly. If an error occurs, the transaction is rolled back by BAPI_TRANSACTION_ROLLBACK.
The result is determined by the value of the field TYPE in parameter RETURN. If successful, the tables are empty and the values “”, “S”, “I”, and “W” are displayed. All other values are regarded as errors.
To change this setting, set the indicator BAPI Advanced Mode.
In the Successful RETURN-TYPE Values table, enter the values that should lead to a successful execution."</i>
We have a " Commit Control for Individual BAPI Calls" option in RFC reciever adapter to commit the BAPI.
Sekhar

Similar Messages

  • RFC Adapter not getting data

    Hi experts!
    I am developing a RFC to File scenario on PI 7.1 EHP1 and ECC 6.0 which is synchronous. Following the Help page Setting Up an RFC Destination for the RFC Adapter I created two destinations. The fist one is a TCP/IP, name RFCDE1COMPANY2, program id BAPI_COMPANY_GETLIST and corresponding gateway host and service I found at SMGW (Parameters). The second one is a Logical with name RFCDE1and reference entry RFCDE1COMPANY2.
    At my RFC Sender Adapter I configured the same gateway info and the same program id. After that I tested both destinations and it worked. I created the following report to call the bapi on that destinations::
    REPORT  ZREP_BAPI_COMPANY_GETLIST.
    DATA: company_list TYPE STANDARD TABLE OF BAPI0014_1.
    CALL FUNCTION 'BAPI_COMPANY_GETLIST'
      IN BACKGROUND TASK
      DESTINATION 'RFCDE1'
      TABLES
         COMPANY_LIST = company_list.
    COMMIT WORK.
    At SXMB_MONI the request message was processed and the output file generated, but it has only the root tag. At moni the inbound message has no data (company data).
    I tested the BAPI_COMPANY_GETLIST at SE37 and there are 149 entries. When I executed this same BAPI with RFC target sys configured to my destination, it didn´t show any data and has an exception called SYSTEM_FAILURE. I think probably the error is on RFC destinations but I can´t figure it out what is wrong.
    Best Regards,
    Gabriela

    Hi experts,
    Thank you all for your quick response.
    At the TCP/IP Destination there is a button "Unicode Test", according to this test my target system is unicode (character size 2). I changed the option at MDPM&Unicode on that TCP/IP Destination like Madhusudana described. I also selected the checkbutton "Unicode" on sender RFC communication channel.
    About the sync/async, I will not use sync async bridge because this scenario can be async. One think that I realized is that when I call my report, I am implicitly calling PI asynchronously and when I call the BAPI directly by the test tool, I am implicitly calling PI synchronously. That is why most part of my tests did not work before.
    Now I can see on SXMB_MONI that the scenario worked and the file was generated. But the data are still not being showed on inbound payload. I think something is wrong with my destinations but I can´t figure it out what is.
    Ps.: I would prefer to use XI proxies, but this scenario will be configured (not now) on a XI 3.0 with ERP 4.6 C. Now I´m just learning how to handle with RFC Adapter.
    Any ideia?
    (Points granted)
    Thank you and best regards,
    Gabriela

  • RFC Adapter and BAPI Commit

    Hi everybody!
    In my scenario I post an RFC call to a BAPI (BAPI_GOODSMVT_CREATE). The call succeeds (empty RETURN parameter, material document numer is returned). However, the resulting material document is not available in MB03 - I assume this is due to a missing COMMIT after the RFC call.
    However, our system has SP 18 - and I have read that the RFC adapter is able to add a COMMIT after a successful call automatically starting from SP 14. What confuses me is the fact that the descriptions in the online sources state that I should check the "Extended Mode" checkbox in the RFC adapter config screen and then I should check the "Commit..." option. However, when I set the checkbox for extended parameters, I only get a simple table where I can enter property/value pairs.
    Has something gone wrong with the upgrade and my RFC adapter doesn't have SP 18 yet? Or am I doing something wrong?
    Regards, Joerg

    Hi Joerg,
    Check in your Repository if you imported the newest adapter metadata.
    Check Software Component SAP BASIS - > SAP BASIS 6.40 -> http://sap.com/xi/XI/System
    There Adapterobjects -> Adaptermetadata -> RFC
    search after the attribute  ..<b>singelBapiCommit</b>
    Because you dont see a SP version there.
    Maybe its better to search afer the label:
    <b>Commit handling for singel BAPI-calls</b>
    When you dont find the attribute .. try to reimport your BASIS 6.40 Software Componenent.
    Regards,
    Robin

  • RFC Adapter Commit Behavior

    Hi,
    to enable the commit for BAPI calls (for me it was BAPI_SALESORDER_CREATEFROMDAT2), on the corresponding RFC adapter, i
    - checked the checkboxes: Advanced Mode and Commit Handling for Single BAPI call
    - saved and activated everything
    - called again my bapi and got S and W messages and the document no
    but at the SAP GUI, it appears, the sales order was not committed.
    Any helpful advise is appreciated.
    Regards
    Gregor
    Ps. Please:
    - do not point me to the help, i did my homework
    - and writing a wrapped bapi is not an option for my either

    Hi Gregor,
    Sorry i just noticed these points mentioned in your post now....so i have edited my answer as i dont feel that the info i provided earlier will help you.
    <i>Ps. Please:
    - do not point me to the help, i did my homework
    - and writing a wrapped bapi is not an option for my either</i>
    Regards,
    abhy
    Message was edited by: Abhy Thomas

  • RFC adapter...How it handles multiple calls...

    Hi folks
    Basic doc'tation on RFC adapter states...qRFC is not supported..Agreed..
    I have a scenario where I need to dump lot of transactions from a flat file to an RFC.
    I have split the single structure by 1:n mapping(multi) and pushed each message using a Loop(For-each/Par-For-each) to RFC function..
    Now question here..Is this a good approach to invoking RFC's(I find response times to be pretty slow on my server upto 20 secs for each RFC call). Cant I parallely execute all the messages by calling the RFC on SRM systems.(PAR for each loop has a limit of 999 loops)..Is there any other option you can  suggest for this scene.?

    chk this link
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    there is a recommendation on when to use parForEach. From what i understand , parForEach is helpful if u intend to send "One" Message to multiple receiver systems and intend to handle the responses in different context.I beleive it won't help if u send "different" messages to the same receiver system.
    One more approach , i can think of is to make a Jco call from your "Message Mapping" itself using User defined functions instead of "configuring an RFC adapter" and "calling it in ccBPM". The below link should help on this.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/how to perform sap data lookups within xi mappings.
    Good Luck
    cheers
    Saravana

  • RFC Adapter: BAPI_PRODORDCONF_CREATE_TT and Commit

    I call BAPI_PRODORDCONF_CREATE_TT through the RFC adapter and I have set the "Commit Control for Single BAPI Calls" flag to make sure COMMIT WORK is done.
    If I get the documentation right return types like empty table, S, W and I should lead to COMMIT WORK by calling of BAPI_TRANSACTION_COMMIT afterwards. The actual return type is blank (but the table is not empty -> NUM = 000, so there is only line). Yet the there is still no commit, nothing is being processed.
    If I try the same thing on the destination system via a test sequence in SE37 (--> first calling BAPI_PRODORDCONF_CREATE_TT then calling BAPI_TRANSACTION_COMMIT) it works pretty well.
    Right now I don't have a clue ...
    Thanks for any kind of input.
    Cheers,
    Andy

    In the end I was able to solve the problem but I couldn't figure out how to get i work as explained in the documentation. I've tried all the option (commit control, return values etc.) - actually it was kind of strange: sometimes it worked, sometimes it didn't. So finally I decided to go the old fashioned way (as in 3.0) and made a copy of BAPI_PRODORDCONF_CREATE_TT with a hard coded commit in the end to have a reliable solution:
    FUNCTION YAR_BAPI_PRODORDCONF_CREATE_TT.
    * begin of insertion AR20090326
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
       EXPORTING
         WAIT          = 'X'.
    *   IMPORTING
    *     RETURN        =
    * end of insertion AR20090326
    Another thing: If you want errors to be posted to the confirmation monitor (CO16/CO16N), make sure the POST_WRONG_ENTRIES segment is populated with value '2' either by setting a constant in your PI message mapping or by already delivering it from your shop floor solution (or whatever system you have attached).
    Cheers,
    Andy

  • Rfc Adapter - commit work and wait

    Hi,
    Here is my problem:
    I'm calling a BAPI specifying 'Commit' in Communication Channel. After this call, in BPM i call another RFC (or BAPI) that needs to modify or use objects created in the first call. The problem is that the work made by the first BAPI wasn't updated in the database yet, and i receive errors in next calls.
    Is there anyway to wait for commit?
    Jose Neves

    Hi again,
    Thanks for your attention...
    Well i am using the 'WAIT' between Steps... But this is not how i would like to keep things... i can't assume how long i should wait and i don't want to have unneeded pauses during process (each process has about 18 calls to R3!).
    The only solution i see everywhere is Wrap Wrap Wrap... unfortunately this implies changing every BAPI to Z...
    I know that RFC Adapter uses JCO... I think in JCO you can start a transaction, using an identifier, passing this ID to every BAPI call, and call commit at the end, but i don't see anyway to do this in XI.
    Another solution i have heard around, is about using ABAP Proxy... is that true that i can encapsulate many BAPI calls in a proxy, and execute all in the same session? We have some configuration problems, and we are not using ABAP Proxy so we can't try... But if this is the solution...

  • RFC adapter commit

    Hi,
    I have a scenario with RFC adapter using BPM. This scenario working and live but now we find out that 1 material document not posted but we able to get the mat doc number. This is only happen for 1 time and others material was posted successful. Anyone have idea?
    Thanks.

    Hi,
    Thanks for reply. I am able to get the material document but the problem is it not get posted in SAP R3. In sxmb_moni it show that process successful.
    Thanks.

  • Error while doing commint from RFC Adapter

    Hi,
    We have a SOAP-PI-RFC synchronous scenario. Through this Soap request comes to PI and passed on to BAPI via RFC adapter. This BAPI saves the transaction & return the document number. We are using " PI PI parameter u201CCommit Handling for single BAPI' in RFC receiver Channel.
    While this setup works for 1 posting, when we do the mass load ( Say 20 Documents) half of the documents are not able to Save. Although BAPI, returns the document number but on checking the document does not exists in SAP. To do further test, we created a program in ECC and try calling BAPI in loop and calling BAPI Commit.
    This way program works fine and there is no error
    So in nutshell, when we PI do the commit, half of the documents are not saving where as when the ABAP program commits no error. Is there any  special way that PI calls this commit work.
    PS: We created a wrapper BAPI which calls the orgirnal BAPI and Commit BAPI & called this from PI but still the same problem is coming.
    Appreciate help on this.
    Regards,
    Harish

    Are there any error messages in the RFC Reciever channel in Runtime Workbench?
    RWB -> Component monitoing -> Adapter Engine -> Comm Channel -> filter for type RFC
    Please try to give some more details on why the system says the messages are failing.

  • Limitations of RFC Adapter XI 3.0

    In this presentation ( https://www.sdn.sap.com/content_documents/.../SAP%20XI%202.0%20-%20Features.pdf page 20), the following limitations are listed for the RFC Adapter for XI 2.0:
    Functionality
    Synchronous RFC
      No support forRFMsthat use update task without COMMIT WORK
      No SAP GUI
      No callbacks
      No session handling
      No RFCs to non-SAP systems (using RFC client or server libraries)
    tRFC: Support for exactly-once delivery for one message/call
      Not all tRFC functionality
      No „bundling“ of multiple calls
    With version 3.0, what are the current limitations??

    SAP Documentation states the following:
    Constraints
    Note the following restrictions:
    ·        Assignment is only guaranteed for transactional RFCs (tRFCs), that is, for messages with quality of service Exactly Once (EO).
    ·        There is no transactional context for more than one RFC call for each LUW (Logical Unit of Work).
    ·        Not provided: SAPGUI, callbacks, and qRFC (quality of service Exactly Once In Order (EOIO)).
    ·        RFC library clients (RFC SDK) are not supported.
    ·        The context in the called system is not kept open over multiple calls (calls are stateless; there is no session).
    ·        Only the payload of a received message is evaluated. Additional attachments are ignored and not forwarded.
    ·        The receiver adapter can only process valid RFC XML documents, for example, those generated by the sender adapter or by the SAP JCo.
    available at: http://help.sap.com/saphelp_nw04/helpdata/en/33/c6e63b60c25767e10000000a11402f/content.htm
    best Regards
    Christien

  • Multiple BAPI calls in RFC Adapter

    Hi, Dear Friends!
    I have asynchronous scenario File to RFC(BAPI).
    File contains raws. For each raw I need to execute BAPI.
    With the help of each raw I need to construct one document in R/3 database with the help of BAPI.
    But now my scenario provide only one document (only one BAPI is executed).
    I read file to xml structure. This structure contains elements. The elements represent raws of file. But BAPI is executed only for the first element.
    How to explain to XI that I want it impement BAPI <b>N times</b> - as number of raws in file (or elements in xml structure).
    So how to implement multiple BAPI calls. Have you any idea?
    Thank you in advance.
    Natalia Maslova.

    Hi Natalia
    have a look on these links
    http://help.sap.com/saphelp_nw04/helpdata/en/43/b46c4253c111d395fa00a0c94260a5/frameset.htm
    Best Design : for a SOAP -XI - BAPI ( Multiple )
    Re: RFC adapter...How it handles multiple calls...
    Re: Multiple BAPIs and COMMIT in BPM
    Re: Is it possible to compose XML in BPM from responses of multiple BAPI calls?
    Multiple BAPI calls in RFC Adapter
    may be helpful
    Thanks !!!

  • Multiline BAPI return structure  and RFC Adapter

    Since SP14 RFC Adapter check return structure of RFC function.
    But how it works if BAPI returns multiline BAPIRET2?
    Will adapter loop all elements and perfom commit only if <b>all</b> alements don't have errors.

    I'am about this:
    <i>As of SP 14 support for commit handling for single BAPI calls was added to the RfcAdapter receiver channel. If activated in the receiver channel setting, the received XI message will be executed as synchronous RFC (sRFC) in the receiving system. This is also true for asynchronous (QoS EO) XI messages to receive and analyze the execution result by the RfcAdapter.
                   The received response is parsed by the RfcAdapter to get the BAPI return parameter with name "RETURN". This return parameter can be of BAPIRETURN, BAPIRET1 or BAPIRET2 types. The "RETURN" parameter is checked for the response status (field TYPE) which can take following values:
                  1. 'S' : Success
                  2. 'I' : Information
                  3. 'W' : Warning
                  4. ''  : Empty String
                  5. 'A' : Abort
                  6. 'E' : Error
                   If the response contains one amongst the first four response status then it implies that the BAPI was successful. If the response contains one amongst the last two response then the BAPI failed. If the BAPI "RETURN" parameter is of not of type ABAP structure rather of type ABAP table, a empty table is also considered as successful execution result.
                   In case of a successful execution the BAPI function module "BAPI_TRANSACTION_COMMIT" is called within the same context to trigger the commit of the BAPI. In case of a failure the BAPI function module "BAPI_TRANSACTION_ROLLBACK" is executed by RFC Adapter which rolls back the changes.</i>

  • RFC Adapter Problem: Necessary Roles?

    Hi XI Gurus,
    Our team is working with a File-to-RFC scenario. We are using a custom RFC, which uses BAPI_GOODSMVT_CREATE within it, to post data for Goods issue, Goods receipt and Transfer Posting. We are using the credemtials of a user, <b>sapxiuser</b>, within the RFC adapter. <b>Can anyone please tell me what are the roles that are to be maintained for this particular user at the R/3 end?</b>
    Points will be rewarded!
    Thanking in anticipation,
    Amitabha

    Hi,
    Remember to add explicit commit in the communication channel:
    <i>"
    <b>Commit Control for Individual BAPI Calls</b>
    If you want to use this communication channel to call BAPIs as remote-enabled function modules that change data in the database, set the indicator.
    If executed successfully, the transaction is written to the database by calling the function module BAPI_TRANSACTION_COMMIT explicitly. If an error occurs, the transaction is rolled back by BAPI_TRANSACTION_ROLLBACK.
    The result is determined by the value of the field TYPE in parameter RETURN. If successful, the tables are empty and the values “”, “S”, “I”, and “W” are displayed. All other values are regarded as errors.
    To change this setting, set the indicator BAPI Advanced Mode.
    In the Successful RETURN-TYPE Values table, enter the values that should lead to a successful execution.
    "</i>
    Regards,
    Wojciech

  • RFC Adapter

    Hi
    I am using RFC adapter, I am facing java.lang.outOfMemory Exception whenever payload size increases.
    Important point: In XI everything is successful.
                     But in R-3 I am facing the problem.
    Please guide me, how to solve this issue.
    Piyush

    Hi All
    I have set up the connection for Integration builder in R-3.
    In sproxy I am able to see inbound and outboud interfaces, I have generated the class for th outbound interface and configured default logical port for the same.
    The report is as follows:
    REPORT  ZAK_TEST_PROXY.
    DATA:
    Reference variables for proxy and exception class
      lo_clientProxy     TYPE REF TO ZCO_EMPLOYEE_MASTER_DAT,
      lo_sys_exception   TYPE REF TO cx_ai_system_fault,
    Structures to set and get message content
       ls_request         TYPE ZEMPLOYEE_MASTER_DAT361,
       ls_response        TYPE ZEMPLOYEE_MASTER_DAT360.
       Instantiate your client proxy.
    TRY.
    create proxy client
        CREATE OBJECT lo_clientProxy.
       ( ‘LOGICAL_PORT_NAME’ )
    *LOGICAL_PORT_NAME is the name of the logical port that you want to use, which is used to define the receiver. You can omit this parameter if you are using a default port or the XI runtime.
         To send a message, call the corresponding client proxy method. WSDL allows several such methods (specified by the element <operation>). In XI, there is only one method, with the default name EXECUTE_SYNCHRONOUS or EXECUTE_ASYNCHRONOUS. Catch at
    *least the exception cx_ai_system_fault:
    do synchronous client proxy call
        CALL METHOD lo_clientProxy->execute_synchronous
                 EXPORTING output  = ls_request
                 IMPORTING input   = ls_response.
        CATCH cx_ai_system_fault INTO lo_sys_exception.
      Error handling
    write:/ lo_sys_exception->errortext.
    ENDTRY.

  • RFC Sender problem  between 46D and RFC adapter

    Hi,
    I have this simple integration scenario where I want to send data to a archiving system;
    SAP -> (tRFC) -> XI -> (MQ) -> BizTalk -> (MQ) Arch.syst.
    SAP side ***
    A Z-program using a Z func. like;
        CALL FUNCTION 'ZSD_DCF_SEND_TAG'
          IN BACKGROUND TASK
          DESTINATION 'XISYSTEM_TRFC_DCF'
          EXPORTING
            pt_filing_info = gt_filing.
        COMMIT WORK AND WAIT.
    XI side ***
    Both IR and ID is configured correctly, in the development environment everything works just great. I have created a test program where I can define how many calls I will do, looping over the func. call with a commit inside the loop - 500 or more msgs are ok.
    The integration scenario is transported to quality enviroment using CMS, and the RFC sender comm.ch. is configured accordingly.
    The problem in quality ***
    When sending just 1 msg, everything is just fine, message received and delivered to MQ.
    When sending >= 2 msgs, the 1 msg is always ok, BUT all others fails due to the following from Adapter monitor;
    RFC_HISTORY
    - Error: 2006-01-19 10:55:18 CET: com.sap.aii.af.rfc.afcommunication.RfcAFWException: lookup of alternativeServiceIdentifier via CPA-cache failed for channel 'RFCSender_XI0002' (02d4d30de3593874942ed0659add0827, party '', schema 'TechnicalSystem', identifier 'Q93#120')
    - OK: 2006-01-19 10:55:17 CET: Message processed for interface ZSD_DCF_SEND_TAG
    My sending system is Q93 CLI 505 so I can understand the error, BUT I cannot understand why the RFC adapter is saying the TechnicalSystem is Q93#120 - it should be Q93#505. My Q XI has client 120...
    It seems to me that the RFC adapter is kind of confused about the sender..
    I have created a OSS message and SAP has looged on and looked into it with both a XI expert and RFC expert without being able to answer - all is configured correctly.
    - The SLD config. for bus.system Q93 is ok -
    - The bus.system in ID is showing correct vaues for
    Adapter Specific Identifiers (SID Q93, client 505)
    - Both Dev. and Qual. environment are running on XI 3.0 SP 14 latest patch, RFC component version on the SAP side is identical between dev. and qual. SAP systems
    - It doesn't matter which gw I use (Q93 gw or XI gw), the error is persistent
    - It doesn't matter if I increase initial conn, max conn.
    I have also tried to use qRFC instead, but with the same result.
    Anyone using tRFC for asynch. communication from SAP to XI seeing something similar?
    Meanwhile, I will do RFC trace on GW and RFC Adapter on AE....
    Please, do not say SP15, oss msg for FAQ RFC adapter or links to RFCAdapter config....
    best regards
    Torstein

    Hi,
    SAP Note 730870 FAQ: XI 3.0 RfcAdapter Q.no 15
    <i>Q 15: Whats wrong when the error message "lookup of alternativeServiceIdentifier via CPA-cache failed" shows up while sending a RFC call to the RfcAdapter?
    A: A RFC sender channel is located beneath a service within the Integration Directory. Within this service choose "Service" -> "Adapter-Specific Identifiers". The values in the fields "R/3 System ID" and "Client" has to be maintained with the correct values of the system, that sends the RFC call to the RfcAdapter. It normaly only makes sense to have these values filled for services of type "Business System". If maintained in SLD, this fields will be filled automaticaly for services of type "Business System" and can be updated with the button "Compare with System Landscape Directory".</i>
    - Give correct appserver and gateway service details in XI.
    - Open the service holding the RFC adapter you are trying to use. On the top menu, goto Service -> Adapter Specific Identifiers..
    Regards,
    Prateek

Maybe you are looking for

  • How do I get my phone billed corrected without wasting another 3 hours?

    On March 3, 2015, I ordered two “iPhone 6 plus 64 GB” along with 2 protective cases from verizonwireless.com/. The iPhones were on the edge plan, one was an upgrade and the other was a new line being transferred from Sprint.  They were to be shipped

  • How to find out no of lines in  String

    Hi all, How to find no of lines in a multi lined String. For example. String str = "hjkhjkhjhjhkhlk\nfjdhfjhdjfhjdhfj\nfdhfjdhjfhdj\ndfjdkjffjdfjk\nfdffdh"; Here there are 5 lines because there are "\n". I am not able to substring with "\n". Any idea

  • Workflow Item not created while processing draft PO from SOCO

    Dear SAP SRM Experts, In SRM 7.0, I've a scenario where I create a PO draft in sourcing. In the 3step of the GAF, I've the option to 1. Edit the PO and order it. 2. Directly process the PO draft to create a PO.. While in case one the WF item is creat

  • Kindle Reading App not working after 10.9.5 update

    After update to 10.9.5 Kindle reading app is not opening. Anyone else having this problem? Even uninstall/install wont work.

  • Complete Differences

    Hi, Please provide me all possible differences between... 1). Prepared Statement and Callable Statement 2). Abstract Class and Interface Thanks, R S