Wednesday, October 6, 2010

Upload the Data from Excel to ITAB by using GUI_UPLOAD and validating data as well

*&---------------------------------------------------------------------*
*& Report  YUPLOAD_EXCEL_TO_ITAB
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  yupload_excel_to_itab NO STANDARD PAGE HEADING
                              LINE-COUNT 132
                              LINE-SIZE 65.
*&---------------------------------------------------------------------*

*&  DATA DECLARATION
*&---------------------------------------------------------------------*
TYPE-POOLS: truxs.

data BEGIN OF gt_itab occurs 0,
          mark(1)       type c,
          acdetcat(40)          TYPE  c,
          acdetdes(40)          TYPE  c,
          sapmtrty(40)           TYPE  c,
          sapmtrdes(40)         TYPE  c,
          obligor(40)            TYPE  c,
          iwgroup(40)            TYPE  c,
          iwprior(40)               TYPE  c,
          drcr(40)               TYPE  c,
          iwrollid(40)          TYPE  c,
          iwrolldes(40)         TYPE  c,
          ccode(40)              TYPE  c,
          ccodedes(40)          type  c,
          sapsubcat(40)          TYPE  c,
          sapsubdes(40)         TYPE  c,
          balacc(40)            TYPE  c,
          incstat(40)           TYPE  c,
          profcent(40)           TYPE  c,
          profcendes(40)        TYPE  c,
          costcen(40)            TYPE  c,
          costcendes(40)        TYPE  c,
          tpcata(40)             TYPE  c,
          tpcatades(40)         TYPE  c,
          finstat(40)               TYPE  c,
          rowtycat(40)           TYPE  c,
          rowtypdes(40)         TYPE  c,
          applic(40)             TYPE  c,
          fscdid(40)                TYPE  c,
          countparcat(40)        TYPE  c,
          countpatdes(40)       TYPE  c,
          subanalcat(40)         TYPE  c,
          subanaldes(40)        TYPE  c,
        END OF gt_itab.

data BEGIN OF gt_final occurs 0,
          acdetcat(40)          TYPE  c,
          acdetdes(40)          TYPE  c,
          sapmtrty(40)           TYPE  c,
          ccode(40)              TYPE  c,
          sapsubcat(40)          TYPE  c,
          sapsubdes(40)         TYPE  c,
          balacc(40)            TYPE  c,
          incstat(40)           TYPE  c,
          profcent(40)           TYPE  c,
          profcendes(40)        TYPE  c,
          costcen(40)            TYPE  c,
          costcendes(40)        TYPE  c,
          tpcata(40)             TYPE  c,
          tpcatades(40)         TYPE  c,
          finstat(40)               TYPE  c,
          rowtycat(40)           TYPE  c,
          rowtypdes(40)         TYPE  c,
          applic(40)             TYPE  c,
          fscdid(40)                TYPE  c,
          countparcat(40)        TYPE  c,
          countpatdes(40)       TYPE  c,
          subanalcat(40)         TYPE  c,
          subanaldes(40)        TYPE  c,
        END OF gt_final.

*DATA: gt_itab TYPE STANDARD TABLE OF ty_itab,
*      gs_itab TYPE ty_itab,
*      gt_final TYPE STANDARD TABLE OF ty_final,
*      gs_final TYPE ty_final.



DATA: i_text_data        TYPE truxs_t_text_data,
      v_filename  TYPE string.


PARAMETERS : p_file LIKE rlgrap-filename.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      field_name = 'P_FILE'
    IMPORTING
      file_name  = p_file.


*&---------------------------------------------------------------------*
*&  START OF SELECTION
*&---------------------------------------------------------------------*

START-OF-SELECTION.
  v_filename = p_file.

*  CALL FUNCTION 'GUI_UPLOAD'
*    EXPORTING
*      filename                      = v_filename
*     filetype                      = 'ASC'
*     has_field_separator           = 'X'
*
*    TABLES
*      data_tab                      = gt_itab
* EXCEPTIONS
*   FILE_OPEN_ERROR               = 1
*   FILE_READ_ERROR               = 2

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                      = v_filename_string
     filetype                      = 'ASC'
     has_field_separator           = 'X'
*
    TABLES
      data_tab                      = i_text_data
* EXCEPTIONS
*   FILE_OPEN_ERROR               = 1
*   FILE_READ_ERROR               = 2
*
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
break-point.
  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
     i_field_seperator          = 'X'
*   I_LINE_HEADER              =
      i_tab_raw_data             = i_text_data
      i_filename                 = p_file
    TABLES
      i_tab_converted_data       = gt_itab
* EXCEPTIONS
*   CONVERSION_FAILED          = 1
*   OTHERS                     = 2
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
*&---------------------------------------------------------------------*
*&  Final Internal Table
**&---------------------------------------------------------------------*
*  LOOP AT gt_itab. " INTO gs_itab.
**    CLEAR gs_final.
*    MOVE-CORRESPONDING gt_itab TO gt_final.
**    APPEND gs_final TO gt_final.
*  ENDLOOP.
*  BREAK-POINT.

*Do.
*  READ TABLE gt_final INDEX 1 INTO gs_final.
*  PERFORM abcd USING gs_final-acdetcat
*                        gs_final-acdetdes
*                        gs_final-sapmtrty
*                        gs_final-ccode
*                        gs_final-sapsubcat.

*
*&---------------------------------------------------------------------*
*&      Form  ABCD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GS_FINAL_ACDETCAT  text
*      -->P_GS_FINAL_ACDETDES  text
*      -->P_GS_FINAL_SAPMTRTY  text
*      -->P_GS_FINAL_CCODE  text
*      -->P_GS_FINAL_SAPSUBCAT  text
*----------------------------------------------------------------------*
FORM abcd  USING    p_gs_final_acdetcat
                    p_gs_final_acdetdes
                    p_gs_final_sapmtrty
                    p_gs_final_ccode
                    p_gs_final_sapsubcat.
  DATA: a(40) TYPE VALUE 'A/C Determination Type Catalog Value    ',
        b(40) TYPE VALUE 'A/C Determination Type Description      ',
        c(40) TYPE VALUE 'SAP Main/Transaction Type Catalog Value ',
        d(40) TYPE VALUE 'Company Code Catalog Value              ',
        e(40) TYPE VALUE 'SAP Sub Catalog Value                   '.
  IF p_gs_final_acdetcat <> a.
    message 'Data is incorrect' type 'E'.

     elseIF p_gs_final_acdetdes <> b.
    message 'Data is incorrect' type 'E'.

  elseIF p_gs_final_sapmtrty <> c.
    message 'Data is incorrect' type 'E'.

  elseIF p_gs_final_ccode    <> d.
    message 'Data is incorrect' type 'E'.

  elseIF p_gs_final_sapsubcat <> e.
    message 'Data is incorrect' type 'E'.
  endif.


ENDFORM.                    " ABCD

No comments:

Post a Comment