#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. |
#12
|
|||
|
|||
Bajar Dynpros Y Tablas A Txt
Hola a todos,
Respecto a la bajada de una Dynpros para luego ser subida en otro cliente, lo puedes hacer desde el Download que tiene sap parandote en los atributos de la dynpros. Luego de descargarla lo que tienes que hacer es modificar el TXT que te descargo. En las lineas 6 y 11 del TXT bajado coloca el nombre del programa de origen de donde se descargo, alli lo reemplazas por el nombre del programa en el que quieras subir dicha dimpros, lo guardas y luego lo subes de la misma manera que lo bajaste. Esta informacion fue validada por un compañero de trabajo. Espero que les sirva. Saludos, Alexis Chavero. |
#13
|
|||
|
|||
Para bajar objetos de diccionario, etc y transportarlo a otro servidor puedes utilizar este programa Z ..
.. aqui lo descargas luego te descargas los plug in .. para objetos en general .. Tienes q instalarlo en tu server y en el del cliente.. Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|