Ver Mensaje Individual
  #2  
Viejo 11/11/15, 19:06:29
joau_fedipe joau_fedipe is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 79
Smile Call transaction no me guarda mensaje de error

Hola Chisto,
1. para ir paso a paso visualizando la ejecución el modo debe ser igual a 'A'.
2. el call transaction que haces en el programa debería tener más o menos esta estructura:

DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
DATA: L_MSTRING(480).

REFRESH MESSTAB.
CALL TRANSACTION TCODE USING BDCDATA
MODE CTUMODE
UPDATE CUPDATE
MESSAGES INTO MESSTAB.
IF SY-SUBRC NE 0.

LOOP AT MESSTAB.
SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA
AND ARBGB = MESSTAB-MSGID
AND MSGNR = MESSTAB-MSGNR.
IF SY-SUBRC = 0.
L_MSTRING = T100-TEXT.
IF L_MSTRING CS '&1'.
REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.
REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.
REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.
REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.
ELSE.
REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.
ENDIF.
CONDENSE L_MSTRING.
WRITE: / MESSTAB-MSGTYP, L_MSTRING(250).
ELSE.
WRITE: / MESSTAB.
ENDIF.
ENDLOOP.

ENDIF.

en la tabla interna MESSTAB debe registrarse todos los mensajes de error.

Espero que lo enviado te ayude en algo.

Saludos.
Responder Con Cita