#11
|
|||
|
|||
Bajar Dynpros Y Tablas A Txt
Hola a todos,
En una oportunidad me brindaron el siguiente codigo para bajar tablas Z a un archivo .TXT (plano), espero que les sirva: *&---------------------------------------------------------------------* *& Report ZZZ_UP_DOWN_TABLAS * *&---------------------------------------------------------------------* REPORT ZZZ_UP_DOWN_TABLAS NO STANDARD PAGE HEADING LINE-SIZE 142. ************************************************************************ * Elementos de texto del programa: * ************************************************************************ * Textos de Seleccion * * P_DIR_D Directorio Salida * * P_DIR_U Archivo Entrada * * P_DWLD Download? * * P_TEST Solo Prueba * * P_UPLD Uppload? * * SO_TABL Tablas * * Simbolos de Texto * * 900 El Siguiente Objeto es Estandar: * * S01 Obtener Tablas * * S02 Guardar Tablas * ************************************************************************ * tabla interna para info de tablas TYPES: BEGIN OF ty_tablas, line(600) type C, END OF ty_tablas. ************** * Tablas Std * ************** TABLES: trdir, tadir, dd02l, trkey. "Clave completa de un objeto transporte ******************* * Tablas Internas * ******************* * reporte de objetos a bajar/subir DATA: BEGIN OF gt_reporte OCCURS 0, name LIKE trdir-name, "nombre objeto object LIKE tadir-object, "tipo de objeto text LIKE trdirt-text, "descripcion END OF gt_reporte. * tabla con info de tablas DATA W_SALIDA TYPE ty_tablas OCCURS 0 WITH HEADER LINE. DATA W_ENTRADA TYPE ty_tablas OCCURS 0 WITH HEADER LINE. DATA: W_TABL_INFO TYPE RPY_TABL OCCURS 0 WITH HEADER LINE, W_TABL_TECH TYPE RPY_TBTECH OCCURS 0 WITH HEADER LINE, W_TABL_FIELDS TYPE RPY_FIEL OCCURS 0 WITH HEADER LINE, W_DTEL_INFO TYPE RPY_DTEL OCCURS 0 WITH HEADER LINE, W_DOMA_INFO TYPE RPY_DOMA OCCURS 0 WITH HEADER LINE, W_DOMA_VALUES TYPE RPY_DVAL OCCURS 0 WITH HEADER LINE. DATA: wc_dir type string, guiobj type ref to cl_gui_frontend_services, wc_name type string, wt_filetable type filetable, wc_filter type string, wc_rc type i, wc_uact type i. ************** * Variables * ************** DATA: wi_tam LIKE sy-fdpos, " Long. de string wc_nok. " Validaciones de directorios ************** * Constantes * ************** CONSTANTS: cc_mens1(150) TYPE c VALUE 'Ingrese nombres de Tablas.', cc_mens2(150) TYPE c VALUE 'Ingrese directorio de download.', cc_mens3(150) TYPE c VALUE 'Ingrese Archivo de upload.', cc_error(30) TYPE c VALUE 'Error en la apertura del arch.'. ************************* * Pantalla de Selección * ************************* * DOWNLOAD? PARAMETER: p_dwld RADIOBUTTON GROUP rad1. "Download? SELECTION-SCREEN: BEGIN OF BLOCK bl1 WITH FRAME TITLE text-s01. * Objetos a Bajar: SELECT-OPTIONS: so_tabl FOR dd02l-tabname. "Tablas PARAMETER: p_dir_d LIKE rlgrap-filename DEFAULT 'C:\'. "Directorio SELECTION-SCREEN: END OF BLOCK bl1. SELECTION-SCREEN: ULINE. * UPLOAD? PARAMETER: p_upld RADIOBUTTON GROUP rad1. "Upload ? SELECTION-SCREEN: BEGIN OF BLOCK bl2 WITH FRAME TITLE text-s02. PARAMETER: p_dir_u LIKE rlgrap-filename DEFAULT 'C:\'. "irectorio * Tipos de objetos a Subir: SELECTION-SCREEN: SKIP. SELECTION-SCREEN: END OF BLOCK bl2. PARAMETER: p_langu LIKE sy-langu DEFAULT sy-langu NO-DISPLAY. PARAMETER: p_test AS CHECKBOX DEFAULT 'X'. ************************ * AT SELECTION-SCREEN * ************************ AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_dir_d. CREATE OBJECT GUIOBJ. CALL METHOD guiobj->directory_browse EXPORTING WINDOW_TITLE = 'Seleccione el Directorio Destino' CHANGING selected_folder = wc_dir EXCEPTIONS CNTL_ERROR = 1 ERROR_NO_GUI = 2 NOT_SUPPORTED_BY_GUI = 3 others = 4 . CHECK sy-subrc EQ 0. MOVE wc_dir to p_dir_d. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_dir_u. CREATE OBJECT GUIOBJ. wc_filter = '(Archivos de Texto *.txt)|*.txt|'. REFRESH wt_filetable. CALL METHOD guiobj->file_open_dialog EXPORTING WINDOW_TITLE = 'Seleccione el Archivo a Procesar' FILE_FILTER = wc_filter CHANGING file_table = wt_filetable rc = wc_rc USER_ACTION = wc_uact EXCEPTIONS FILE_OPEN_DIALOG_FAILED = 1 CNTL_ERROR = 2 ERROR_NO_GUI = 3 NOT_SUPPORTED_BY_GUI = 4 others = 5 . CHECK sy-subrc EQ 0. CHECK wc_uact NE guiobj->ACTION_CANCEL. READ TABLE wt_filetable INDEX 1 INTO wc_name. MOVE wc_name to p_dir_u. AT SELECTION-SCREEN. CASE 'X'. WHEN p_dwld. * si no cargaron nombres de objetos... IF so_tabl IS INITIAL. MESSAGE e899(mm) WITH cc_mens1. ENDIF. * si no cargaron directorio de download IF p_dir_d IS INITIAL. MESSAGE e899(mm) WITH cc_mens2. ELSE. PERFORM chequear_directorio USING p_dir_d CHANGING wc_nok. ENDIF. WHEN p_upld. * si no cargaron directorio de upload IF p_dir_u IS INITIAL. MESSAGE e899(mm) WITH cc_mens3. ELSE. * PERFORM chequear_directorio USING p_dir_u CHANGING wc_nok. ENDIF. ENDCASE. ************************ * START-OF-SELECTION * ************************ START-OF-SELECTION. CLEAR: W_SALIDA, W_ENTRADA, W_TABL_INFO, W_TABL_TECH, W_TABL_FIELDS, W_DTEL_INFO, W_DOMA_INFO, W_DOMA_VALUES. REFRESH: W_SALIDA, W_ENTRADA, W_TABL_INFO, W_TABL_TECH, W_TABL_FIELDS, W_DTEL_INFO, W_DOMA_INFO, W_DOMA_VALUES. IF wc_nok IS INITIAL. * DOWNLOAD IF p_dwld EQ 'X'. PERFORM bajar_tablas. * UPLOAD ELSE. PERFORM subir_tablas. ENDIF. * REPORTE PERFORM imprimir_reporte. ENDIF. ********************* * END-OF-SELECTION * ********************* END-OF-SELECTION. *&---------------------------------------------------------------------* *& Form chequear_directorio *&---------------------------------------------------------------------* FORM chequear_directorio CHANGING: p_dir wc_nok. DATA: lc_exist. CHECK NOT p_dir IS INITIAL. * Agrego la barra al final del path por si no la pusieron... REPLACE '\\' WITH '@#' INTO p_dir. CONCATENATE p_dir '\' INTO p_dir. REPLACE '\\' WITH '\' INTO p_dir. REPLACE '@#' WITH '\\' INTO p_dir. CALL FUNCTION 'WS_QUERY' EXPORTING filename = p_dir query = 'DE' "directory exists IMPORTING return = lc_exist EXCEPTIONS inv_query = 1 no_batch = 2 frontend_error = 3 OTHERS = 4. IF lc_exist NE 1. wc_nok = 'X'. MESSAGE i001(00) WITH 'El directiorio, ' p_dir 'no existe.'. ENDIF. ENDFORM. " chequear_directorio *&---------------------------------------------------------------------* *& Form subir_tablas *&---------------------------------------------------------------------* FORM subir_tablas. * levanto el archivo PERFORM armar_tabla_upload. IF p_test IS INITIAL. PERFORM upload_tablas. ENDIF. ENDFORM. " subir_tablas *&---------------------------------------------------------------------* *& Form CHEQUEAR_CLASE *&---------------------------------------------------------------------* FORM chequear_clase USING value(p_name) type TADIR-OBJ_NAME CHANGING p_subrc LIKE sy-subrc. P_SUBRC = 0. SELECT SINGLE DEVCLASS FROM TADIR INTO TADIR-DEVCLASS WHERE OBJ_NAME EQ P_NAME. IF sy-subrc <> 0 OR ( tadir-devclass(1) NE 'Z' AND tadir-devclass(1) NE 'Y' AND tadir-devclass NE '$TMP' ). WRITE: / text-900, p_name. p_subrc = 4. ENDIF. ENDFORM. " CHEQUEAR_CLASE *&---------------------------------------------------------------------* *& Form ARMAR_TABLA_UPLOAD *&---------------------------------------------------------------------* FORM armar_tabla_upload. DATA: LC_ENTRADA TYPE STRING, LC_TABLA(15) TYPE C. MOVE P_DIR_U TO LC_ENTRADA. CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = LC_ENTRADA tables data_tab = W_ENTRADA 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 . IF sy-subrc <> 0. ENDIF. LOOP AT W_ENTRADA. CASE W_ENTRADA. WHEN '###$$$%%%&&&:TABL_INFO'. LC_TABLA = 'TABL_INFO'. WHEN '###$$$%%%&&&:TABL_TECH'. LC_TABLA = 'TABL_TECH'. WHEN '###$$$%%%&&&:TABL_FIELDS'. LC_TABLA = 'TABL_FIELDS'. WHEN '###$$$%%%&&&TEL_INFO'. LC_TABLA = 'DTEL_INFO'. WHEN '###$$$%%%&&&OMA_INFO'. LC_TABLA = 'DOMA_INFO'. WHEN '###$$$%%%&&&OMA_VALUES'. LC_TABLA = 'DOMA_VALUES'. WHEN OTHERS. CASE LC_TABLA. WHEN 'TABL_INFO'. MOVE W_ENTRADA TO W_TABL_INFO. APPEND W_TABL_INFO. GT_REPORTE-NAME = W_TABL_INFO-TABLNAME. GT_REPORTE-OBJECT = 'TABL'. GT_REPORTE-TEXT = W_TABL_INFO-SHORTTEXT. APPEND GT_REPORTE. WHEN 'TABL_TECH'. MOVE W_ENTRADA TO W_TABL_TECH. APPEND W_TABL_TECH. WHEN 'TABL_FIELDS'. MOVE W_ENTRADA TO W_TABL_FIELDS. APPEND W_TABL_FIELDS. WHEN 'DTEL_INFO'. MOVE W_ENTRADA TO W_DTEL_INFO. APPEND W_DTEL_INFO. GT_REPORTE-NAME = W_DTEL_INFO-DTELNAME. GT_REPORTE-OBJECT = 'DTEL'. GT_REPORTE-TEXT = W_DTEL_INFO-DDTEXT. APPEND GT_REPORTE. WHEN 'DOMA_INFO'. MOVE W_ENTRADA TO W_DOMA_INFO. APPEND W_DOMA_INFO. GT_REPORTE-NAME = W_DOMA_INFO-DOMANAME. GT_REPORTE-OBJECT = 'DOMA'. GT_REPORTE-TEXT = W_DOMA_INFO-SHORTTEXT. APPEND GT_REPORTE. WHEN 'DOMA_VALUES'. MOVE W_ENTRADA TO W_DOMA_VALUES. APPEND W_DOMA_VALUES. ENDCASE. ENDCASE. ENDLOOP. ENDFORM. " ARMAR_TABLA_UPLOAD *&---------------------------------------------------------------------* *& Form bajar_tablas *&---------------------------------------------------------------------* FORM bajar_tablas . PERFORM cargar_tablas. IF p_test IS INITIAL. PERFORM gravar_archivo_tablas. ENDIF. ENDFORM. " bajar_tablas *&---------------------------------------------------------------------* *& Form imprimir_reporte *&---------------------------------------------------------------------* FORM imprimir_reporte . WRITE:/5 'Fecha: ', sy-datum, 30 'Usuario:' , sy-uname. SKIP 1. ULINE. FORMAT COLOR COL_KEY. WRITE: 1 '|', 3 'Objeto' , 45 '|' , 47 'Tipo' , 53 '|', 56 'Descripción' , 142 '|'. FORMAT COLOR OFF. ULINE. LOOP AT gt_reporte. WRITE:/1 '|', 3 gt_reporte-name , 45 '|' , 47 gt_reporte-object , 53 '|', 56 gt_reporte-text , 142 '|'. ENDLOOP. ULINE. ENDFORM. " imprimir_reporte *&---------------------------------------------------------------------* *& Form cargar_tablas *&---------------------------------------------------------------------* FORM cargar_tablas . DATA: LC_TABLAS TYPE RPY_TABL OCCURS 0 WITH HEADER LINE, LC_TABL_INFO TYPE RPY_TABL, LC_TABL_TECH TYPE RPY_TBTECH, LC_TABL_FIELDS TYPE RPY_FIEL OCCURS 0 WITH HEADER LINE, LC_SUBRC TYPE SY-SUBRC, LC_NAME TYPE TADIR-OBJ_NAME. CALL FUNCTION 'RPY_TABLE_SELECT' EXPORTING TABLE_NAME = 'Z*' TABLES tabl_inf_tab = LC_TABLAS EXCEPTIONS CANCELLED = 1 NOT_FOUND = 2 PERMISSION_ERROR = 3 OTHERS = 4 . IF sy-subrc <> 0. ENDIF. LOOP AT LC_TABLAS. IF NOT LC_TABLAS-TABLNAME IN SO_TABL. DELETE LC_TABLAS. ELSE. MOVE LC_TABLAS-TABLNAME TO LC_NAME. PERFORM CHEQUEAR_CLASE USING LC_NAME CHANGING LC_SUBRC. IF LC_SUBRC NE 0. DELETE LC_TABLAS. ENDIF. ENDIF. ENDLOOP. LOOP AT LC_TABLAS. REFRESH: LC_TABL_FIELDS. CALL FUNCTION 'RPY_TABLE_READ' EXPORTING table_name = LC_TABLAS-TABLNAME IMPORTING TABL_INF = LC_TABL_INFO TABL_TECHNICS = LC_TABL_TECH tables tabl_fields = LC_TABL_FIELDS EXCEPTIONS CANCELLED = 1 NOT_FOUND = 2 PERMISSION_ERROR = 3 ILLEGAL_TYPE = 4 OTHERS = 5 . IF sy-subrc <> 0. ENDIF. GT_REPORTE-NAME = LC_TABL_INFO-TABLNAME. GT_REPORTE-OBJECT = 'TABL'. GT_REPORTE-TEXT = LC_TABL_INFO-SHORTTEXT. APPEND GT_REPORTE. APPEND LC_TABL_INFO TO W_TABL_INFO. IF NOT LC_TABL_TECH IS INITIAL. APPEND LC_TABL_TECH TO W_TABL_TECH. ENDIF. LOOP AT LC_TABL_FIELDS. APPEND LC_TABL_FIELDS TO W_TABL_FIELDS. IF LC_TABL_FIELDS-DTELNAME(1) EQ 'Z'. PERFORM LEER_ELEMENTO_DATO USING LC_TABL_FIELDS-DTELNAME. ENDIF. ENDLOOP. ENDLOOP. ENDFORM. " cargar_tablas *&---------------------------------------------------------------------* *& Form gravar_archivo_tablas *&---------------------------------------------------------------------* FORM gravar_archivo_tablas . DATA: LC_SALIDA TYPE STRING. LOOP AT W_TABL_INFO. AT FIRST. MOVE '###$$$%%%&&&:TABL_INFO' TO W_SALIDA. APPEND W_SALIDA. ENDAT. MOVE W_TABL_INFO TO W_SALIDA. APPEND W_SALIDA. ENDLOOP. LOOP AT W_TABL_TECH. AT FIRST. MOVE '###$$$%%%&&&:TABL_TECH' TO W_SALIDA. APPEND W_SALIDA. ENDAT. MOVE W_TABL_TECH TO W_SALIDA. APPEND W_SALIDA. ENDLOOP. LOOP AT W_TABL_FIELDS. AT FIRST. MOVE '###$$$%%%&&&:TABL_FIELDS' TO W_SALIDA. APPEND W_SALIDA. ENDAT. MOVE W_TABL_FIELDS TO W_SALIDA. APPEND W_SALIDA. ENDLOOP. LOOP AT W_DTEL_INFO. AT FIRST. MOVE '###$$$%%%&&&TEL_INFO' TO W_SALIDA. APPEND W_SALIDA. ENDAT. MOVE W_DTEL_INFO TO W_SALIDA. APPEND W_SALIDA. ENDLOOP. LOOP AT W_DOMA_INFO. AT FIRST. MOVE '###$$$%%%&&&OMA_INFO' TO W_SALIDA. APPEND W_SALIDA. ENDAT. MOVE W_DOMA_INFO TO W_SALIDA. APPEND W_SALIDA. ENDLOOP. LOOP AT W_DOMA_VALUES. AT FIRST. MOVE '###$$$%%%&&&OMA_VALUES' TO W_SALIDA. APPEND W_SALIDA. ENDAT. MOVE W_DOMA_VALUES TO W_SALIDA. APPEND W_SALIDA. ENDLOOP. CONCATENATE P_DIR_D 'SALIDA_TABLAS.TXT' INTO LC_SALIDA. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = LC_SALIDA tables data_tab = W_SALIDA EXCEPTIONS FILE_WRITE_ERROR = 1 NO_BATCH = 2 GUI_REFUSE_FILETRANSFER = 3 INVALID_TYPE = 4 NO_AUTHORITY = 5 UNKNOWN_ERROR = 6 HEADER_NOT_ALLOWED = 7 SEPARATOR_NOT_ALLOWED = 8 FILESIZE_NOT_ALLOWED = 9 HEADER_TOO_LONG = 10 DP_ERROR_CREATE = 11 DP_ERROR_SEND = 12 DP_ERROR_WRITE = 13 UNKNOWN_DP_ERROR = 14 ACCESS_DENIED = 15 DP_OUT_OF_MEMORY = 16 DISK_FULL = 17 DP_TIMEOUT = 18 FILE_NOT_FOUND = 19 DATAPROVIDER_EXCEPTION = 20 CONTROL_FLUSH_ERROR = 21 OTHERS = 22 . IF sy-subrc <> 0. ENDIF. ENDFORM. " gravar_archivo_tablas *&---------------------------------------------------------------------* *& Form upload_tablas *&---------------------------------------------------------------------* form upload_tablas . DATA: LC_DOMA_INFO TYPE RPY_DOMA, LC_DOMA_VALUES TYPE RPY_DVAL OCCURS 0 WITH HEADER LINE, LC_DTEL_INFO TYPE RPY_DTEL, LC_TABL_INFO TYPE RPY_TABL, LC_TABL_TECH TYPE RPY_TBTECH, LC_TABL_FIELDS TYPE RPY_FIEL_U OCCURS 0 WITH HEADER LINE. LOOP AT W_DOMA_INFO. MOVE W_DOMA_INFO TO LC_DOMA_INFO. REFRESH LC_DOMA_VALUES. LOOP AT W_DOMA_VALUES WHERE DOMANAME = LC_DOMA_INFO-DOMANAME. MOVE W_DOMA_VALUES TO LC_DOMA_VALUES. APPEND LC_DOMA_VALUES. ENDLOOP. CALL FUNCTION 'RPY_DOMAIN_INSERT' EXPORTING doma_name = LC_DOMA_INFO-DOMANAME doma_inf = LC_DOMA_INFO tables doma_values = LC_DOMA_VALUES EXCEPTIONS CANCELLED = 1 ALREADY_EXIST = 2 PERMISSION_ERROR = 3 NAME_NOT_ALLOWED = 4 NAME_CONFLICT = 5 INTERNAL_ERROR = 6 OTHERS = 7 . IF sy-subrc <> 0. ENDIF. ENDLOOP. LOOP AT W_DTEL_INFO. MOVE W_DTEL_INFO TO LC_DTEL_INFO. CALL FUNCTION 'RPY_DATAELEMENT_INSERT' EXPORTING dataelement_name = LC_DTEL_INFO-DTELNAME dtel_inf = LC_DTEL_INFO transport_number = SPACE EXCEPTIONS CANCELLED = 1 ALREADY_EXIST = 2 PERMISSION_ERROR = 3 NAME_NOT_ALLOWED = 4 NAME_CONFLICT = 5 ILLEGAL_TYPE = 6 OBJECT_INCONSISTENT = 7 DB_ACCESS_ERROR = 8 OTHERS = 9 . IF sy-subrc <> 0. ENDIF. ENDLOOP. LOOP AT W_TABL_INFO. MOVE W_TABL_INFO TO LC_TABL_INFO. READ TABLE W_TABL_TECH WITH KEY TABLNAME = LC_TABL_INFO-TABLNAME. IF SY-SUBRC EQ 0. MOVE W_TABL_TECH TO LC_TABL_TECH. ELSE. CLEAR LC_TABL_TECH. ENDIF. REFRESH LC_TABL_FIELDS. LOOP AT W_TABL_FIELDS WHERE TABLNAME = LC_TABL_INFO-TABLNAME. MOVE-CORRESPONDING W_TABL_FIELDS TO LC_TABL_FIELDS. APPEND LC_TABL_FIELDS. ENDLOOP. CALL FUNCTION 'RPY_TABLE_INSERT' EXPORTING table_name = LC_TABL_INFO-TABLNAME tabl_inf = LC_TABL_INFO TABL_TECHNICS = LC_TABL_TECH tables tabl_fields = LC_TABL_FIELDS EXCEPTIONS CANCELLED = 1 ALREADY_EXIST = 2 PERMISSION_ERROR = 3 NAME_NOT_ALLOWED = 4 NAME_CONFLICT = 5 DB_ACCESS_ERROR = 6 OTHERS = 7 . IF sy-subrc <> 0. ENDIF. ENDLOOP. endform. " upload_tablas *&---------------------------------------------------------------------* *& Form LEER_ELEMENTO_DATO *&---------------------------------------------------------------------* form LEER_ELEMENTO_DATO using p_dtelname. DATA: LC_DTEL_INFO TYPE RPY_DTEL, LC_SUBRC TYPE SY-SUBRC, LC_NAME TYPE TADIR-OBJ_NAME. READ TABLE W_DTEL_INFO WITH KEY DTELNAME = P_DTELNAME. CHECK SY-SUBRC NE 0. MOVE P_DTELNAME TO LC_NAME. PERFORM CHEQUEAR_CLASE USING LC_NAME CHANGING LC_SUBRC. CHECK LC_SUBRC EQ 0. MOVE P_DTELNAME TO LC_DTEL_INFO-DTELNAME. CALL FUNCTION 'RPY_DATAELEMENT_READ' EXPORTING dataelement_name = LC_DTEL_INFO-DTELNAME IMPORTING DTEL_INF = LC_DTEL_INFO EXCEPTIONS CANCELLED = 1 NOT_FOUND = 2 PERMISSION_ERROR = 3 ILLEGAL_TYPE = 4 OTHERS = 5 . IF sy-subrc <> 0. ENDIF. GT_REPORTE-NAME = LC_DTEL_INFO-DTELNAME. GT_REPORTE-OBJECT = 'DTEL'. GT_REPORTE-TEXT = LC_DTEL_INFO-DDTEXT. APPEND GT_REPORTE. APPEND LC_DTEL_INFO TO W_DTEL_INFO. IF LC_DTEL_INFO-DOMANAME(1) EQ 'Z'. PERFORM LEER_DOMINIO USING LC_DTEL_INFO-DOMANAME. ENDIF. endform. " LEER_ELEMENTO_DATO *&---------------------------------------------------------------------* *& Form LEER_DOMINIO *&---------------------------------------------------------------------* form LEER_DOMINIO using p_domaname. DATA: LC_DOMA_INFO TYPE RPY_DOMA, LC_DOMA_VALUES TYPE RPY_DVAL OCCURS 0 WITH HEADER LINE, LC_SUBRC TYPE SY-SUBRC, LC_NAME TYPE TADIR-OBJ_NAME. READ TABLE W_DOMA_INFO WITH KEY DOMANAME = P_DOMANAME. CHECK SY-SUBRC NE 0. MOVE P_DOMANAME TO LC_NAME. PERFORM CHEQUEAR_CLASE USING LC_NAME CHANGING LC_SUBRC. CHECK LC_SUBRC EQ 0. MOVE P_DOMANAME TO LC_DOMA_INFO-DOMANAME. REFRESH: LC_DOMA_VALUES. CALL FUNCTION 'RPY_DOMAIN_READ' EXPORTING doma_name = LC_DOMA_INFO-DOMANAME IMPORTING DOMA_INF = LC_DOMA_INFO tables doma_values = LC_DOMA_VALUES EXCEPTIONS CANCELLED = 1 NOT_FOUND = 2 PERMISSION_ERROR = 3 ILLEGAL_TYPE = 4 OTHERS = 5 . IF sy-subrc <> 0. ENDIF. GT_REPORTE-NAME = LC_DOMA_INFO-DOMANAME. GT_REPORTE-OBJECT = 'DOMA'. GT_REPORTE-TEXT = LC_DOMA_INFO-SHORTTEXT. APPEND GT_REPORTE. APPEND LC_DOMA_INFO TO W_DOMA_INFO. LOOP AT LC_DOMA_VALUES. APPEND LC_DOMA_VALUES TO W_DOMA_VALUES. ENDLOOP. endform. " LEER_DOMINIO No he tenido tiempo de probarlo, pero lo brindaron argumentando que funcinaba correctamente. Saludos, Alexis Chavero. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|