Dominios Masivamente

download Dominios Masivamente

If you can't read please download the document

description

Dominios y elemento de datos

Transcript of Dominios Masivamente

*&---------------------------------------------------------------------**& Report Z_CREADICC*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT Z_CREADICC.TYPE-POOLS truxs.INCLUDE BDCRECXY.*SELECTION-SCREEN SKIP.selection-screen begin of block selection1 with frame title a1tipo.parameters: p_dom radiobutton group rad1, p_elem radiobutton group rad1.selection-screen end of block selection1.selection-screen begin of block selection2 with frame title a1paqord.parameters: p_paq type c length 30 obligatory, p_ord type c length 30 obligatory, p_usu type c length 30 default sy-uname .selection-screen end of block selection2.SELECTION-SCREEN SKIP.selection-screen begin of block selection3 with frame title a1arch.selection-screen skip.parameters p_file like rlgrap-filename obligatory.selection-screen end of block selection3.initialization. perform selection_screen_text.form selection_screen_text. a1tipo = 'Selecciona el tipo de objeto a crear.'. a1paqord = 'Ingrese el paquete y la orden de transporte'. a1arch = 'Archivo excel debe tener cabecera y todas las columnas incluyendo la MANDT'.endform.data: p_file_name type string,p_fullpath type string,error(255).at SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF screen-name = 'P_USU'. screen-input = 0. MODIFY SCREEN. ENDIF. ENDLOOP.at selection-screen on value-request for p_file.*ESTA FUNCIN NOS AYUDA A UBICAR EL ARCHIVO COMO LO HARAMOS EN WINDOWS CALL FUNCTION 'GUI_FILE_LOAD_DIALOG' EXPORTING WINDOW_TITLE = 'Selecciona el archivo a cargar#' FILE_FILTER = ',*.XLS,*.xls.' 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, DDTEXT_003 type BDCDATA-FVAL, DATATYPE_004 type BDCDATA-FVAL, LENG_005 type BDCDATA-FVAL, DECIMALS_006 type BDCDATA-FVAL, OUTPUTLEN_007 type BDCDATA-FVAL, L_DEVCLASS_008 type BDCDATA-FVAL, L_AUTHOR_009 type BDCDATA-FVAL, TRKORR_010 type BDCDATA-FVAL, DDTEXT_011 type BDCDATA-FVAL, DATATYPE_012 type BDCDATA-FVAL, LENG_013 type BDCDATA-FVAL, DECIMALS_014 type BDCDATA-FVAL, OUTPUTLEN_015 type BDCDATA-FVAL, SUBRC LIKE SYST-SUBRC, MESSTAB TYPE TABLE OF BDCMSGCOLL. L_DEVCLASS_008 = p_paq. L_AUTHOR_009 = p_usu. TRKORR_010 = p_ord.********************** REGION DECLARACION RESPECTO A ELEMENTOS ************************************************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 '/', TBMA_VAL_001 TYPE BDCDATA-FVAL VALUE 'ZTBSD_CABECERA', DDTYPE_002 TYPE BDCDATA-FVAL, DDTYPE_VAL_003 TYPE BDCDATA-FVAL, DOMA_VAL_004 TYPE BDCDATA-FVAL, DTEL_005 TYPE BDCDATA-FVAL, DDTEXT_006 TYPE BDCDATA-FVAL, ELEM_007 TYPE BDCDATA-FVAL, DOMAIN_008 TYPE BDCDATA-FVAL, DOMNAME_009 TYPE BDCDATA-FVAL, DDTEXT_010 TYPE BDCDATA-FVAL, ELEM_011 TYPE BDCDATA-FVAL, DOMAIN_012 TYPE BDCDATA-FVAL, DOMNAME_013 TYPE BDCDATA-FVAL, DDTEXT_014 TYPE BDCDATA-FVAL, SCRTEXT_S_015 TYPE BDCDATA-FVAL, SCRLEN1_016 TYPE BDCDATA-FVAL, SCRTEXT_M_017 TYPE BDCDATA-FVAL, SCRLEN2_018 TYPE BDCDATA-FVAL, SCRTEXT_L_019 TYPE BDCDATA-FVAL, SCRLEN3_020 TYPE BDCDATA-FVAL, REPTEXT_021 TYPE BDCDATA-FVAL, HEADLEN_022 TYPE BDCDATA-FVAL, L_DEVCLASS_023 TYPE BDCDATA-FVAL, L_AUTHOR_024 TYPE BDCDATA-FVAL, TRKORR_025 TYPE BDCDATA-FVAL, DDTEXT_026 TYPE BDCDATA-FVAL, SCRTEXT_S_027 TYPE BDCDATA-FVAL, SCRLEN1_028 TYPE BDCDATA-FVAL, SCRTEXT_M_029 TYPE BDCDATA-FVAL, SCRLEN2_030 TYPE BDCDATA-FVAL, SCRTEXT_L_031 TYPE BDCDATA-FVAL, SCRLEN3_032 TYPE BDCDATA-FVAL, REPTEXT_033 TYPE BDCDATA-FVAL, HEADLEN_034 TYPE BDCDATA-FVAL, DDTEXT_035 TYPE BDCDATA-FVAL, SCRTEXT_S_036 TYPE BDCDATA-FVAL, SCRLEN1_037 TYPE BDCDATA-FVAL, SCRTEXT_M_038 TYPE BDCDATA-FVAL, SCRLEN2_039 TYPE BDCDATA-FVAL, SCRTEXT_L_040 TYPE BDCDATA-FVAL, SCRLEN3_041 TYPE BDCDATA-FVAL, REPTEXT_042 TYPE BDCDATA-FVAL, HEADLEN_043 TYPE BDCDATA-FVAL.********************************************************************** IF p_dom EQ 'X'. PERFORM carga_xls_to_it. LOOP AT t_dominios INTO w_dominios. IF w_dominios-tipo_dato EQ 'CHAR'. val_sal = w_dominios-longitud. salida = val_sal. ELSE. val_sal = w_dominios-longitud + w_dominios-decimales + 2. salida = val_sal. ENDIF.********************************************************************** DOMA_VAL_002 = w_dominios-campo."'ZRUTRECEP' DDTEXT_003 = w_dominios-descripcion."'gggggg' DATATYPE_004 = w_dominios-tipo_dato."'CHAR' LENG_005 = w_dominios-longitud."' 1' DECIMALS_006 = w_dominios-decimales."' 1' OUTPUTLEN_007 = salida."' 1' DDTEXT_011 = w_dominios-descripcion."'gggggg' DATATYPE_012 = w_dominios-tipo_dato."'CHAR' LENG_013 = w_dominios-longitud."' 1' DECIMALS_014 = w_dominios-decimales."' 1' OUTPUTLEN_015 = salida."' 1'********************************************************************** subrc = 0. perform bdc_nodata using NODATA. perform open_group using GROUP USER KEEP HOLDDATE CTU. perform bdc_dynpro using 'SAPMSRD0' '0102'. perform bdc_field using 'BDC_CURSOR' 'RSRD1-DOMA_VAL'. perform bdc_field using 'BDC_OKCODE' '=ADD'. perform bdc_field using 'RSRD1-DOMA' DOMA_001. perform bdc_field using 'RSRD1-DOMA_VAL' DOMA_VAL_002. perform bdc_dynpro using 'SAPLSD11' '1200'. perform bdc_field using 'BDC_OKCODE' '=WB_SAVE'. perform bdc_field using 'DD01D-DDTEXT' DDTEXT_003. perform bdc_field using 'BDC_CURSOR' 'DD01D-DECIMALS'. perform bdc_field using 'DD01D-DATATYPE' DATATYPE_004. perform bdc_field using 'DD01D-LENG' LENG_005. perform bdc_field using 'DD01D-DECIMALS' DECIMALS_006. perform bdc_field using 'DD01D-OUTPUTLEN' OUTPUTLEN_007. perform bdc_dynpro using 'SAPLSTRD' '0100'. perform bdc_field using 'BDC_CURSOR' 'KO007-L_DEVCLASS'. perform bdc_field using 'BDC_OKCODE' '=ADD'. perform bdc_field using 'KO007-L_DEVCLASS' L_DEVCLASS_008. perform bdc_field using 'KO007-L_AUTHOR' L_AUTHOR_009. perform bdc_dynpro using 'SAPLSTRD' '0300'. perform bdc_field using 'BDC_CURSOR' 'KO008-TRKORR'. perform bdc_field using 'BDC_OKCODE' '=LOCK'. perform bdc_field using 'KO008-TRKORR' TRKORR_010. perform bdc_dynpro using 'SAPLSD11' '1200'. perform bdc_field using 'BDC_OKCODE' '=WB_ACTIVATE'. perform bdc_field using 'DD01D-DDTEXT' DDTEXT_011. perform bdc_field using 'BDC_CURSOR' 'DD01D-DECIMALS'. perform bdc_field using 'DD01D-DATATYPE' DATATYPE_012. perform bdc_field using 'DD01D-LENG' LENG_013. perform bdc_field using 'DD01D-DECIMALS' DECIMALS_014. perform bdc_field using 'DD01D-OUTPUTLEN' OUTPUTLEN_015. perform bdc_dynpro using 'SAPLSD11' '1200'. perform bdc_field using 'BDC_CURSOR' 'DD01D-DDTEXT'. perform bdc_field using 'BDC_OKCODE' '=WB_BACK'. perform bdc_transaction tables messtab using '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 using GROUP USER KEEP HOLDDATE CTU. perform bdc_dynpro using 'SAPMSRD0' '0102'. perform bdc_field using 'BDC_CURSOR' 'RSRD1-DDTYPE_VAL'. perform bdc_field using 'BDC_OKCODE' '=ADD'. perform bdc_field using 'RSRD1-TBMA_VAL' TBMA_VAL_001. perform bdc_field using 'RSRD1-DDTYPE' DDTYPE_002. perform bdc_field using 'RSRD1-DDTYPE_VAL' DDTYPE_VAL_003. perform bdc_field using 'RSRD1-DOMA_VAL' DOMA_VAL_004. perform bdc_dynpro using 'SAPLSED1' '0100'. perform bdc_field using 'BDC_CURSOR' 'D_100-DTEL'. perform bdc_field using 'BDC_OKCODE' '=GOON'. perform bdc_field using 'D_100-DTEL' DTEL_005. perform bdc_dynpro using 'SAPLSD51' '1000'. perform bdc_field using 'BDC_OKCODE' '=RET'. perform bdc_field using 'DD04D-DDTEXT' DDTEXT_006. perform bdc_field using 'BDC_CURSOR' 'DD04D-DOMNAME'. perform bdc_field using 'RADIO-ELEM' ELEM_007. perform bdc_field using 'RADIO-DOMAIN' DOMAIN_008. perform bdc_field using 'DD04D-DOMNAME' DOMNAME_009. perform bdc_dynpro using 'SAPLSD51' '1000'. perform bdc_field using 'BDC_OKCODE' '=TEXT'. perform bdc_field using 'DD04D-DDTEXT' DDTEXT_010. perform bdc_field using 'BDC_CURSOR' 'DD04D-DOMNAME'. perform bdc_field using 'RADIO-ELEM' ELEM_011. perform bdc_field using 'RADIO-DOMAIN' DOMAIN_012. perform bdc_field using 'DD04D-DOMNAME' DOMNAME_013. perform bdc_dynpro using 'SAPLSD51' '1000'. perform bdc_field using 'BDC_OKCODE' '=WB_SAVE'. perform bdc_field using 'DD04D-DDTEXT' DDTEXT_014. perform bdc_field using 'BDC_CURSOR' 'DD04D-HEADLEN'. perform bdc_field using 'DD04D-SCRTEXT_S' SCRTEXT_S_015. perform bdc_field using 'DD04D-SCRLEN1' SCRLEN1_016. perform bdc_field using 'DD04D-SCRTEXT_M' SCRTEXT_M_017. perform bdc_field using 'DD04D-SCRLEN2' SCRLEN2_018. perform bdc_field using 'DD04D-SCRTEXT_L' SCRTEXT_L_019. perform bdc_field using 'DD04D-SCRLEN3' SCRLEN3_020. perform bdc_field using 'DD04D-REPTEXT' REPTEXT_021. perform bdc_field using 'DD04D-HEADLEN' HEADLEN_022. perform bdc_dynpro using 'SAPLSTRD' '0100'. perform bdc_field using 'BDC_CURSOR' 'KO007-L_DEVCLASS'. perform bdc_field using 'BDC_OKCODE' '=ADD'. perform bdc_field using 'KO007-L_DEVCLASS' L_DEVCLASS_023. perform bdc_field using 'KO007-L_AUTHOR' L_AUTHOR_024. perform bdc_dynpro using 'SAPLSTRD' '0300'. perform bdc_field using 'BDC_CURSOR' 'KO008-TRKORR'. perform bdc_field using 'BDC_OKCODE' '=LOCK'. perform bdc_field using 'KO008-TRKORR' TRKORR_025. perform bdc_dynpro using 'SAPLSD51' '1000'. perform bdc_field using 'BDC_CURSOR' 'DD04D-DDTEXT'. perform bdc_field using 'BDC_OKCODE' '=WB_ACTIVATE'. perform bdc_field using 'DD04D-DDTEXT' DDTEXT_026. perform bdc_field using 'DD04D-SCRTEXT_S' SCRTEXT_S_027. perform bdc_field using 'DD04D-SCRLEN1' SCRLEN1_028. perform bdc_field using 'DD04D-SCRTEXT_M' SCRTEXT_M_029. perform bdc_field using 'DD04D-SCRLEN2' SCRLEN2_030. perform bdc_field using 'DD04D-SCRTEXT_L' SCRTEXT_L_031. perform bdc_field using 'DD04D-SCRLEN3' SCRLEN3_032. perform bdc_field using 'DD04D-REPTEXT' REPTEXT_033. perform bdc_field using 'DD04D-HEADLEN' HEADLEN_034. perform bdc_dynpro using 'SAPLSD51' '1000'. perform bdc_field using 'BDC_CURSOR' 'DD04D-DDTEXT'. perform bdc_field using 'BDC_OKCODE' '=WB_BACK'. perform bdc_field using 'DD04D-DDTEXT' DDTEXT_035. perform bdc_field using 'DD04D-SCRTEXT_S' SCRTEXT_S_036. perform bdc_field using 'DD04D-SCRLEN1' SCRLEN1_037. perform bdc_field using 'DD04D-SCRTEXT_M' SCRTEXT_M_038. perform bdc_field using 'DD04D-SCRLEN2' SCRLEN2_039. perform bdc_field using 'DD04D-SCRTEXT_L' SCRTEXT_L_040. perform bdc_field 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 close_group using CTU. ENDLOOP. ENDIF.********************************************************************** 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.