IMPORTING
FILENAME
= P_FILE_NAME
FULLPATH
= P_FULLPATH.
IF SY-SUBRC = 0.
p_file = P_FULLPATH.
ENDIF.
start-of-selection.
********************** REGION DECLARACION RESPECTO A DOMINIO *******************
*****************************
TYPES: BEGIN OF y_dominios,
campo
TYPE BDCDATA-FVAL,
descripcion TYPE BDCDATA-FVAL,
tipo_dato TYPE BDCDATA-FVAL,
longitud
TYPE BDCDATA-FVAL,
decimales TYPE BDCDATA-FVAL,
END OF y_dominios.
data t_dominios TYPE TABLE OF y_dominios WITH HEADER LINE.
DATA w_dominios TYPE y_dominios.
********************** REGION DECLARACION RESPECTO A ELEMENTOS *****************
*******************************
TYPES: BEGIN OF y_elementos,
elemento
TYPE BDCDATA-FVAL,
descripcion TYPE BDCDATA-FVAL,
dominio
TYPE BDCDATA-FVAL,
breve
TYPE BDCDATA-FVAL,
l_breve
TYPE BDCDATA-FVAL,
mediano
TYPE BDCDATA-FVAL,
l_mediano TYPE BDCDATA-FVAL,
largo
TYPE BDCDATA-FVAL,
l_largo
TYPE BDCDATA-FVAL,
cabecera
TYPE BDCDATA-FVAL,
l_cabecera TYPE BDCDATA-FVAL,
END OF y_elementos.
data t_elementos TYPE TABLE OF y_elementos WITH HEADER LINE.
DATA w_elementos TYPE y_elementos.
data: salida TYPE BDCDATA-FVAL, val_sal TYPE num, i_subrc TYPE i.
**********************************************************************.
********************** REGION DECLARACION RESPECTO A DOMINIO *******************
*****************************
DATA:
CTU type APQI-PUTACTIVE value 'X',
MODE type APQI-PUTACTIVE value 'N',
UPDATE type APQI-PUTACTIVE value 'L',
GROUP type APQI-GROUPID,
USER type APQI-USERID,
KEEP type APQI-QERASE,
HOLDDATE type APQI-STARTDATE,
NODATA type APQI-PUTACTIVE value '/',
DOMA_001 type BDCDATA-FVAL value 'X',
DOMA_VAL_002 type BDCDATA-FVAL,
=
=
=
=
=
=
=
=
=
=
=
w_dominios-campo."'ZRUTRECEP'
w_dominios-descripcion."'gggggg'
w_dominios-tipo_dato."'CHAR'
w_dominios-longitud."'
1'
w_dominios-decimales."'
1'
salida."'
1'
w_dominios-descripcion."'gggggg'
w_dominios-tipo_dato."'CHAR'
w_dominios-longitud."'
1'
w_dominios-decimales."'
1'
salida."'
1'
**********************************************************************
subrc = 0.
perform bdc_nodata
using NODATA.
perform open_group
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
perform
using
using 'RSRD1-DOMA'
DOMA_001.
bdc_field
using 'RSRD1-DOMA_VAL'
DOMA_VAL_002.
bdc_dynpro
using 'SAPLSD11' '1200'.
bdc_field
using 'BDC_OKCODE'
'=WB_SAVE'.
bdc_field
using 'DD01D-DDTEXT'
DDTEXT_003.
bdc_field
using 'BDC_CURSOR'
'DD01D-DECIMALS'.
bdc_field
using 'DD01D-DATATYPE'
DATATYPE_004.
bdc_field
using 'DD01D-LENG'
LENG_005.
bdc_field
using 'DD01D-DECIMALS'
DECIMALS_006.
bdc_field
using 'DD01D-OUTPUTLEN'
OUTPUTLEN_007.
bdc_dynpro
using 'SAPLSTRD' '0100'.
bdc_field
using 'BDC_CURSOR'
'KO007-L_DEVCLASS'.
bdc_field
using 'BDC_OKCODE'
'=ADD'.
bdc_field
using 'KO007-L_DEVCLASS'
L_DEVCLASS_008.
bdc_field
using 'KO007-L_AUTHOR'
L_AUTHOR_009.
bdc_dynpro
using 'SAPLSTRD' '0300'.
bdc_field
using 'BDC_CURSOR'
'KO008-TRKORR'.
bdc_field
using 'BDC_OKCODE'
'=LOCK'.
bdc_field
using 'KO008-TRKORR'
TRKORR_010.
bdc_dynpro
using 'SAPLSD11' '1200'.
bdc_field
using 'BDC_OKCODE'
'=WB_ACTIVATE'.
bdc_field
using 'DD01D-DDTEXT'
DDTEXT_011.
bdc_field
using 'BDC_CURSOR'
'DD01D-DECIMALS'.
bdc_field
using 'DD01D-DATATYPE'
DATATYPE_012.
bdc_field
using 'DD01D-LENG'
LENG_013.
bdc_field
using 'DD01D-DECIMALS'
DECIMALS_014.
bdc_field
using 'DD01D-OUTPUTLEN'
OUTPUTLEN_015.
bdc_dynpro
using 'SAPLSD11' '1200'.
bdc_field
using 'BDC_CURSOR'
'DD01D-DDTEXT'.
bdc_field
using 'BDC_OKCODE'
'=WB_BACK'.
bdc_transaction tables messtab
'SE11'
CTU
MODE
UPDATE.
if sy-subrc <> 0.
subrc = sy-subrc.
exit.
endif.
perform close_group using
CTU.
ENDLOOP.
ENDIF.
IF p_elem EQ 'X'.
PERFORM carga_xls_to_it.
LOOP AT t_elementos INTO w_elementos.
**********************************************************************
DDTYPE_VAL_003
= w_elementos-elemento.
DOMA_VAL_004
= w_elementos-dominio.
DDTEXT_006
= w_elementos-descripcion.".
DOMNAME_009
= w_elementos-dominio.".
DDTEXT_010
= w_elementos-descripcion.".
DOMNAME_013
= w_elementos-dominio."'ZRUTRECEP'.
DDTEXT_014
= w_elementos-descripcion."'hhhhhhh'.
SCRTEXT_S_015
= w_elementos-breve."'H'.
SCRLEN1_016
= w_elementos-l_breve."'10'.
SCRTEXT_M_017
= w_elementos-mediano."'HH'.
SCRLEN2_018
= w_elementos-l_mediano."'15'.
SCRTEXT_L_019
= w_elementos-largo."'HHH'.
SCRLEN3_020
= w_elementos-l_largo."'20'.
REPTEXT_021
= w_elementos-cabecera."'HHHH'.
HEADLEN_022
= w_elementos-l_cabecera."'15'.
DDTEXT_026
= w_elementos-descripcion."'hhhhhhh'.
SCRTEXT_S_027
= w_elementos-breve."'H'
SCRLEN1_028
= w_elementos-l_breve."'10'
SCRTEXT_M_029
= w_elementos-mediano."'HH'
SCRLEN2_030
= w_elementos-l_mediano."'15'
SCRTEXT_L_031
= w_elementos-largo."'HHH'
SCRLEN3_032
= w_elementos-l_largo."'20'
REPTEXT_033
= w_elementos-cabecera."'HHHH'
HEADLEN_034
= w_elementos-l_cabecera."'15'
*********************************************************************
DDTEXT_035
= w_elementos-descripcion."'hhhhhhh'
SCRTEXT_S_036
= w_elementos-breve."'H'
SCRLEN1_037
= w_elementos-l_breve."'10'
SCRTEXT_M_038
= w_elementos-mediano."'HH'
SCRLEN2_039
= w_elementos-l_mediano."'15'
SCRTEXT_L_040
= w_elementos-largo."'HHH'
SCRLEN3_041
= w_elementos-l_largo."'20'
REPTEXT_042
= w_elementos-cabecera."'HHHH'
HEADLEN_043
= w_elementos-l_cabecera."'15'
*********************************************************************
subrc = 0.
perform bdc_nodata
using NODATA.
perform open_group
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
'=ADD'.
using 'RSRD1-TBMA_VAL'
TBMA_VAL_001.
using 'RSRD1-DDTYPE'
DDTYPE_002.
using 'RSRD1-DDTYPE_VAL'
DDTYPE_VAL_003.
using 'RSRD1-DOMA_VAL'
DOMA_VAL_004.
using 'SAPLSED1' '0100'.
using 'BDC_CURSOR'
'D_100-DTEL'.
using 'BDC_OKCODE'
'=GOON'.
using 'D_100-DTEL'
DTEL_005.
using 'SAPLSD51' '1000'.
using 'BDC_OKCODE'
'=RET'.
using 'DD04D-DDTEXT'
DDTEXT_006.
using 'BDC_CURSOR'
'DD04D-DOMNAME'.
using 'RADIO-ELEM'
ELEM_007.
using 'RADIO-DOMAIN'
DOMAIN_008.
using 'DD04D-DOMNAME'
DOMNAME_009.
using 'SAPLSD51' '1000'.
using 'BDC_OKCODE'
'=TEXT'.
using 'DD04D-DDTEXT'
DDTEXT_010.
using 'BDC_CURSOR'
'DD04D-DOMNAME'.
using 'RADIO-ELEM'
ELEM_011.
using 'RADIO-DOMAIN'
DOMAIN_012.
using 'DD04D-DOMNAME'
DOMNAME_013.
using 'SAPLSD51' '1000'.
using 'BDC_OKCODE'
'=WB_SAVE'.
using 'DD04D-DDTEXT'
DDTEXT_014.
using 'BDC_CURSOR'
'DD04D-HEADLEN'.
using 'DD04D-SCRTEXT_S'
SCRTEXT_S_015.
using 'DD04D-SCRLEN1'
SCRLEN1_016.
using 'DD04D-SCRTEXT_M'
SCRTEXT_M_017.
using 'DD04D-SCRLEN2'
SCRLEN2_018.
using 'DD04D-SCRTEXT_L'
SCRTEXT_L_019.
using 'DD04D-SCRLEN3'
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
SCRLEN3_020.
using 'DD04D-REPTEXT'
REPTEXT_021.
using 'DD04D-HEADLEN'
HEADLEN_022.
using 'SAPLSTRD' '0100'.
using 'BDC_CURSOR'
'KO007-L_DEVCLASS'.
using 'BDC_OKCODE'
'=ADD'.
using 'KO007-L_DEVCLASS'
L_DEVCLASS_023.
using 'KO007-L_AUTHOR'
L_AUTHOR_024.
using 'SAPLSTRD' '0300'.
using 'BDC_CURSOR'
'KO008-TRKORR'.
using 'BDC_OKCODE'
'=LOCK'.
using 'KO008-TRKORR'
TRKORR_025.
using 'SAPLSD51' '1000'.
using 'BDC_CURSOR'
'DD04D-DDTEXT'.
using 'BDC_OKCODE'
'=WB_ACTIVATE'.
using 'DD04D-DDTEXT'
DDTEXT_026.
using 'DD04D-SCRTEXT_S'
SCRTEXT_S_027.
using 'DD04D-SCRLEN1'
SCRLEN1_028.
using 'DD04D-SCRTEXT_M'
SCRTEXT_M_029.
using 'DD04D-SCRLEN2'
SCRLEN2_030.
using 'DD04D-SCRTEXT_L'
SCRTEXT_L_031.
using 'DD04D-SCRLEN3'
SCRLEN3_032.
using 'DD04D-REPTEXT'
REPTEXT_033.
using 'DD04D-HEADLEN'
HEADLEN_034.
using 'SAPLSD51' '1000'.
using 'BDC_CURSOR'
'DD04D-DDTEXT'.
using 'BDC_OKCODE'
'=WB_BACK'.
using 'DD04D-DDTEXT'
DDTEXT_035.
using 'DD04D-SCRTEXT_S'
SCRTEXT_S_036.
using 'DD04D-SCRLEN1'
SCRLEN1_037.
using 'DD04D-SCRTEXT_M'
SCRTEXT_M_038.
using 'DD04D-SCRLEN2'
SCRLEN2_039.
using 'DD04D-SCRTEXT_L'
SCRTEXT_L_040.
using 'DD04D-SCRLEN3'
SCRLEN3_041.
perform bdc_field
using 'DD04D-REPTEXT'
REPTEXT_042.
perform bdc_field
using 'DD04D-HEADLEN'
HEADLEN_043.
perform bdc_dynpro
using 'SAPMSRD0' '0102'.
perform bdc_field
using 'BDC_CURSOR'
'RSRD1-DDTYPE_VAL'.
perform bdc_field
using 'BDC_OKCODE'
'=BACK'.
perform bdc_transaction tables messtab
using
'SE11'
CTU
MODE
UPDATE.
if sy-subrc <> 0.
subrc = sy-subrc.
exit.
endif.
perform bdc_field
CTU.
**********************************************************************
form carga_xls_to_it.
DATA : it_raw TYPE truxs_t_text_data.
IF p_dom EQ 'X'.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
*
I_FIELD_SEPERATOR
=
I_LINE_HEADER
= 'X'
i_tab_raw_data
= it_raw
i_filename
= p_file
tables
i_tab_converted_data
= t_dominios
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.
ENDIF.
IF p_elem EQ 'X'.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
*
I_FIELD_SEPERATOR
=
I_LINE_HEADER
= 'X'
i_tab_raw_data
= it_raw
i_filename
= p_file
tables
i_tab_converted_data
= t_elementos
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.
ENDIF.
ENDFORM.