PDA

Ver la Versión Completa : Write, Ayuda


abfv
16/12/08, 11:11:29
Hola a todos, por favor si alguien me puede dar una mano ya que no se que estoy haciendo mal.

Ejecuto un reporte que llama a una Dynpro en esta se hace un call transaction y quiero mostrar con WRITE la tabla de mensajes de errores, pero no me muestra nada, sin embargo al debuggear, la tabla tiene datos y la sentencia se ejecuta normalmente.

Saludos a todos.

sconoredhot
16/12/08, 13:18:46
Podrías pegar el código para que podamos analizar el problema?

Gracias

andyoscky
16/12/08, 13:58:57
Si queres mostrar el log de un mensaje usa mejor la funcion message prepare
call function 'MESSAGE_PREPARE'
exporting
language = sy-langu
msg_id = l_msgid
msg_no = l_number
importing
msg_text = p_l_text
exceptions
function_not_completed = 1
message_not_found = 2
others = 3.

write : / p_l_text.

DavidXD_XD
16/12/08, 14:07:02
Como estas mostrando un dynpro y quieres visualizar una lista, debes dejar de lado un dialogo y pasar a un modo lista de la siguiente manera (colocarlo en el PBO)

SUPRESS DIALOG.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
* Despues de esta sentencia comienzo a escribir
WRITE: 'Escribir en Dialogo'.

abfv
17/12/08, 11:55:34
David, esto anda barbaro, pero puedo volver a la DYNPRO?



Como estas mostrando un dynpro y quieres visualizar una lista, debes dejar de lado un dialogo y pasar a un modo lista de la siguiente manera (colocarlo en el PBO)

SUPRESS DIALOG.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
* Despues de esta sentencia comienzo a escribir
WRITE: 'Escribir en Dialogo'.

andyoscky
17/12/08, 11:57:54
con call screen xxx no te vuelve al dynpro ?

abfv
17/12/08, 12:23:54
El problema es que tengo un reporte, este luego de un select option llama a una dynpro, desde la dynpro llamo a un CALL TRANSACTION a la tx:ME22N, en este proceso se genera la tabla de mensajes de error que quiero mostrar. Con la opción que me paso David se muestra el mensaje, pero luego de salir me manda a la pantalla principal del reporte y no a la Dynpro.

Saludos.

con call screen xxx no te vuelve al dynpro ?

abfv
17/12/08, 13:39:46
Gracias a todos.
Ya está le quite "AND RETURN TO SCREEN 0" y listo

SUPRESS DIALOG.
LEAVE TO LIST-PROCESSING .
* Despues de esta sentencia comienzo a escribir
WRITE: 'Escribir en Dialogo'.

DavidXD_XD
17/12/08, 14:18:01
Claro que puedes ... create un status con un boton que tenga codigo de funcion RW, y volveras a la dynpro cuando lo clickees

Austin
17/05/10, 16:27:10
Hola a tod@s!
Tenía muchas ganas de poder aportar (por fin) algo a este foro que tanto me ayuda :) ... y es lo siguiente...

Tras probar 1 y otra vez lo que he encontrado en este hilo... y que no me funcionara... (porque no podía volver a recuperar el control ya que el F3 ó F15 no funcionaban...) :mad: he encontrado esto en la ayuda de SAP... y es lo que realmnete me funciona... :rolleyes:

DENTRO DEL PBO.

MODULE supress_dialog OUTPUT.

IF NOT gv_total IS INITIAL.
LEAVE TO LIST-PROCESSING." AND RETURN TO SCREEN 1000.
SET PF-STATUS space.
SUPPRESS DIALOG.
ENDIF.

ENDMODULE. " SUPRESS_DIALOG OUTPUT

Controlo con una V.Global para que me deje jugar antes con otras funciones.

Muchas gracias a tod@s!!!

nievesmp
17/05/10, 16:42:06
data: messtab like bdcmsgcoll occurs 0 with header line.



call transaction '......' using bdcdata
* MODE 'E'
* mode 'A'
mode 'P'
messages into messtab.

loop at messtab.

if messtab-msgtyp = 'E'.


Luego imprimes la tabla messtab, según los campos que quieras imprimir, si solo los del tipo 'E' o todos o bien, debugeas para ver el contenido de la tabla messtab.


Al ver la tabla messtab en debugg, puedes luego sustituir algunos campo por por ejem. el numero de registro, o bien concatenas el campo id_coment en una variable antes del write.

Espero te sirva.

jfacero
03/11/10, 09:29:31
Y si en la dynpro has puesto un status con un par de botones, cuando vuelves a la pantalla donde haces el write te mantiene esos botones y no responde a ningun boton de la pantalla standar, como las pelotitas verde, amarilla y roja.

Sabeis como hacer que vuelva al status que suelen tener las pantallas donde se hacen los write?

Gracias!