Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

modify statment

Former Member
0 Likes
575

guys i have written the following code: The sy-subrc for the modify command = 0.But the records are not modified in the data base? why do we need to have table maintainanve generatot to use modify/insert

for DB?



REPORT zcic_gcs_upd NO STANDARD PAGE HEADING.

*&--------------------------------------------------------------------*
*& Program Name     : zcic_gcs_upd
*& Description      : To update the Tracking No. & Tracking Type
*&--------------------------------------------------------------------*
* ----------------------------------------------------------------------
*TABLES
* ----------------------------------------------------------------------
TABLES zest0_extension.           "Warranty Extension Table.

* ----------------------------------------------------------------------
*INTERNAL TABLE
* ----------------------------------------------------------------------
DATA: BEGIN OF itab OCCURS 0,
       company     LIKE  zest0_extension-company,
       customer    LIKE  zest0_extension-customer,
       bill_no     LIKE  zest0_extension-bill_no,
       tr_no       LIKE  zest0_extension-tr_no,
       tr_type     LIKE  zest0_extension-tr_type,
      END OF itab,

      BEGIN OF ITAB_ERROR OCCURS 0,
        CUSTOMER   LIKE ZEST0_EXTENSION-CUSTOMER,
        BILL_NO    LIKE ZEST0_EXTENSION-BILL_NO,
      END OF ITAB_ERROR.

DATA:  ITAB1 LIKE zest0_extension OCCURS 0 WITH HEADER LINE.
DATA:  TBL_ERROR LIKE ITAB_ERROR OCCURS 0 WITH HEADER LINE.
DATA : gt_upd LIKE zest0_extension occurs 0 WITH HEADER LINE.
DATA : gt_upd1 LIKE zest0_extension occurs 0 WITH HEADER LINE.
DATA:  gt_final LIKE zest0_extension OCCURS 0 WITH HEADER LINE.

* ----------------------------------------------------------------------
*WORK AREA DECLARATION
* ----------------------------------------------------------------------
DATA: WS_ITAB  LIKE ITAB.
DATA: WS_ITAB1 LIKE ITAB1.

* ----------------------------------------------------------------------
*VARIABLE DECLARATION
* ----------------------------------------------------------------------
*data count buffer
DATA:    read_cnt(6)    TYPE p,        "Find read record
         update_cnt(6)  TYPE p,        "OK record
         error_cnt(6)   TYPE p.        "Error record

*----------------------------------------------------------------------*
*               S E L E C T I O N   S C R E E N                        *
*----------------------------------------------------------------------*
SELECTION-SCREEN  BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
PARAMETERS:  p_comp LIKE zest0_extension-company
             OBLIGATORY DEFAULT 'C710'.
PARAMETERS:  pcfile LIKE rlgrap-filename OBLIGATORY LOWER CASE.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK box WITH FRAME.
SELECTION-SCREEN: COMMENT /2(40) TEXT-111,
                  ULINE,
                  COMMENT /2(40) text-001,
                  COMMENT /2(40) text-002,
                  COMMENT /2(40) text-003,
                  COMMENT /2(40) text-004,
                  COMMENT /2(40) text-005.
SELECTION-SCREEN END OF BLOCK box.

*----------------------------------------------------------------------*
* AT SELECTION-SCREEN ON VALUE-REQUEST
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pcfile.
  PERFORM get_filename.

*----------------------------------------------------------------------*
*            S T A R T   O F   S E L E C T I O N                       *
*----------------------------------------------------------------------*
START-OF-SELECTION.

  CLEAR: read_cnt, update_cnt, error_cnt.

  PERFORM upload_data.

  PERFORM update_zest0_ext.

*&---------------------------------------------------------------------*
*&      Form  GET_FILENAME
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_filename.
*Get the file to be uploaded

  DATA: l_fname LIKE ibipparms-path .
  DATA : p_name LIKE sy-repid.
  p_name = sy-repid.

  CALL FUNCTION 'F4_FILENAME'
       EXPORTING
            program_name  = p_name
            dynpro_number = sy-dynnr
            field_name    = ''
       IMPORTING
            file_name     = l_fname.

  pcfile = l_fname.

ENDFORM.                    " GET_FILENAME

*&---------------------------------------------------------------------*
*&      Form  UPLOAD_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM upload_data.

  DATA : l_filename LIKE rlgrap-filename.
  REFRESH : itab,gt_upd,gt_final.

  IF pcfile IS INITIAL.
    WRITE: / 'SELECT UPLOAD FILE !'.
  ELSE.
    MOVE pcfile TO l_filename.

    CALL FUNCTION 'WS_UPLOAD'
         EXPORTING
              filename                = l_filename
              filetype                = 'DAT'
         TABLES
              data_tab                = itab
         EXCEPTIONS
              conversion_error        = 1
              file_open_error         = 2
              file_read_error         = 3
              invalid_type            = 4
              no_batch                = 5
              unknown_error           = 6
              invalid_table_width     = 7
              gui_refuse_filetransfer = 8
              customer_error          = 9
              OTHERS                  = 10.
    IF sy-subrc NE 0.
      WRITE: / 'FILE UPLOAD NOT SUCESSFULL '.
      STOP.
    ENDIF.

    SORT itab.
    DELETE ADJACENT DUPLICATES FROM itab.

    LOOP AT ITAB INTO WS_ITAB.
     ADD 1 TO read_cnt.
     call function 'CONVERSION_EXIT_ALPHA_INPUT'
             exporting
                  input  = WS_ITAB-customer
             importing
                  output = WS_ITAB-customer.

       WS_ITAB1-COMPANY = WS_ITAB-COMPANY.
       WS_ITAB1-CUSTOMER = WS_ITAB-CUSTOMER.
       WS_ITAB1-BILL_NO = WS_ITAB-BILL_NO.
       WS_ITAB1-TR_NO = WS_ITAB-TR_NO.
       WS_ITAB1-TR_TYPE = WS_ITAB-TR_TYPE.

       APPEND WS_ITAB1 TO ITAB1.
    ENDLOOP.

    IF NOT itab1[] IS INITIAL.
      SELECT company customer bill_no
             FROM zest0_extension
             INTO CORRESPONDING FIELDS OF TABLE gt_upd
             FOR ALL ENTRIES IN itab1
             WHERE company  = p_comp
             AND   customer = itab1-customer
             AND   bill_no = itab1-bill_no.
      IF sy-subrc EQ 0.
        SORT gt_upd.
     ENDIF.

     LOOP AT itab1.
        READ TABLE gt_upd WITH KEY company = p_comp
                                   customer  = itab1-customer
                                   bill_no  = itab1-bill_no
                                   BINARY SEARCH.
        IF sy-subrc <> 0.
          tbl_error-customer = itab1-customer.
          tbl_error-bill_no  = itab1-bill_no.
          append tbl_error.
*          CONTINUE.
        ELSE.
          MOVE-CORRESPONDING itab1 TO gt_final.
          APPEND gt_final.
        ENDIF.
      ENDLOOP.

    ENDIF.
  ENDIF.

ENDFORM.                    " UPLOAD_DATA

*&---------------------------------------------------------------------*
*&      Form  UPDATE_ZEST0_EXT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM update_zest0_ext.

  SORT gt_final.

  MODIFY zest0_extension  FROM TABLE gt_final.

  IF sy-subrc EQ 0.
    COMMIT WORK.
    DESCRIBE TABLE gt_final LINES update_cnt.
    error_cnt = read_cnt - update_cnt.
  ELSE.
    ROLLBACK WORK.
    error_cnt = read_cnt - update_cnt.
  ENDIF.

  ULINE.
  FORMAT COLOR 3.
  WRITE: / 'Read count                :', read_cnt.
  WRITE: / 'Insert/Update count       :', update_cnt.
  WRITE: / 'Error count               :', error_cnt.
  FORMAT COLOR OFF.

  IF NOT TBL_ERROR IS INITIAL.
    ULINE.
    SKIP.
    FORMAT COLOR 3.
     WRITE: / 'ERROR RECORDS'.
     WRITE: /(10) 'CUSTOMER',
                  'BILL_NO'.
    FORMAT COLOR OFF.


  LOOP AT TBL_ERROR.
     WRITE: /(10) TBL_ERROR-CUSTOMER ,
                  TBL_ERROR-BILL_NO.
  ENDLOOP.
ENDIF.

ENDFORM.                    " UPDATE_ZEST0_EXT

1 ACCEPTED SOLUTION
Read only

matt
Active Contributor
0 Likes
544

>

> why do we need to have table maintainanve generatot to use modify/insert

> for DB?

You don't.

4 REPLIES 4
Read only

matt
Active Contributor
0 Likes
545

>

> why do we need to have table maintainanve generatot to use modify/insert

> for DB?

You don't.

Read only

tarangini_katta
Active Contributor
0 Likes
544

HI sudha,

Y can't use UPDATE database table.

Thanks,

Read only

0 Likes
544

>

> HI sudha,

>

> Y can't use UPDATE database table.

>

> Thanks,

Wrong

To original poster: are you sure your internal table contains something?

Edited by: Matt on Feb 10, 2009 9:47 AM

Read only

Former Member
0 Likes
544

Hi,

You can not use table maintainence generator for database table updation.

But you can use UPDATE statement.

Regards,

Jyothi CH.