New ABAP Program to check Direct UPDATE in Database Table

Hi all,
As per customer requirement , I have to develop ONE  Program which find out that  in which ABAP Program , Programmer has used Open Sql command like  UPDATE , DELETE , INSERT , MODIFY to direct update in Database Table.
Have a look on all Z-ABAPs, find out if there are statements with "update", "delete", "insert" or "modify" in the coding, then find out if updates to sap-Tables are done
How can I achived that ?
Please , If anybody is having idea , than please let me know..
Thanks You ,

Hi
Kindly refer to the below link. This has step by step how you can achieve the checks.
[http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/12659a90-0201-0010-c18b-9d014f9bed0d]
But if you want to check if any program they have used 'UPDATE' then you can do like below.
Go to SE38
Utilities---> Find in Source Code-
Find --- UPDATE
In program - Z* or ZX* if you want to search only in Exits
Regards,
Vijay V .

Similar Messages

  • Remove direct update of database table for VBUk and VBRK

    hello,
    we are updating  database table only for thse two single fields VBRK-FKDAT_RL and VBUK-RELIK using direct UPDATE statements.
    Could you please suggest some function modules or BAPI ?
    BDC is not possible as some fields are not editable.
    Awaiting your responses.
    I have tried RV_INVOICE_DOCUMENT_READ, RV_INVOICE_DOCUMENT_UPDATE, RV_INVOICE_DOCUMENT_ADD.

    The fields aren't editable for a reason.  If you explain the reason for the requirement and what is the trigger for changing the values, you might get a better response.  Why isn't this handled via configuration for instance?

  • Create new abap program

    my usual practice in creating new abap program is in se80 then type the desired program name then the sap will display that the program name is not existing and will ask if i want to create it.
    however in my new company when i do the above step it just display that the program is not existing and no question if i will create this. in line with this i would like to ask how would i create new abap program?
    thanks.
    donna

    Hi Donna,
    Do you have the relevant authorisations? Maybe you donot have authorisation to create new objects? Check your profiles via SU01. Personally I always ask for SAP_ALL and SAP_NEW in the Development system.
    Cheers,
    Pat.

  • Abap programe 'AUTHORIZATION-CHECK'

    What is abap programe 'AUTHORIZATION-CHECK' how can i navigate there

    Hi,
    You can navigate to the Code this way
    1)
    SE93> Display>Double click in the Entry corresponding to Program-->then you enter the Source Code here select find and give the search string as
    "Authority-Check" this displays you whatever entries are there in the code.
    This method is useful if you know the Tcode and want to see what check statemetns are there in ABAP code corresponding to it.
    2)On the other hand if you know the program then go to
    SE38> enter the program name> Select Source Code> Press Display>
    and from there search with the string mentioned above justlike the case mentioned above...
    Hope this helps
    Regards,
    Manohar

  • ABAP programming extended Check

    Hi
    Why do we do ABAP program Extended Check?
    Thank You

    it is necessary for Complete check of the ABAP source text for all statically recognizable errors.Programs with errors in the extended program check can be executed, but usually result in an exceeption.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/d1/801afd454211d189710000e8322d00/content.htm
    Error situation during execution of an ABAP program. Exceptions are treatable (statements TRY, CATCH) or untreatable.
    Untreated exceptions result in a runtime error. An exception is triggered either by the ABAP runtime environment due to error situations that are not foreseeable by the static program check, or by the RAISE EXCEPTION statement.

  • ABAP Program to delete the update rules

    Hi guys,
            Is there any ABAP Program to delete the update rules if any body knows.

    Hi dear,
    try with FM RSAU_UPDR_DELETE...
    Hope it helps!
    Bye,
    Roberto
    ...and please dont forget to reward the answers...it-s THE way to say thanks here !

  • Can we do a direct update on fnd_concurrent_programs table

    Hi Team,
    Can anyone help me out with this.
    i have a requirement where i need to set the print_flag ='N' for all the Concurrent Programs whose Printer flag is "Y".
    for this , Can i use a direct update statement or is there any standard API to update the column in the table fnd_concurrent_programs.
    my update statement :
    Update fnd_concurrent_programs set print_flag ='N' where print_flag='Y';
    Can i go ahead with above sql statement for an update or do i need to use any api.
    at the same time just want to check, can i do an direct update on fnd_concurrent_requests table too ?
    Can anyone help me out on this.

    Can i go ahead with above sql statement for an update or do i need to use any api.
    at the same time just want to check, can i do an direct update on fnd_concurrent_requests table too ?
    Yes you can, for both tables.
    Here are few examples:
    For FND_CONCURRENT_PROGRAMS:
    (Doc ID 419432.1)
    (Doc ID 427963.1)
    (Doc ID 837615.1)
    For FND_CONCURRENT_REQUESTS, see (Doc ID 134007.1).
    Thanks,
    Hussein

  • Runtime error:ABAP program lines are longer than the internal table

    Hi all,
    Below is the code I have written,when Iam running it Iam getting
    'ABAP program lines are longer than the internal table' runtime error.How can I resolve it.
    REPORT  ZTEST1  NO STANDARD PAGE HEADING LINE-SIZE 255.
    TABLES:MARC,CDHDR,CDPOS.
    TYPE-POOLS:SLIS.
    DATA:HEADER TYPE SLIS_T_FIELDCAT_ALV,
         WA TYPE SLIS_FIELDCAT_ALV,
         LAYOUT TYPE SLIS_LAYOUT_ALV.
    TYPES:BEGIN OF MARC_TY,
            MATNR LIKE MARC-MATNR,
            WERKS LIKE MARC-WERKS,
            EKGRP LIKE MARC-EKGRP,
            MINBE LIKE MARC-MINBE,
            EISBE LIKE MARC-EISBE,
            MABST LIKE MARC-MABST,
           END OF MARC_TY.
    TYPES:BEGIN OF MATNR1_TY,
            MATNR1 LIKE CDHDR-OBJECTID,
          END OF MATNR1_TY.
    TYPES:BEGIN OF CDHDR_TY,
             OBJECTCLAS LIKE CDHDR-OBJECTCLAS,
             OBJECTID   LIKE CDHDR-OBJECTID,
             CHANGENR   LIKE CDHDR-CHANGENR,
             USERNAME   LIKE CDHDR-USERNAME,
             UDATE      LIKE CDHDR-UDATE,
            END OF CDHDR_TY.
    TYPES:BEGIN OF CDPOS_TY,
             OBJECTCLAS LIKE CDPOS-OBJECTCLAS,
             OBJECTID   LIKE CDPOS-OBJECTID,
             CHANGENR   LIKE CDPOS-CHANGENR,
             TABNAME    LIKE CDPOS-TABNAME,
             FNAME      LIKE CDPOS-FNAME,
             CHNGIND    LIKE CDPOS-CHNGIND,
             VALUE_NEW  LIKE CDPOS-VALUE_NEW,
             VALUE_OLD  LIKE CDPOS-VALUE_OLD,
            END OF CDPOS_TY.
    **************TABLE TYPES********************************************
    TYPES: MARC_TAB   TYPE TABLE OF MARC_TY,
           MATNR1_TAB TYPE TABLE OF MATNR1_TY,
           CDHDR_TAB  TYPE TABLE OF CDHDR_TY,
           CDPOS_TAB  TYPE TABLE OF CDPOS_TY.
    *******************INTERNAL TABLES************************************
    DATA:MARC_ITAB   TYPE MARC_TAB,
         MATNR1_ITAB TYPE MATNR1_TAB,
         CDHDR_ITAB  TYPE CDHDR_TAB,
         CDPOS_ITAB  TYPE CDPOS_TAB.
    ****************WORK AREAS********************************************
    DATA:MARC_WA   TYPE MARC_TY,
         MATNR1_WA TYPE MATNR1_TY,
         CDHDR_WA  TYPE CDHDR_TY,
         CDPOS_WA  TYPE CDPOS_TY.
    *******************SELECTION-SCREEN***********************************
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
      PARAMETERS:PLANT LIKE MARC-WERKS.
      SELECT-OPTIONS:MATERIAL FOR MARC-MATNR.
      SELECT-OPTIONS:DATE FOR CDHDR-UDATE.
    SELECTION-SCREEN END OF BLOCK B1.
    START-OF-SELECTION.
    SELECT MATNR
            WERKS
            EKGRP
            MINBE
            EISBE
            MABST
            FROM MARC INTO TABLE MARC_ITAB
            WHERE MATNR IN MATERIAL
            AND WERKS = PLANT.
      CHECK MARC_ITAB[] IS NOT INITIAL.
      LOOP AT MARC_ITAB INTO MARC_WA.
       MATNR1_WA-MATNR1 = MARC_WA-MATNR.
       APPEND MATNR1_WA TO MATNR1_ITAB.
       CLEAR MATNR1_WA.
    ENDLOOP.
    CHECK MATNR1_ITAB[] IS NOT INITIAL.
    SELECT OBJECTCLAS
            OBJECTID
            CHANGENR
            USERNAME
            UDATE
            FROM CDHDR INTO TABLE CDHDR_ITAB
            FOR ALL ENTRIES IN MATNR1_ITAB
            WHERE OBJECTCLAS = 'MATERIAL'
            AND OBJECTID = MATNR1_ITAB-MATNR1
            AND UDATE IN DATE.
    CHECK CDHDR_ITAB[] IS NOT INITIAL.
    SORT CDHDR_ITAB[]  DESCENDING BY OBJECTID  CHANGENR.
    DELETE ADJACENT DUPLICATES FROM CDHDR_ITAB[] COMPARING OBJECTID.
    SELECT OBJECTCLAS
           OBJECTID
           CHANGENR
           TABNAME
           FNAME
           CHNGIND
           VALUE_NEW
           VALUE_OLD
           FROM CDPOS INTO CORRESPONDING FIELDS OF TABLE CDPOS_ITAB
           FOR ALL ENTRIES IN CDHDR_ITAB
           WHERE OBJECTCLAS = CDHDR_ITAB-OBJECTCLAS
           AND OBJECTID = CDHDR_ITAB-OBJECTID
           AND CHANGENR = CDHDR_ITAB-CHANGENR
           AND TABNAME  = 'MARC'
           AND FNAME    IN ('MINBE','EISBE','MABST','LVORM')
           AND CHNGIND  = 'U'.
    CHECK CDPOS_ITAB[] IS NOT INITIAL.
    *LOOP AT CDPOS_ITAB INTO CDPOS_WA.
    WRITE: / CDPOS_WA-OBJECTCLAS,
             CDPOS_WA-OBJECTID,
             CDPOS_WA-CHANGENR,
             CDPOS_WA-TABNAME,
             CDPOS_WA-FNAME,
             CDPOS_WA-CHNGIND,
             CDPOS_WA-VALUE_NEW,
             CDPOS_WA-VALUE_OLD.
    *ENDLOOP.
    WA-SELTEXT_L = 'OBJECTCLAS'.
    WA-COL_POS   = '1'.
    WA-FIELDNAME = 'OBJECTCLAS'.
    WA-TABNAME   = 'CDPOS_ITAB'.
    WA-OUTPUTLEN = '15'.
    APPEND WA TO HEADER.
    CLEAR WA.
    WA-SELTEXT_L = 'OBJECTID'.
    WA-COL_POS   = '2'.
    WA-FIELDNAME = 'OBJECTID'.
    WA-TABNAME   = 'CDPOS_ITAB'.
    WA-OUTPUTLEN = '20'.
    APPEND WA TO HEADER.
    CLEAR WA.
    WA-SELTEXT_L = 'CHANGENR'.
    WA-COL_POS   = '3'.
    WA-FIELDNAME = 'CHANGENR'.
    WA-TABNAME   = 'CDPOS_ITAB'.
    WA-OUTPUTLEN = '8'.
    APPEND WA TO HEADER.
    CLEAR WA.
    WA-SELTEXT_L = 'TABNAME'.
    WA-COL_POS   = '4'.
    WA-FIELDNAME = 'TABNAME'.
    WA-TABNAME   = 'CDPOS_ITAB'.
    WA-OUTPUTLEN = '5'.
    APPEND WA TO HEADER.
    CLEAR WA.
    WA-SELTEXT_L = 'FNAME'.
    WA-COL_POS   = '5'.
    WA-FIELDNAME = 'FNAME'.
    WA-TABNAME   = 'CDPOS_ITAB'.
    WA-OUTPUTLEN = '7'.
    APPEND WA TO HEADER.
    CLEAR WA.
    WA-SELTEXT_L = 'CHANGING'.
    WA-COL_POS   = '6'.
    WA-FIELDNAME = 'CHANGING'.
    WA-TABNAME   = 'CDPOS_ITAB'.
    WA-OUTPUTLEN = '1'.
    APPEND WA TO HEADER.
    CLEAR WA.
    WA-SELTEXT_L = 'VALUE_NEW'.
    WA-COL_POS   = '7'.
    WA-FIELDNAME = 'VALUE_NEW'.
    WA-TABNAME   = 'CDPOS_ITAB'.
    WA-OUTPUTLEN = '5'.
    APPEND WA TO HEADER.
    CLEAR WA.
    WA-SELTEXT_L = 'VALUE_OLD'.
    WA-COL_POS   = '8'.
    WA-FIELDNAME = 'VALUE_OLD'.
    WA-TABNAME   = 'CDPOS_ITAB'.
    WA-OUTPUTLEN = '5'.
    APPEND WA TO HEADER.
    CLEAR WA.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
        I_PROGRAM_NAME               = SY-REPID
        I_INTERNAL_TABNAME           = 'CDPOS_ITAB'
        I_CLIENT_NEVER_DISPLAY       = 'X'
        I_INCLNAME                   = SY-REPID
      CHANGING
        CT_FIELDCAT                  = HEADER[]
    EXCEPTIONS
    IF SY-SUBRC <> 0.
    ENDIF.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM                = SY-REPID
        IT_FIELDCAT                       = HEADER[]
      TABLES
        T_OUTTAB                          = CDPOS_ITAB[]
    IF SY-SUBRC <> 0.
    ENDIF.

    Your select querry on MARC is not matching with MARC_TY.
    The field in the MARC table and MARC_TY should be same.
    and also, when you are making select querry on CDPOS table
    with all entries.
    When ever you are using all entries select statement, you should check whether the internal table is having value.
    you should check
    if CDPOS_IT[] is not initial.
    SELECT OBJECTCLAS
    OBJECTID
    CHANGENR
    TABNAME
    FNAME
    CHNGIND
    VALUE_NEW
    VALUE_OLD
    FROM CDPOS INTO CORRESPONDING FIELDS OF TABLE CDPOS_ITAB
    FOR ALL ENTRIES IN CDHDR_ITAB
    WHERE OBJECTCLAS = CDHDR_ITAB-OBJECTCLAS
    AND OBJECTID = CDHDR_ITAB-OBJECTID
    AND CHANGENR = CDHDR_ITAB-CHANGENR
    AND TABNAME = 'MARC'
    AND FNAME IN ('MINBE','EISBE','MABST','LVORM')
    AND CHNGIND = 'U'.
    endif.
    Regards
    Madhan D

  • Update the database table inside an user exit.

    Hi Experts,
    I have a issue where i have to update a custom table in an User exit.
    I am using Lock object for ENQUE/DEQUE.
    I have tried to use statements like UPDATE/MODIFY inside the user exit.
    But the problem is that it's not updating the database table at the same time.
    I know if i use COMMIT WORK it can update at the same time but it's not advisable to use COMMIT inside a work.and also it gives a short dump.
    The real issue is that this custom table is read for batch creation at the same time for different users.
    Now if it the program does not update the database table at the same time then other users also read the same data and create the same Batch number..
    While requirement is to create a different/unique batch numbers.
    Program is updating the table but it's taking time..so in between other users are creating the same batch number.
    Please guide me what would be the best solution for this.
    Regards,
    Amit Kumar Singh

    Thanks for your quick reply.
    My actually requirement is like that.
    I have to create a Process Order using tcode COR1.
    After passing some input value it goes inside an User Exit.
    There one Custom table is maintained which stores some fields like month,year,numeric key field,etc.
    The new batch number is created using the combination of these table fields.
    Once a new batch number is created it increment the numeric key field number by one.
    Issue is we have to update this new numeric field value into the database field so that other users can read a diffrent numeric field value.hence it will create a new/different batch number.
    Here i am not able to update the database table inside this User Exit.
    Table is geeting updated but after some time and out of this User Exit.
    Please suggest what's required in that case?
    Regards,
    Amit Kumar Singh
    Edited by: Amit  Singh on Feb 3, 2009 11:33 AM

  • Regarding updating of database table..

    Halo All,
    I have actually done the program successfully for updating the database table QMFE some days back, now we needed to update some more records and i have just changed the path of the text files but the problem is that all the values are being uploaded but the update statement is not executing successfully
    I have also tried to debug the program and saw that the sy-subrc value is 4 instead of 0.
    I am pasting my code here.
    Please solve this asap.
    *&     Report          Y_UPDATE_QMFE_01                                *
    *&     Program         Y_UPDATE_QMFE_01                                *
    *&     Author          RAMA KRISHNA BASA                               *
    *&     Date            02-04-2007                                      *
    *&     Description     REPORT FOR Update of Table QMFE                 *
    *&     Includes                                                        *
    *&     Tables          QMFE                                            *
    *&     Program Maintenance History                                     *
    *&     Date         Author     Change Request Number       SAP Release *
    *&  02-04-2007       BASA           EF7K919575                 6.10    *
    REPORT  Y_UPDATE_QMFE                            .
    Tables: qmfe.
    data: begin of gt1_qmfe occurs 0,
          qmnum       like qmfe-qmnum,
          fenum       like qmfe-fenum,
          /itml/usr20 like qmfe-/itml/usr20,
          end of gt1_qmfe.
    data: begin of gt2_qmfe occurs 0,
          qmnum       like qmfe-qmnum,
          fenum       like qmfe-fenum,
          /itml/usr21 like qmfe-/itml/usr21,
          end of gt2_qmfe.
    data: begin of gt3_qmfe occurs 0,
          qmnum       like qmfe-qmnum,
          fenum       like qmfe-fenum,
          /itml/usr19 like qmfe-/itml/usr19,
          end of gt3_qmfe.
    data: begin of gt4_qmfe occurs 0,
          qmnum       like qmfe-qmnum,
          fenum       like qmfe-fenum,
          /itml/usr07 like qmfe-/itml/usr07,
          end of gt4_qmfe.
    data: gs1_qmfe like line of gt1_qmfe,
          gs2_qmfe like line of gt2_qmfe,
          gs3_qmfe like line of gt3_qmfe,
          gs4_qmfe like line of gt4_qmfe.
    data: ls_lines1 type i,
          ls_lines2 type i,
          ls_lines3 type i,
          ls_lines4 type i.
    parameters: ip_file1 type RLGRAP-FILENAME default 'C:\Urgent\New\Text Files\StoDt.txt'     obligatory,   " usr20
                ip_file2 type RLGRAP-FILENAME default 'C:\Urgent\New\Text Files\RcDtCust.txt'  obligatory,   " usr21
                ip_file3 type RLGRAP-FILENAME default 'C:\Urgent\New\Text Files\DockDate.txt'  obligatory,   " usr19
                ip_file4 type RLGRAP-FILENAME default 'C:\Urgent\New\Text Files\AWB.txt'       obligatory.   " usr07
    field-symbols: <fs1> like gs1_qmfe,
                   <fs2> like gs2_qmfe,
                   <fs3> like gs3_qmfe,
                   <fs4> like gs4_qmfe.
    perform upload_gt1_qmfe.
    perform upload_gt2_qmfe.
    perform upload_gt3_qmfe.
    perform upload_gt4_qmfe.
    perform update_qmfe.
    *&      Form  upload_gt1_qmfe
          text
    -->  p1        text
    <--  p2        text
    FORM upload_gt1_qmfe .
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
       FILENAME                      = ip_file1
       FILETYPE                      = 'DAT'
      TABLES
        DATA_TAB                      = gt1_qmfe.
    describe table gt1_qmfe lines ls_lines1.
    write: / ls_lines1.
    ENDFORM.                    " upload_gt1_qmfe
    *&      Form  upload_gt2_qmfe
          text
    -->  p1        text
    <--  p2        text
    FORM upload_gt2_qmfe .
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
       FILENAME                      = ip_file2
       FILETYPE                      = 'DAT'
      TABLES
        DATA_TAB                      = gt2_qmfe.
    describe table gt2_qmfe lines ls_lines2.
    write: / ls_lines2.
    ENDFORM.                    " upload_gt2_qmfe
    *&      Form  upload_gt3_qmfe
          text
    -->  p1        text
    <--  p2        text
    FORM upload_gt3_qmfe .
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
       FILENAME                      = ip_file3
       FILETYPE                      = 'DAT'
      TABLES
        DATA_TAB                      = gt3_qmfe.
    describe table gt3_qmfe lines ls_lines3.
    write: / ls_lines3.
    ENDFORM.                    " upload_gt3_qmfe
    *&      Form  upload_gt4_qmfe
          text
    -->  p1        text
    <--  p2        text
    FORM upload_gt4_qmfe .
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
       FILENAME                      = ip_file4
       FILETYPE                      = 'DAT'
      TABLES
        DATA_TAB                      = gt4_qmfe.
    describe table gt4_qmfe lines ls_lines4.
    write: / ls_lines4.
    ENDFORM.                    " upload_gt4_qmfe
    *&      Form  update_qmfe
          text
    -->  p1        text
    <--  p2        text
    FORM update_qmfe .
    data: ls_cnt1 type i,
          ls_cnt2 type i,
          ls_cnt3 type i,
          ls_cnt4 type i.
    *refresh gt1_qmfe.
    *clear   gt1_qmfe.
    loop at gt1_qmfe assigning <fs1> .
    *concatenate <fs1>-/itml/usr206(2) '.' <fs1>-/itml/usr204(2) '.' <fs1>-/itml/usr20+2(2) into <fs1>-/itml/usr20.
    data wa_qmfe type qmfe.
    *select single * from qmfe into wa_qmfe where qmnum = <fs1>-qmnum
                                                      and   fenum = <fs1>-fenum.
    *wa_qmfe-/itml/usr20 = <fs1>-/itml/usr20.
    update QMFE  set    /itml/usr20 = <fs1>-/itml/usr20
                 where  qmnum       = <fs1>-qmnum
                 and    fenum       = <fs1>-fenum.
    *modify qmfe from wa_qmfe.
    if sy-subrc = 0.
    commit work.
    add 1 to ls_cnt1.
    endif.
    endloop.
    write: / ls_cnt1.
    *refresh gt2_qmfe.
    *clear   gt2_qmfe.
    loop at gt2_qmfe assigning <fs2>.
    *concatenate <fs2>-/itml/usr216(2) '.' <fs2>-/itml/usr214(2) '.' <fs2>-/itml/usr21+2(2) into <fs2>-/itml/usr21.
    update qmfe set    /itml/usr21 = <fs2>-/itml/usr21
                where  qmnum       = <fs2>-qmnum
                and    fenum       = <fs2>-fenum.
    if sy-subrc = 0.
    commit work.
    add 1 to ls_cnt2.
    endif.
    endloop.
    write: / ls_cnt2.
    *refresh gt3_qmfe.
    *clear   gt3_qmfe.
    loop at gt3_qmfe assigning <fs3>.
    *concatenate <fs3>-/itml/usr196(2) '.' <fs3>-/itml/usr194(2) '.' <fs3>-/itml/usr19+2(2) into <fs3>-/itml/usr19.
    update qmfe set    /itml/usr19 = <fs3>-/itml/usr19
                where  qmnum       = <fs3>-qmnum
                and    fenum       = <fs3>-fenum.
    if sy-subrc = 0.
    commit work.
    add 1 to ls_cnt3.
    endif.
    endloop.
    *top_of_page.
    write: / ls_cnt3.
    *refresh gt4_qmfe.
    *clear   gt4_qmfe.
    loop at gt4_qmfe assigning <fs4>.
    update qmfe set    /itml/usr07 = <fs4>-/itml/usr07
                where  qmnum       = <fs4>-qmnum
                and    fenum       = <fs4>-fenum.
    if sy-subrc = 0.
    commit work.
    add 1 to ls_cnt4.
    endif.
    endloop.
    write: / ls_cnt4.
    ENDFORM.                    " update_qmfe
    Thanks in advance,
    rama.

    Hi,
    Thanks for the reply..
    But last time the update was successfull and the program was transported onto the productive system
    after that now i need to update the new records into QMFE
    so what i did is just changed the path of the text files since they are of same format as of the old text files.
    Does it have any problems.
    How can i do that using what u have suggested......
    i need to update the database table QMFE
    is there any bapi to update the data base table

  • Update a database table column via EO

    Hi,
    I want to update a database table column via EO, but somehow the table column is not updated. Could you help if I miss anything?
    Here is my code:
    View SQL:
    select
    ,GoalSheetHeaderEO.srp_goal_header_id
    ,XL.MEANING
    ,GoalSheetHeaderEO.status_code
    ,GoalSheetHeaderEO.start_date GS_START_DATE
    ,GoalSheetHeaderEO.end_date GS_END_DATE
    ,GoalSheetHeaderEO.PERIOD_YEAR
    ,GoalSheetHeaderEO.LAST_UPDATED_BY
    ,GoalSheetHeaderEO.LAST_UPDATE_DATE
    ,GoalSheetHeaderEO.LAST_UPDATE_LOGIN
    ,'N' CHECKED
    from
    xxg2c_srp_goal_headers_all GoalSheetHeaderEO
    ,cn_comp_plans_all comp
    ,jtf_rs_salesreps rs
    ,jtf_rs_resource_extns rse
    ,xxg2c_lookups xl
    ,shr_strct_nodes nod
    ,g2c_goal_shr_emp_assignments_v emp
    CO:
    if (pageContext.getParameter("Update") != null){
    am.invokeMethod("updateGoalSheet");
    AM:
    public void deleteGoalSheet(){
    OAViewObject vo = (OAViewObject)getGoalSheetResultGAVO1();
    GoalSheetResultGAVORowImpl row = (GoalSheetResultGAVORowImpl) vo.first();
    while (row != null)
    if (selectFlag != null)
    if (selectFlag .equals("Y"))
    //row.setAttribute("GsStatusCode",Constants.GOAL_SHEET_STATUS_CODE_DEL);
    row.setStatusCode(Constants.GOAL_SHEET_STATUS_CODE_DEL);
    row = (GoalSheetResultGAVORowImpl) vo.next();
    getTransaction().commit();
    EO:
    public void setStatusCode(String value) {
    if (value.equals(Constants.GOAL_SHEET_STATUS_CODE_DEL)){
    String currentStatus = getStatusCode();
    if(!(currentStatus.equals(Constants.GOAL_SHEET_STATUS_CODE_INPROG)
    ||currentStatus.equals(Constants.GOAL_SHEET_STATUS_CODE_RDYAUD))){
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(),
    getPrimaryKey(),
    "StatusCode",
    value,
    "xxg2c goaling",
    "DEBUG -- need message name"
    setAttributeInternal(STATUSCODE, value);
    thanks
    Lei

    Hi Vikram,
    It is just a type error. The delete is a soft delete to change the status to 'DEL'.
    And also the view object is hybrid view object.
    Complete View Object SQL:
    select
    nod.node_id
    ,nod.version_id
    ,emp.status_name
    ,rs.SALESREP_ID
    ,rse.source_name
    ,rse.source_email SRP_EMAIL_ID
    ,rse.source_number SRP_EMPLOYEE_NUMBER
    ,comp.name
    ,GoalSheetHeaderEO.srp_goal_header_id
    ,XL.MEANING
    ,GoalSheetHeaderEO.status_code
    ,GoalSheetHeaderEO.start_date GS_START_DATE
    ,GoalSheetHeaderEO.end_date GS_END_DATE
    ,GoalSheetHeaderEO.PERIOD_YEAR
    ,GoalSheetHeaderEO.LAST_UPDATED_BY
    ,GoalSheetHeaderEO.LAST_UPDATE_DATE
    ,GoalSheetHeaderEO.LAST_UPDATE_LOGIN
    ,DECODE(GoalSheetHeaderEO.PERIOD_YEAR,(SELECT PERIOD_YEAR FROM GL_PERIODS WHERE PERIOD_SET_NAME = 'Fiscal Year' AND SYSDATE BETWEEN YEAR_START_DATE AND END_DATE),DECODE(GoalSheetHeaderEO.STATUS_CODE,'AUTH','copy_enabled','copy_disabled'),'copy_disabled') COPY_FLAG
    ,DECODE(GoalSheetHeaderEO.SRP_GOAL_HEADER_ID,null,'create_enabled',DECODE(GoalSheetHeaderEO.status_code,'AUTH','create_enabled','create_disabled')) CREATE_FLAG
    ,'N' CHECKED
    from
    xxg2c_srp_goal_headers_all GoalSheetHeaderEO
    ,cn_comp_plans_all comp
    ,jtf_rs_salesreps rs
    ,jtf_rs_resource_extns rse
    ,xxg2c_lookups xl
    ,shr_strct_nodes nod
    ,g2c_goal_shr_emp_assignments_v emp
    public void updateGoalSheet(){
    OAViewObject vo = (OAViewObject)getGoalSheetResultGAVO1();
    GoalSheetResultGAVORowImpl row = (GoalSheetResultGAVORowImpl) vo.first();
    while (row != null)
    if (selectFlag != null)
    if (selectFlag .equals("Y"))
    //row.setAttribute("GsStatusCode",Constants.GOAL_SHEET_STATUS_CODE_DEL);
    row.setStatusCode(Constants.GOAL_SHEET_STATUS_CODE_DEL);
    row = (GoalSheetResultGAVORowImpl) vo.next();
    getTransaction().commit();
    thanks for the help.
    Lei

  • Update a database table "j_2iaccbal"

    Hi experts,
    I want to update a database table " J_2IACCBAL" .The reason is,
    In this table one field value is wrongly entered (field name is OP_BAL ) for the month of april 2010.
    how to update this value (through update statement not possible) .I know through BAPI it is possible.
    But i don't the BAPI concept .pls give me the syntax (if possible sdn link).
    pls help me in this .I am a basic abaper.

    Hi Ram,
    You should always avoid updating any database table with direct select statement. This is very important from the SAP Transactional Concept. Let this updating, deleting and inserting of data be handled by the database layer. Also, the database interaction is handled by the Update Modules.
    The BAPI Concept of SAP - Have a look at the following link - [SAP BAPI|http://help.sap.com/saphelp_bw/helpdata/en/a5/3ec8464ac011d1894e0000e829fbbd/content.htm]
    The BAPI's are function modules which can also be used inside SAP System. They are created specially created to handle all the database transactional concepts.You can search for the Function Modules in the system using the where used list.
    Hope this will help you.
    Thanks,
    Samantak.

  • Change the data in fieldcat and update the database table in alv oops

    Hi,
    my requirement is i have displayed a fieldcat in change mode and when i change the data and click on save it has to be updated the database table..
    this has to be done using alv oops...

    Hi,
    This code will reflect all the changes into the internal table that is being displayed.
    * to reflect the data changed into internal table
          DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
          IF ref_grid IS INITIAL.
            CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
              IMPORTING
                e_grid = ref_grid.
          ENDIF.
          IF NOT ref_grid IS INITIAL.
            CALL METHOD ref_grid->check_changed_data.
          ENDIF.
    Now after this code is executed the internal table is modified as per the changes done in alv output.
    Now you can use this internal table to update the database table.
    Hope this helps you.
    Regards,
    Tarun

  • Update the database table

    Hi All,
      i need to do  direct update to the database table and the table has apprx 60,000 records . i am getting all records from database table to internal table and has to chnage the one of the field value and pass it to the database table .  So  i am looping  the internal table and what is the best approach to update the database table is it to  use UPDATE Pa0001 SET KOSTL = it_0001-KOSTL from table it_0001  each time in the loop to update each record  and commit work which hits database for each record or use the statement UPDATE  pa0001 from table it_0001 and if count = 1000 then  COMMIT work in this way it will hit the database for every 1000 records . Appreciate your suggestions,
    Thanks,
    Latha.

    My Code to update PA0006 is :
    DATA:  t_pa0006 TYPE STANDARD TABLE OF pa0006 INITIAL SIZE 0,
           wa_pa0006 LIKE LINE OF t_pa0006,
           w_lin TYPE i.
    FIELD-SYMBOLS:  <fs_pa0006> LIKE LINE OF t_pa0006.
    SELECT * FROM pa0006 INTO TABLE t_pa0006 WHERE uname = 'PKHAROR'.
    LOOP AT t_pa0006 ASSIGNING <fs_pa0006>.
      <fs_pa0006>-stras = 'My Street'.
    ENDLOOP.
    DESCRIBE TABLE t_pa0006 LINES w_lin.
    UPDATE pa0006 FROM TABLE t_pa0006.
    IF sy-subrc EQ 0.
      COMMIT WORK.
      WRITE:/ w_lin, ' Records have been updated..'.
    ENDIF.
    Reward points for useful answers
    Regards
    Pradeep
    Regards
    Pradeep

  • Field value is getting double while updating the database table

    Hi Experts,
    A simple doubt :
    there is a standard program through which a zfunction module is getting triggered, through this zfunction module i am updating the database table.
    Now what happening is one of the field(KCQTY) value in database is getting double at a time when i am executing the Program with same variant only.
    I have also done the CLEAR & REFRESH internal tables starting of the Function module.
    Can you please help me out.
    Max points wil be awarded.
    thanks
    rico.

    Hi Nicole,
    this is the part of the coding where you can see how the field KCQTY is getting moved in the loop statement.
      DELETE IT_CE20002B_815 WHERE
          KONDA = SPACE  OR
          WERKS = SPACE  OR
          VVB01001 < 0.
        LOOP AT IT_CE20002B_815.
          INDX = SY-TABIX.
          CONCATENATE IT_CE20002B_815-PERBL0(4) IT_CE20002B_815-PERBL5(2)
                                                    INTO MONAT.
       MOVE itab_ce20001b-perbl TO monat.
          CLEAR S815.
          READ TABLE IT_ZPL_MCS5 WITH KEY KONDA = IT_CE20002B_815-KONDA
                                           BINARY SEARCH.
            SELECT SINGLE * FROM S815 WHERE VRSIO = '000'
                                         AND SPMON = MONAT
                                         AND KONOB = 'APO'
                                         AND MVGR2 = IT_CE20002B_815-KONDA
                                         AND PRODH = IT_CE20002B_815-PRDHA
                                         AND WERKS = IT_CE20002B_815-WERKS.
                                        AND VTWEG EQ CO_VTWEG_99.
    BREAK SAMEE.
          IF SY-SUBRC EQ 0.
    Eintrag in S810 existiert
            IF S815-AEMENGE <= IT_CE20002B_815-VVB01001.
    wenn die Auftragseingangsmenge kleiner gleich der Kontingentsmenge
    wird die Kontingentmenge in das Steploop übernommen
              MOVE IT_CE20002B_815-VVB01001 TO  W_T_DATA_815-KCQTY.
    *Liste ausgeben
             PERFORM AUSGABE4.
              PERFORM AUSGABE4_815.
            ELSE.
    Ausgabe Fehlermeldung, wenn die Auftragsmenge größer als die
                           Kontingentmenge ist.
    *Liste mit fehlermeldungen ausgeben, Kontingent trotzdem übernehmen
              MOVE IT_CE20002B_815-VVB01001 TO  W_T_DATA_815-KCQTY.
             PERFORM AUSGABE_FEHLER4.
              PERFORM AUSGABE_FEHLER4_815.
            delete it_ce20002b index indx.
            continue.
            ENDIF.
          ELSE.
    Es existiert kein Eintrag in S810, dann direkt eingeben
            MOVE IT_CE20002B_815-VVB01001 TO W_T_DATA_815-KCQTY.
            MODIFY IT_CE20002B_815 INDEX INDX.
    *Liste ausgeben (Kein Eintrag in S810)
           PERFORM EINTRAG2.
            PERFORM EINTRAG2_815.
          ENDIF.
    *Übergabestructur für die Weiterverarbeitung durch das Copymanagement
    *im Functionsbaustein wird gefüllt.
          W_T_DATA_815-SPMON = MONAT.   "itab_ce20001a-perbl.
          W_T_DATA_815-KONOB = CO_KONOB_APO.
          READ TABLE IT_ZPL_MCS5 WITH KEY KONDA = IT_CE20002B_815-KONDA
                                          BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            W_T_DATA_815-MVGR2 = CO_MVGR2_999.
          ELSE.
            W_T_DATA_815-MVGR2 = IT_CE20002B_815-KONDA.
          ENDIF.
          W_T_DATA_815-WERKS = IT_CE20002B_815-WERKS.
          W_T_DATA_815-PRODH = IT_CE20002B_815-PRDHA.
         W_T_DATA_815-VTWEG = '99'.
         W_T_DATA_815-KUNNR = '9999999999'.
          W_T_DATA_815-KCQTY = IT_CE20002B_815-VVB01001.
          W_T_DATA_815-BASME = IT_CE20002B_815-VVB01_ME.
    JR181005 - begin of ins.
         w_t_data_810-matkl = it_ce20002b-matkl.
    JR181005 - end of ins.
          APPEND W_T_DATA_815 TO TAB_DATA.
          CLEAR IT_CE20002B_815.
        ENDLOOP.
    thanks for reply
    rico

Maybe you are looking for

  • How convert a color PDF File to black & white (gray scale...no color)

    How convert a color PDF File to black & white (gray scale...no color)??? creative cloud cs6... Acrobat etc

  • Problem sending mail to hostname with multiple IN A DNS Records

    Hi there I've been using the javamail API without problems for some 2 years now in the company I'm working for. The problems started this week, when the hostname I'm using to send out mails via SMTP, now has multiple 'IN A' DNS records, but allthough

  • URL Simple Question

    I want to put the path of a file into a URL so that I can use the URL to open the file and put it in an image object. URL url = New URL("C:\FolderA\FolderB\filename.tif") however, I get a Malformed URL Exception Any tips?

  • SPRY Tabbed Panels Twist [literally]

    Here's my question_ I've got the new TabbedPanels Widget running pretty good_ I took and migrated the default to the vertical alignment - so everything is running down the left side of the interface_ I currently have about 10 different tabs with cont

  • Prototype for Employee Master

    Does anybody have any documents on this ? We need to prototype couple of master transactions starting with Employee, so we can sell this as a Global MDM implementation. Any lessons learnt or step by step document from you experts will be appreciated.