Ver Mensaje Individual
  #2  
Viejo 13/06/12, 14:36:47
SAPING SAPING is offline
Senior Member
 
Fecha de Ingreso: may 2010
Localización: Buenos Aires, Argentina
Mensajes: 199

Guarda los mensajes generados en una tabla interna de mensajes de la siguiente manera:

CALL TRANSACTION 'BP' USING i_bdc_tab MODE 'N' MESSAGES INTO i_msgtab.

Luego, yo lo hice en un form, revisas la tabla y mostras el ultimo generado:

FORM f_bi_errors .
DATA: wa_t100 TYPE t100,
wl_msgtab TYPE bdcmsgcoll.

* REVISA HACIENDO UN DEBUG SI ESE EL EL ID Y NRO DE MENSAJE QUE
* CORRESPONDE AL EXITO DEL BI.
READ TABLE i_msgtab INTO r_msgtab WITH KEY msgid = 'F2'
msgnr = '174'.
* busco el num de cliente generado
IF sy-subrc IS INITIAL.

IF gv_kunnr IS INITIAL.
MOVE r_msgtab-msgv1 TO gv_kunnr.
ENDIF.

ELSE.
* ocurrio algun error durante la creacion del cliente
LOOP AT i_msgtab INTO r_msgtab.
CLEAR: wg_zdmt010, wl_msgtab.
wl_msgtab = r_msgtab.
AT LAST.

SELECT SINGLE *
FROM t100
INTO wa_t100
WHERE sprsl = wl_msgtab-msgspra
AND arbgb = wl_msgtab-msgid
AND msgnr = wl_msgtab-msgnr.
IF sy-subrc = 0.
wg_zdmt010-msgtx = wa_t100-text.
IF wg_zdmt010-msgtx CS '&1'.
REPLACE '&1' WITH wl_msgtab-msgv1 INTO wg_zdmt010-msgtx.
REPLACE '&2' WITH wl_msgtab-msgv2 INTO wg_zdmt010-msgtx.
REPLACE '&3' WITH wl_msgtab-msgv3 INTO wg_zdmt010-msgtx.
REPLACE '&4' WITH wl_msgtab-msgv4 INTO wg_zdmt010-msgtx.
ELSE.
REPLACE '&' WITH wl_msgtab-msgv1 INTO wg_zdmt010-msgtx.
REPLACE '&' WITH wl_msgtab-msgv2 INTO wg_zdmt010-msgtx.
REPLACE '&' WITH wl_msgtab-msgv3 INTO wg_zdmt010-msgtx.
REPLACE '&' WITH wl_msgtab-msgv4 INTO wg_zdmt010-msgtx.
ENDIF.
CONDENSE wg_zdmt010-msgtx.
CONCATENATE '(' cg_soc wg_zdmt003-bukrs ')' wg_zdmt010-msgtx INTO wg_zdmt010-msgtx SEPARATED BY space.
APPEND wg_zdmt010 TO tg_zdmt010.

ENDIF.

ENDAT.

ENDLOOP.

ENDIF."sy-subrc IS INITIAL.

ENDFORM. " F_BI_ERRORS


La tabla de mensajes y la estructura son del siguiente tipo:
DATA BEGIN OF i_msgtab OCCURS 10.
INCLUDE STRUCTURE bdcmsgcoll.
DATA END OF i_msgtab.
DATA: r_msgtab TYPE bdcmsgcoll.


Cualquier cosa avisa!
Slds.
Responder Con Cita