0% found this document useful (0 votes)
13 views6 pages

Multiple Row Data From Excel

This document contains code for an ABAP program that reads data from an Excel file, converts it to internal tables, and uses BAPI functions to create characteristics. It displays any errors or confirmation messages in an ALV grid and provides field catalog definitions for the grid columns.

Uploaded by

jpfrancisnaveen5
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
0% found this document useful (0 votes)
13 views6 pages

Multiple Row Data From Excel

This document contains code for an ABAP program that reads data from an Excel file, converts it to internal tables, and uses BAPI functions to create characteristics. It displays any errors or confirmation messages in an ALV grid and provides field catalog definitions for the grid columns.

Uploaded by

jpfrancisnaveen5
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 6

*REPORT ZCHAR_116.

TYPES: begin of ty_upload,


charact_name type ATNAM,
data_type type ATUDF,
length type CHARNUMBER,
decimals type DECPLACES,
status type ATMST,
unit Type MEINS,
currency TYPE WAERS,
template type ATSCH30,
value_assignment type ATBEW,
check_table type ATPRT,
check_function type ATPRF,
language_int type SPRAS,
language_iso type LAISO,
description type ATBEZ,
value_char type ATWRT30,
value_description type ATWTB30,
end of ty_upload.

*TYPES: begin of ty_upload1,


* charact_name type ATNAM,
* data_type type ATUDF,
* description type ATBEZ,
* end of ty_upload1.

data:
ld_charactdetail TYPE bapicharactdetail,
lt_charactdetail type standard table of bapicharactdetail,
* wa_charactdetail like line of lt_charactdetail,
* ld_keydate TYPE bapicharactkey-keydate,
it_charactdescr TYPE STANDARD TABLE OF bapicharactdescr,
wa_charactdescr LIKE LINE OF it_charactdescr,
* it_charactvaluesnum TYPE STANDARD TABLE OF bapicharactvaluesnum,
* wa_charactvaluesnum LIKE LINE OF it_charactvaluesnum,
it_charactvalueschar TYPE STANDARD TABLE OF bapicharactvalueschar,
wa_charactvalueschar LIKE LINE OF it_charactvalueschar,
* it_charactvaluescurr TYPE STANDARD TABLE OF bapicharactvaluescurr,
* wa_charactvaluescurr LIKE LINE OF it_charactvaluescurr,
* it_charactreferences TYPE STANDARD TABLE OF bapicharactreferences,
* wa_charactreferences LIKE LINE OF it_charactreferences,
it_charactvaluesdescr TYPE STANDARD TABLE OF bapicharactvaluesdescr,
wa_charactvaluesdescr LIKE LINE OF it_charactvaluesdescr,
it_return TYPE STANDARD TABLE OF bapiret2,
wa_return LIKE LINE OF it_return.

*DATA : It_listheader type slis_t_listheader,


* wa_listheader type slis_listheader.

data: it_fld_clg type SLIS_T_FIELDCAT_ALV,


wa_fld_clg like line of it_fld_clg.

* data : it_fld_clg1 type SLIS_T_FIELDCAT_ALV,


* wa_fld_clg1 like line of it_fld_clg1.

DATA: it_upload TYPE STANDARD TABLE OF ty_upload,


wa_upload TYPE ty_upload.

*data: it_upload1 type standard table of ty_upload1,


* wa_upload1 type ty_upload1.

DATA : pv_key type num.


DATA : it_raw_data TYPE truxs_t_text_data.

data: t_header type slis_t_listheader,


wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.

"Designing the selection Screen

PARAMETERS: p_file TYPE ibipparms-path." MODIF ID m1.

"at selection-screen
"Enhancing the selection screen

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

" F4_FILENAME
CALL FUNCTION 'F4_FILENAME'
EXPORTING
* PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
field_name = 'P-FILE'
IMPORTING
file_name = p_file.

START-OF-SELECTION.

"TEXT_CONVERT_XLS_TO_SAP
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = 'X'
i_tab_raw_data = it_raw_data
i_filename = p_file
TABLES
i_tab_converted_data = it_upload
* EXCEPTIONS
* CONVERSION_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
END-OF-SELECTION.

"providing fields for field catalogue in grid display

wa_fld_clg-fieldname = 'CHARACT_NAME'.
wa_fld_clg-seltext_m = 'charact_name'.
wa_fld_clg-col_pos = '1'.
append wa_fld_clg to it_fld_clg.

wa_fld_clg-fieldname = 'DATA_TYPE'.
wa_fld_clg-seltext_m = 'data_type'.
wa_fld_clg-col_pos = '2'.
append wa_fld_clg to it_fld_clg.

* wa_fld_clg-fieldname = 'LENGTH'.
* wa_fld_clg-seltext_m = 'length'.
* wa_fld_clg-col_pos = '3'.
* append wa_fld_clg to it_fld_clg.
*
* wa_fld_clg-fieldname = 'DECIMALS'.
* wa_fld_clg-seltext_m = 'decimals'.
* wa_fld_clg-col_pos = '4'.
* append wa_fld_clg to it_fld_clg.
*
* wa_fld_clg-fieldname = 'STATUS'.
* wa_fld_clg-seltext_m = 'status'.
* wa_fld_clg-col_pos = '5'.
* append wa_fld_clg to it_fld_clg.
*
* wa_fld_clg-fieldname = 'VALUE_ASSIGNMENT'.
* wa_fld_clg-seltext_m = 'value_assignment'.
* wa_fld_clg-col_pos = '6'.
* append wa_fld_clg to it_fld_clg.
*
*
*
*
*
* wa_fld_clg-fieldname = 'LANGUAGE_INT'.
* wa_fld_clg-seltext_m = 'language_int'.
* wa_fld_clg-col_pos = '7'.
* append wa_fld_clg to it_fld_clg.
*
* wa_fld_clg-fieldname = 'LANGUAGE_ISO'.
* wa_fld_clg-seltext_m = 'language_iso'.
* wa_fld_clg-col_pos = '8'.
* append wa_fld_clg to it_fld_clg.

* wa_fld_clg-fieldname = 'UNIT_OF_MEASUREMENT'.
* wa_fld_clg-seltext_m = 'unit_of_measurement'.
* wa_fld_clg-col_pos = '3'.
* append wa_fld_clg to it_fld_clg.
*
* wa_fld_clg-fieldname = 'CURRENCY'.
* wa_fld_clg-seltext_m = 'currency'.
* wa_fld_clg-col_pos = '4'.
* append wa_fld_clg to it_fld_clg.

wa_fld_clg-fieldname = 'DESCRIPTION'.
wa_fld_clg-seltext_m = 'description'.
wa_fld_clg-col_pos = '3'.
append wa_fld_clg to it_fld_clg.
*read table lt_charactdetail into ld_charactdetail index 1.

pv_key = 1.
loop at it_upload into wa_upload.

CLEAR : ld_charactdetail.
ld_charactdetail-CHARACT_NAME = wa_upload-charact_name.
ld_charactdetail-DATA_TYPE = wa_upload-data_type.
ld_charactdetail-LENGTH = wa_upload-length.
ld_charactdetail-DECIMALS = wa_upload-decimals.
ld_charactdetail-STATUS = wa_upload-status.
ld_charactdetail-UNIT_OF_MEASUREMENT = wa_upload-unit.
ld_charactdetail-CURRENCY = wa_upload-currency.
ld_charactdetail-TEMPLATE = wa_upload-template.
ld_charactdetail-VALUE_ASSIGNMENT = wa_upload-value_assignment.
ld_charactdetail-CHECK_TABLE = wa_upload-check_table.
ld_charactdetail-CHECK_FUNCTION = wa_upload-check_function.
append ld_charactdetail to lt_charactdetail.

read table it_charactdescr into wa_charactdescr index 1.


clear : wa_charactdescr.
wa_charactdescr-LANGUAGE_INT = wa_upload-language_int.
wa_charactdescr-LANGUAGE_ISO = wa_upload-language_iso.
wa_charactdescr-DESCRIPTION = wa_upload-description.
APPEND wa_charactdescr TO it_charactdescr.

"bapicharactvalueschar
clear : wa_charactvalueschar.
wa_charactvalueschar-VALUE_CHAR = wa_upload-value_char.
*wa_charactvalueschar-VALUE_CHAR = wa_upload-val_char.
append wa_charactvalueschar to it_charactvalueschar.

"bapicharactvaluesdescr
clear : wa_charactvaluesdescr.
wa_charactvaluesdescr-LANGUAGE_INT = wa_upload-language_int.
wa_charactvaluesdescr-LANGUAGE_ISO = wa_upload-language_iso.
wa_charactvaluesdescr-VALUE_CHAR = wa_upload-value_char.
wa_charactvaluesdescr-DESCRIPTION = wa_upload-value_description.
*wa_charactvaluesdescr-VALUE_CHAR = wa_upload-val_char.
*wa_charactvaluesdescr-DESCRIPTION = wa_upload-val_description.
append wa_charactvaluesdescr to it_charactvaluesdescr.

CALL FUNCTION 'BAPI_CHARACT_CREATE'


EXPORTING
charactdetail = ld_charactdetail
* CHANGENUMBER =
* KEYDATE = SY-DATUM
* TESTRUN = ABAP_FALSE
TABLES
charactdescr = it_charactdescr
* CHARACTVALUESNUM =
CHARACTVALUESCHAR = it_charactvalueschar
* CHARACTVALUESCURR =
charactvaluesdescr = it_charactvaluesdescr
* CHARACTREFERENCES =
* charactrestrictions =
return = it_return.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'


EXPORTING
wait = 'X'
IMPORTING
return = wa_return.

pv_key = ld_charactdetail-charact_name+1 .

endloop.

if ld_charactdetail-DATA_TYPE is not initial.

wa_header-typ = 'S'.
wa_header-info = ' 1. NO EMPTY FIELD PRESENT - CHARACTERISTICS CREATED
SUCCESSFULLY' .
append wa_header to t_header.
clear wa_header.

wa_header-typ = 'S'.
wa_header-info = ' 2. EMPTY FIELD PRESENT- THERE IS AN ERROR ' .
append wa_header to t_header.
clear wa_header.

wa_header-typ = 'H'.
wa_header-info = 'Charecteristics data ALV Report '.
append wa_header to t_header.
clear wa_header.
*else.
* wa_header-typ = 'S'.
* wa_header-info = 'some error occured try again '.
* append wa_header to t_header.
* clear wa_header.
*wa_header-typ = 'H'.
* wa_header-info = 'Charecteristics data ALV Report '.
* append wa_header to t_header.
* clear wa_header.
*endif.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_TOP_OF_PAGE = 'TOP'
* I_STRUCTURE_NAME = 'ty_upload'
IT_FIELDCAT = it_fld_clg

TABLES
t_outtab = it_upload.

ELSE.
* wa_header-typ = 'S'.
* wa_header-info = 'some error occured try again '.
* append wa_header to t_header.
* clear wa_header.
*
* wa_header-typ = 'H'.
* wa_header-info = 'Charecteristics data ALV Report '.
* append wa_header to t_header.
* clear wa_header.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = 'SY-REPID'
i_structure_name = 'BAPIRET2'
TABLES
t_outtab = it_return.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'


IMPORTING
RETURN = wa_return
.

ENDIF.

FORM TOP.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header
* I_LOGO =
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM.

You might also like