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

example for gui_upload.......

Former Member
0 Likes
22,480

Hi friends,

I want to upload CSV file into Database table using CL_gui_frontend_services=>File_open_dialog and

CL_gui_frontend_services=>gui_download.

friends Please give me a example?

Regards,

Srikanth

2 REPLIES 2
Read only

Former Member
0 Likes
7,082

Hi

TYPE: BEGIN OF ty_dump,

c(500) TYPE c,

END OF ty_dump.

DATA: itab TYPE TABLE OF ty_dump.

CALL METHOD cl_gui_frontend_services=>gui_upload

EXPORTING

filename = 'D:\test.csv'

CHANGING

data_tab = itab.

Cheers

~Arun

Read only

Former Member
0 Likes
7,082

Hi,

Please refer to the code below :



report ZTESTGL_OPEN_BAL
       no standard page heading line-size 255.

data : begin of itab1 occurs 0,
        values(1000) type c,
       end of itab1.

DATA :  V_COUNT TYPE I.

DATA :     V_BLDAT(10) TYPE C,
           V_BLART(2) TYPE C,
           V_BUKRS(4) TYPE C,
           V_BUDAT(10) TYPE C,
           V_MONAT(2) TYPE C,
           V_WAERS(5) TYPE C,
           V_NEWBS(2) TYPE C,
           V_NEWKO(17) TYPE C,
           V_WRBTR(13) TYPE C,
           V_SGTXT(50) type c,
           V_GSBER(4) TYPE C,
           V_KOSTL(10) TYPE C,
           V_AUFNR(10) TYPE C.

data : begin of itab occurs 0,
           BLDAT(10) TYPE C,
           BLART(2) TYPE C,
           BUKRS(4) TYPE C,
           BUDAT(10) TYPE C,
           MONAT(2) TYPE C,
           WAERS(5) TYPE C,
           NEWBS(2) TYPE C,
           NEWKO(17) TYPE C,
           WRBTR(13) TYPE C,
           SGTXT(50) TYPE C,
           GSBER(4) TYPE C,
           KOSTL(10) TYPE C,
           AUFNR(10) TYPE C,
           TNEWBS(2) TYPE C,
           TNEWKO(17) TYPE C,
           TWRBTR(13) TYPE C,
       end of itab.

data : i_bdcdata like bdcdata occurs 0 with header line.
PARAMETERS : p_file LIKE rlgrap-filename OBLIGATORY.


DATA : filename TYPE string.
DATA : w_textout LIKE t100-text.

DATA: BEGIN OF messtab OCCURS 0.
        INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF messtab.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CLEAR p_file.

  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      file_name = p_file.



start-of-selection.

  filename = p_file.

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
     FILENAME                      = filename
     FILETYPE                      = 'ASC'
     HAS_FIELD_SEPARATOR           = 'X'
*   HEADER_LENGTH                 = 0
*   READ_BY_LINE                  = 'X'
*   DAT_MODE                      = ' '
*   CODEPAGE                      = ' '
*   IGNORE_CERR                   = ABAP_TRUE
*   REPLACEMENT                   = '#'
*   CHECK_BOM                     = ' '
*   VIRUS_SCAN_PROFILE            =
* IMPORTING
*   FILELENGTH                    =
*   HEADER                        =
    TABLES
      DATA_TAB                      = itab1
* EXCEPTIONS
*   FILE_OPEN_ERROR               = 1
*   FILE_READ_ERROR               = 2
*   NO_BATCH                      = 3
*   GUI_REFUSE_FILETRANSFER       = 4
*   INVALID_TYPE                  = 5
*   NO_AUTHORITY                  = 6
*   UNKNOWN_ERROR                 = 7
*   BAD_DATA_FORMAT               = 8
*   HEADER_NOT_ALLOWED            = 9
*   SEPARATOR_NOT_ALLOWED         = 10
*   HEADER_TOO_LONG               = 11
*   UNKNOWN_DP_ERROR              = 12
*   ACCESS_DENIED                 = 13
*   DP_OUT_OF_MEMORY              = 14
*   DISK_FULL                     = 15
*   DP_TIMEOUT                    = 16
*   OTHERS                        = 17
            .

  V_COUNT = 1.
  LOOP AT ITAB1.

    IF V_COUNT = 1.
      SPLIT ITAB1 AT ',' INTO ITAB-BLDAT ITAB-BLART ITAB-BUKRS ITAB-BUDAT ITAB-MONAT
                         ITAB-WAERS ITAB-NEWBS ITAB-NEWKO ITAB-WRBTR ITAB-SGTXT ITAB-GSBER ITAB-KOSTL ITAB-AUFNR.
*    APPEND ITAB.
    ELSEIF V_COUNT = 2.

      SPLIT ITAB1 AT ',' INTO V_BLDAT V_BLART V_BUKRS V_BUDAT V_MONAT
                        V_WAERS ITAB-TNEWBS ITAB-TNEWKO ITAB-TWRBTR ITAB-SGTXT V_GSBER V_KOSTL V_AUFNR.
      APPEND ITAB.


    ENDIF.
    V_COUNT = V_COUNT + 1.
    IF V_COUNT = 3.
      v_count = 1.
    ENDIF.
  ENDLOOP.
  V_COUNT = 1 .

  LOOP AT ITAB.
    REFRESH i_BDCDATA.

    perform bdc_dynpro      using 'SAPMF05A' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-NEWKO'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BKPF-BLDAT'
                                  ITAB-BLDAT.
    perform bdc_field       using 'BKPF-BLART'
                                  ITAB-BLART.
    perform bdc_field       using 'BKPF-BUKRS'
                                  ITAB-BUKRS.
    perform bdc_field       using 'BKPF-BUDAT'
                                  ITAB-BUDAT.
    perform bdc_field       using 'BKPF-MONAT'
                                  ITAB-MONAT.
    perform bdc_field       using 'BKPF-WAERS'
                                  ITAB-WAERS.
    perform bdc_field       using 'FS006-DOCID'
                                  '*'.
    perform bdc_field       using 'RF05A-NEWBS'
                                  ITAB-NEWBS.
    perform bdc_field       using 'RF05A-NEWKO'
                                  ITAB-NEWKO.
    perform bdc_dynpro      using 'SAPMF05A' '0300'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'BSEG-WRBTR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BSEG-WRBTR'
                                  ITAB-WRBTR.
    perform bdc_field       using 'BSEG-SGTXT' "Delete  SGTXT if not works properly
                                  ITAB-SGTXT.
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'COBL-GSBER'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTE'.
    perform bdc_field       using 'COBL-GSBER'
                                  ITAB-GSBER.
    perform bdc_field       using 'COBL-KOSTL'
                                  ITAB-KOSTL.
    perform bdc_field       using 'COBL-AUFNR'
                                  ITAB-AUFNR.

    perform bdc_dynpro      using 'SAPMF05A' '0300'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-NEWKO'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BSEG-WRBTR'
                                  ITAB-WRBTR.
    perform bdc_field       using 'RF05A-NEWBS'
                                  ITAB-TNEWBS.
    perform bdc_field       using 'RF05A-NEWKO'
                                  ITAB-TNEWKO.
    perform bdc_field       using 'DKACB-FMORE'
                                  'X'.
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'COBL-GSBER'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTE'.
    perform bdc_field       using 'COBL-GSBER'
                                  ITAB-GSBER.
    perform bdc_dynpro      using 'SAPMF05A' '0300'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'BSEG-WRBTR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BSEG-WRBTR'
                                  ITAB-WRBTR.
*    perform bdc_field       using 'BSEG-MWSKZ'
*                                  'F0'.
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'COBL-GSBER'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTE'.
    perform bdc_field       using 'COBL-GSBER'
                                  ITAB-GSBER.
    perform bdc_dynpro      using 'SAPMF05A' '0300'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'BSEG-WRBTR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'BSEG-WRBTR'
                                  ITAB-TWRBTR.
*    perform bdc_field       using 'BSEG-MWSKZ'
*                                  'F0'.
    perform bdc_field       using 'BSEG-SGTXT' "Delete  SGTXT if not works properly
                                  ITAB-SGTXT.

    perform bdc_field       using 'DKACB-FMORE'
                                  'X'.
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'COBL-GSBER'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTE'.
    perform bdc_field       using 'COBL-GSBER'
                                  ITAB-GSBER.
    CALL TRANSACTION 'F-02' USING I_BDCDATA
                       MODE  'a'
                       UPDATE 'S'.

  ENDLOOP.

  IF SY-SUBRC NE 0.
    LOOP AT messtab WHERE msgtyp = 'E'.
      CALL FUNCTION 'MESSAGE_TEXT_BUILD'
        EXPORTING
          msgid               = messtab-msgid
          msgnr               = messtab-msgnr
          msgv1               = messtab-msgv1
          msgv2               = messtab-msgv2
          msgv3               = messtab-msgv3
          msgv4               = messtab-msgv4
        IMPORTING
          message_text_output = w_textout.
      write : / w_textout.
    ENDLOOP.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  BDC_DYNPRO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PROGRAM    text
*      -->DYNPRO     text
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR I_BDCDATA.
  I_BDCDATA-PROGRAM  = PROGRAM.
  I_BDCDATA-DYNPRO   = DYNPRO.
  I_BDCDATA-DYNBEGIN = 'X'.
  APPEND i_BDCDATA.
ENDFORM.                    "BDC_DYNPRO

*&---------------------------------------------------------------------*
*&      Form  BDC_FIELD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->FNAM       text
*      -->FVAL       text
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  CLEAR i_BDCDATA.
  I_BDCDATA-FNAM = FNAM.
  I_BDCDATA-FVAL = FVAL.
  APPEND i_BDCDATA.
ENDFORM.                    "BDC_FIELD

Thanks,

Sriram Ponna.