Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 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