Commit work statement creating problem in CALL TRANSACTION

Hi Friends,
we are facing a problem where we need to call a standard program from a  Zprogram.
we have tried the following ways.
1. Using SUBMIT statement , we are sending the parameters to the standard program, but when the standard program gives a  
    dump our program cannot process further records. we are calling the submit statment in a loop. As because the standard
    program is giving dump our program is not able to process the next record in the loop and this should not be the case.
    To avoid this we have used the second method.
2. we used a CALL transaction, we have created a Tcode for the standard program and called this transaction in the calling
    program. We are passing the parameters for the  standard program via BDC table. this works fine even when  the standard
    program gives a dump but when ever the control   comes across a Commit work statement the the control comes back to our
   calling program with out executing the rest of the   statments after the commit.
now our concern is even though there is an commit work statement , statements after the commit work should also get executed in call transaction. Is thee any way?
Regards,
Sravan

Hi All,
I got the solution
DATA: ctu_parameters TYPE ctu_params.
ctu_parameters-dismode = 'E'.
ctu_parameters-updmode = 'A'.
ctu_parameters-racommit = 'X'. "No abortion by COMMIT WORK
CALL TRANSACTION USING itab_bdcdata OPTIONS FROM ctu_parameters.
the above code will work even if there is an commit work . This might help some others.

Similar Messages

  • Need help: Sending mail to internet address without commit work statement

    Dear Experts,
            I have a problem in sending mails from sap to internet address.Am using the function module
    SO_NEW_DOCUMENT_SEND_API1 and am passing parameters like,
    CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
         EXPORTING
              DOCUMENT_TYPE  = 'RAW'
              DOCUMENT_DATA  = DOC_CHNG
              PUT_IN_OUTBOX  = 'X'
         TABLES
              OBJECT_CONTENT = OBJCONT
              RECEIVERS      = RECLIST
         EXCEPTIONS
              TOO_MANY_RECEIVERS         = 1
              DOCUMENT_NOT_SENT          = 2
              OPERATION_NO_AUTHORIZATION = 4
              OTHERS                     = 99.
    submit rsconn01 with mode = 'INT'
                        with output = 'X'
                        and return.
    My problem here is,with the commit work statement after FM, the mail is triggering correctly.but if, am not using the commit work statement,at the very first time of execution mail is not triggering, and the second time of execution first mail is triggering like wise it is going.The status of the message is waiting in queue.
    i have refresh receiver's list also.I want to use this concept in badi.So anyone can pls help me,how to send a mail without commit work statement.
    Thanks in advance.

    There is a parameter Commit_Work pass it as 'X'
    <code>
    CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
    EXPORTING
    DOCUMENT_TYPE = 'RAW'
    DOCUMENT_DATA = DOC_CHNG
    PUT_IN_OUTBOX = 'X'
    commit_work = 'X'
    TABLES
    OBJECT_CONTENT = OBJCONT
    RECEIVERS = RECLIST
    EXCEPTIONS
    TOO_MANY_RECEIVERS = 1
    DOCUMENT_NOT_SENT = 2
    OPERATION_NO_AUTHORIZATION = 4
    OTHERS = 99.
    submit rsconn01 with mode = 'INT'
    with output = 'X'
    and return.
    </code>
    Edited by: Saravanan Ramasamy on Nov 11, 2009 1:31 PM

  • Is 'Commit Work' statement necessary?

    Is it mandatory to issue 'Commit Work' statement to terminate the program in SAP LUW? If not provided would the program go into infinite loop?

    ... just before the thread gets locked:
    There is no such thing as an implicit commit work. The implicit commit is a database commit, that means after every process interruption as i.e. processing of any screen and the end of program execution all database activities are committed, they can not be rolled back.
    The explicit ABAP statement COMMIT WORK will termiante the current LUW and, additionally start execution of all asynchronous database operations (Call function in update task), start all PERFORM ON COMMIT routines.
    Most BAPI calls need a subsequent COMMIT WORK, better issued by function Call BAPI_TRANSACTION_COMMIT.
    The documentation has more information. One major truth is: In 'simple' programs that do some INSERTS, UPDATES and MODYFYs on database tables, you do not need any COMMIT WORK. And if screen processing happens afterwards, you can not ROLL BACK.
    Regards,
    Clemens

  • How to count " How many times the ' commit work ' Statement is executed.

    Hi all sap Champions,
    One of the client requirement, That is
    How to count " How many times the ' commit work ' Statement is executed.
    It's urgent.
    Please can anybody help me for this.
    Thanks
    Basu

    hi,
    when report try like this.
    declare a variable as
    data: counter type i value 0.
    COMMIT.
    counter = counter + 1.
    write:/10 counter 'NO. OF TIMES COMMIT WORKED'.

  • Problem with Call Transaction opt-RACOMMIT = 'X'.

    Hello Experts
    I am having a problem with call transction. I am calling a Z transaction in function module. Within the Z transaction I am furhter calling some function modules and doing commit work and then some more processing  after the comit work inside  So to make sure the code after comit work is fired I am using opt-RACOMMIT = 'X' in call transaction. Whenever I set this parameter opt-RACOMMIT = 'X' call transaction fails and gives error saying No batch Input data for screen XXXX. However the Z tcode processed succesfully.
    By changing the Mode to E i found that it remians at the last screen of call transction after executing the Z transaction and never comes back 
    But if I donot use RACOMMIT = 'X'  everything is fine. Please let me know if anyone came across such problem. Any help will be apreciated.
    Thanks,
    kamal

    Hello,
    as you said, if there is more than commit statement in your ztransaction, then you should put RACOMMIT to 'X'.
    I think the problem is in your bdcdata: change it to be sure to get back to the 1st screen of your ztransaction. Then, at this point (1st screen) hit "back" button.
    Cordialement,
    Chaouki

  • Problem with CALL Transaction syntax

    Hi All,
    I have created  a report in which Im displaying Sales order, planned order n production order details.
    In the output if the user double clicks, anyone of the sales order/planned order/production order no, it has to take to concern transaction.
    Sales order and planned order are perfectly working.
    problem is with production order, it is not displaying, the exact order no.
    my code:
    WHEN '&IC1'.
          IF rs_selfield-fieldname = 'VBELN'.
         READ TABLE gt_final_so INTO wa_final_so INDEX rs_selfield-tabindex
            SET PARAMETER ID 'AUN' FIELD wa_final_so-vbeln.
            CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
          ELSEIF rs_selfield-fieldname = 'PLNUM'.
         READ TABLE gt_final_so INTO wa_final_so INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'PAF' FIELD wa_final_so-plnum.
            CALL TRANSACTION 'MD13' AND SKIP FIRST SCREEN.
          ELSEIF rs_selfield-fieldname = 'AUFNR'.
         READ TABLE gt_final_so INTO wa_final_so INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'ANR' FIELD wa_final_so-aufnr.
            CALL TRANSACTION 'COR3' AND SKIP FIRST SCREEN.
    In debugging I checked, after call transaction, the system executing the following code, here CAUFVD-AUFNR is initial.
    So, it has been picking some different no.
          Starten Batchrezept über Einsatzplanung - DO-THANH
      MODULE GET_PARAMETER OUTPUT.
        IF CAUFVD-AUFNR IS INITIAL.
          GET PARAMETER ID 'BR1' FIELD *CAUFVD-AUFNR.
          IF NOT *CAUFVD-AUFNR IS INITIAL.
            CAUFVD-AUFNR = *CAUFVD-AUFNR.
          ENDIF.
        ENDIF.
      ENDMODULE.                             " GET_PARAMETER  OUTPUT
    Pls help me how to resolve the above problem.
    Valuable suggesstion will be highly appreciated.
    regards,
    Priya

    Hi,
    Note that the code as different Parameter id
    you are setting the parameter 'ANR'
    SET PARAMETER ID 'ANR' FIELD wa_final_so-aufnr.
    Where as in that method it is reading the parameter id 'BR1'
    GET PARAMETER ID 'BR1' FIELD *CAUFVD-AUFNR.
    so try by setting  the 'BR1' in set parameter.
      ELSEIF rs_selfield-fieldname = 'AUFNR'.
         READ TABLE gt_final_so INTO wa_final_so INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'BR1' FIELD wa_final_so-aufnr.
            CALL TRANSACTION 'COR3' AND SKIP FIRST SCREEN.
    Regards,
    Kiruba.

  • Problem with Call transaction method in function module

    Dear Frndz,
               I am converting its services into webdynpro.
               I developed a rfc[function module] for travel management [TRIP] . In that rfc i used call transaction method[BDC] to upload the data. The same rfc will be called from the frontend[portal].It is working fine in development for whome se37 execution authorization was assigned. It is not working for other users.  I hope it is something relevant to authorization .If suppose can i create a authorization  object for this rfc and assign it to the profile.
            Normally  users can be given authorization to run the tcode.
    similarly i want to give the authorization to be given users to execuste this funtion module.
    huv can i do it ?? any suggestion.
    Rgds.
    siva

    Use ST01 transaction to start authorization trace, you will then see what authorizations are missing (if your assumption is right of course, i.e. if it's really an authorization problem)

  • LT04 problems with call transaction

    Hello,
    I am using RF and creating screens for users to putaway material  in a raw material warehouse based on a material document number from the GRN which is linked to a TR (transfer requirement).  I am, however, having problems with the TO creation where the material is QM relevant.
    I have used function module L_TO_CREATE_TR which works for non-QM relevant items but most of our items are QM relevant.  I am trying to process these by creating a TO using LT04 as a call transaction.
    However, before I can put in a bin , the screen that appears in order to enter the bin  has an error message before anything has been input -  'No destination storage bin to be found in storage type 001 "(L3 009).
    Anyone have any suggestions how I can get around this as I cannot create the TO in the background using LT04 because of this error.
    Regards
    Larissa Maryniuk

    As mentioned in my original question, I cannot use the LTOCREATE_FROM_TR FM for items set  with stock category Q as these are QM relevant.  If you try and create a TO from a TR using L_TO_CREATE_TR you get an error of 2 which is item is QM relevant.  I cannot see how I can use  WS_LM_TRANSFER_ORDER_CREATE as you cannot put in the TR number anywhere. Other than these 2 cannot see how I can create a TO from a TR without using LT04. 
    If I use LT04 and set as backrground I get the message specified. The way to get around the error using LT04 is only available if T04 is set as Foreground on the front screen instead of background.
    Anyone have any suggestions?
    Edited by: Larissa Maryniuk on Jan 25, 2010 11:41 AM

  • Problem with CALL TRANSACTION 'VA33' with PARAMETER ID 'AUN'

    I started to post this as a problem, but stumbled into the solution while testing further.  Since I didn't find a solution in the SDN.SAP Forums I'm entering this to help others who may have the same problem.
    This code would not work:
          SET PARAMETER ID 'AUN' FIELD sy-lisel(10).   "sy-lisel(10) contains the Scheduling Agreement on the selected line of the report.
          CALL TRANSACTION 'VA33' AND SKIP FIRST SCREEN.
    It would go to Transaction VA33 but would always default to the last Scheduling Agreement accessed manually instead of the one I needed to see via this call.
    When I change the transaction to VA03 it works:
          SET PARAMETER ID 'AUN' FIELD sy-lisel(10).
          CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
    We can not access a Scheduling Agreement from VA03 on-line, but for some reason this call displays the correct S/A, and System Status says it is running transactin VA03. 
    Perhaps it is because we are using a custome Order Type for Scheduling Agreements (YALZ)?
    Best wishes to our SAP friends.

    Hi,
    VA33 is for schedulinng Agreement so use..
    SET PARAMETER ID 'LPN' FIELD sy-lisel(10).
    AUN - Order number
    LPN - Scheduling agreement number
    now it works..
    Regards,
    Sathish Reddy.

  • Problem with call transaction and a query

    Hi,
    Whe have a query that has its own Z tcode, we are working with this "EXIT_SAPLCORF_103"  within the tcode CO11N. Inside the include "ZXCOFU13" we call the query Tcode and it is displayed on screen but with no data.
    The table "itbdcdata" record well the data of the inputs in the query recording so you can see with the WERKS and the number of reserve (3994) in the recording.
    Why the call transaction display the query screen with no data...? and how can i pass the inputs to the query screen so it be executed.
    Thanks on advance.
    David Fúnez
    Tegucigalpa, Honduras.
    This is the recording:
    AQZZZ_USER_GRMA=Z_QUERY_PP_003     1000X                                                                                BDC_CURSOR     SP$00002-LOW
                                                                BDC_OKCODE     =CRET
                                                                S_WERKS-LOW     1202
                                                                SP$00002-LOW           3994
                                                                %ALV     X
    this is the code in the INCLUDE
    *&  Include           ZXCOFU13
    DATA: itbdcdata TYPE bdcdata    OCCURS 0 WITH HEADER LINE,
          optoption TYPE ctu_params.
    REFRESH itbdcdata.
    CLEAR   itbdcdata.
    itbdcdata-program  = 'AQZZZ_USER_GRMA=Z_QUERY_PP_003'.
    itbdcdata-dynpro   = '1000'.
    itbdcdata-dynbegin = 'X'.
    APPEND itbdcdata.
    itbdcdata-fnam = 'BDC_CURSOR'.
    itbdcdata-fval = 'SP$00002-LOW'.
    APPEND itbdcdata.
    itbdcdata-fnam = 'BDC_OKCODE'.
    itbdcdata-fval = '=CRET'.
    APPEND itbdcdata.
    itbdcdata-fnam = 'S_WERKS-LOW'.
    itbdcdata-fval = '1202'.
    APPEND itbdcdata.
    itbdcdata-fnam = 'SP$00002-LOW'.
    itbdcdata-fval = caufvd_imp-rsnum.
    APPEND itbdcdata.
    itbdcdata-fnam = '%ALV'.
    itbdcdata-fval = 'X'.
    APPEND itbdcdata.
    CLEAR optoption.
    optoption-dismode = 'A'. "A is visible
    optoption-updmode = 'S'.
    CALL TRANSACTION 'ZRESV' USING itbdcdata OPTIONS FROM optoption.

    problem solved.

  • Problem with call transaction KKS2

    Hi all,
    I am using call transaction method for KKS2 for variance calculation but it is not working.
    Could you please let me know what can be the reason ? also do we need to use commit work after call transaction ?
    Regards,
    Anubhuti

    HI ,
    It's not working means, are you getting any error?
    Did you refresh your BDCDATA internal table?
    check the syntanx for call transaction. Paste  some code for better understanding. so that it l be easy to resolve the issue.
    Regards,
    Pravin

  • ALV Interactive -Problem while calling transaction

    Hi Experts,
    FORM user_command USING cmd TYPE sy-ucomm
                            self TYPE slis_selfield.
    CASE cmd.
          WHEN '&IC1'.
         READ TABLE gt_output INTO gs_output INDEX self-tabindex.
            IF self-fieldname = 'VBELN' and gs_output-vbeln is not initial.
           SET PARAMETER ID 'AUN' field gs_output-VBELN.
           call transaction 'VA23' AND SKIP FIRST SCREEN.
         ENDIF.
    ENDCASE.
    ENDFORM.
    But in the above code my parameter id value is not properly fixed. Could anybody suggest me how I can fix my parameter id based on user selection so that I can call the desired transaction.
    Regards,
    Neha

    hi,
    SET PARAMETER ID <pid> FIELD <f>.
    This statement saves the contents of field <f> under the ID <pid> in the SAP memory. The code <pid> can be up to 20 characters long. If there was already a value stored under <pid>, this statement overwrites it. If the ID <pid> does not exist, double-click <pid> in the ABAP Editor to create a new parameter object.
    in your statement check the id, if it is not available you can create id and store the field value.
    for more information, follow this link.....
    http://help.sap.com/saphelp_nw04/helpdata/EN/9f/db9e0435c111d1829f0000e829fbfe/content.htm
    regards,
    Ashok

  • Weird problem after calling transaction...

    Hello experts,
    Please take a look at my code below:
    AT LINE-SELECTION.
      DATA: lv_fnam(50) TYPE c,
            lv_fval(50) TYPE c,
            lv_asset_dum    TYPE anla-anln1,
            lv_assetsub_dum TYPE anla-anln2.
      GET CURSOR FIELD lv_fnam VALUE lv_fval.
      IF sy-subrc = 0.
        CASE lv_fnam.
          WHEN 'WA_OUTPUT-ASSET_SUBNUM'.
            SPLIT lv_fval AT '-' INTO lv_asset_dum lv_assetsub_dum.
            SET PARAMETER ID 'BUK' FIELD wa_output-company.
            SET PARAMETER ID 'AN1' FIELD lv_asset_dum.
            SET PARAMETER ID 'AN2' FIELD lv_assetsub_dum.
            CALL TRANSACTION 'AW01N' AND SKIP FIRST SCREEN.
          WHEN 'WA_OUTPUT-EQUIP_NUM'.
            SET PARAMETER ID 'EQN' FIELD lv_fval.
            CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN.
        ENDCASE.
      ENDIF.
    the value of WA_OUTPUT-ASSET_SUBNUM is shown as asset number + asset subnumber.
    for example:
    1468-0000
    Now, when we look at transaction AW01N it requires the company code, asset number and the sub number.
    When you look at my code, I am splitting WA_OUTPUT-ASSET_SUBNUM at '-' and put them in 2 variables
    as shown above. But when I call transaction AW01N it says that 'No depreciation areas defined for
    asset 1468-0. It weird since when I manually enter those values it is fine.
    Help would be greatly appreciated. Thanks a lot guys and take care!

    Hello again experts,
    here now is my revised code. It still has the same problem which says no depreciation areas defined for asset 1468-0.
    After debugging it, lv_asset_dum has a value of 1468 and lv_assetsub_dum has a value of 0000. This should work fine if I enter it manually.
    AT LINE-SELECTION.
      DATA: lv_fnam(50)  TYPE c,
            lv_fval(50)  TYPE c,
            lv_asset_dum TYPE anla-anln1,
            lv_assetsub_dum(4) TYPE n.
      GET CURSOR FIELD lv_fnam VALUE lv_fval.
      IF sy-subrc = 0.
        CASE lv_fnam.
          WHEN 'WA_OUTPUT-ASSET_SUBNUM'.
            SPLIT lv_fval AT '-' INTO lv_asset_dum lv_assetsub_dum.
            CONDENSE: lv_asset_dum, lv_assetsub_dum.
            SET PARAMETER ID 'BUK' FIELD wa_output-company.
            SET PARAMETER ID 'AN1' FIELD lv_asset_dum.
            SET PARAMETER ID 'AN2' FIELD lv_assetsub_dum.
            CALL TRANSACTION 'AW01N'.
          WHEN 'WA_OUTPUT-EQUIP_NUM'.
            SET PARAMETER ID 'EQN' FIELD lv_fval.
            CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN.
        ENDCASE.
      ENDIF.

  • Problem with Call Transaction

    hello,
    i am doing call transaction to ME41 in mode 'A' (visible). The problem is when it go to screen SAPLMLSP 0200, in this screen stop call transaction, no error, no okcode, no data,..why?
    thanks,
    regards,

    Hi,
    Please check your BDC Program. i think you are not done the recording for that screen. Pleae do the recording one more time and check the program.
    Thanks,
    Venkat

  • Problem with "Call Transaction" which calls a view cluster

    Hi Colleagues ,
    I have a rare issue with the call transaction , here is the use case for it :
    1> I call a transaction(calls a screen X) in a report ,
    2> I have a button in the screen , which calls another transaction(calls a screen X2) .
    3> On the screen X2 i have another button which calls transaction (calls the view cluster ).
    problem :
    i'm not able to see the navigation pane in the view cluster on the left. its missing .
    but when the view cluster is called direclty , i'm able to see the navigation pane in the view cluster ..
    My initial doubt was , is this the problem with nesting of 'Call Transaction' calls ????
    please answer the thread , i have to fix this ASAP.
    regards,
    Dilip

    problem solved.

Maybe you are looking for