‎2008 Feb 06 6:01 PM
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
‎2008 Feb 06 6:06 PM
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
‎2008 Feb 06 6:08 PM
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.