MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #11  
Viejo 29/03/10, 19:03:07
AlexisChavero
 
Mensajes: n/a
Post 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.
Responder Con Cita
  #12  
Viejo 29/03/10, 19:10:12
AlexisChavero
 
Mensajes: n/a
Post 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.
Responder Con Cita
  #13  
Viejo 29/03/10, 21:50:52
Dennis Urbano E. Dennis Urbano E. is offline
Junior Member
 
Fecha de Ingreso: nov 2008
Mensajes: 28
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 10:54:25.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web