Ver Mensaje Individual
  #7  
Viejo 25/01/11, 08:45:41
jarabas jarabas is offline
Senior Member
 
Fecha de Ingreso: ene 2010
Mensajes: 109
Has probado con un "COMMIT WORK." o con la función BAPI_TRANSACTION_COMMIT despues de la llamada a la transacción?

Apuntar que deberías comprobar los mensajes de vuelta de la transacción, para controlar posibles errores, aunque con esa tabla y todo, algun batch input te la puede jugar y no devolver error cuando si lo hubo.

La instrucción te quedaría así:
DATA: it_messages TYPE STANDARD TABLE OF bdcmsgcoll.

call transaction 'ZNG8' using i_bdc_data
MESSAGES INTO it_messages
mode 'A'
update 'S'.

y para recuperar el texto explicativo de cada mensaje, ya que sino pueden sonar a chino, sería de la siguiente manera:

data: lw_msgid LIKE sy-msgid,
lw_msgno LIKE sy-msgno,
lw_msgv1 LIKE sy-msgv1,
lw_msgv2 LIKE sy-msgv2,
lw_msgv3 LIKE sy-msgv3,
lw_msgv4 LIKE sy-msgv4.

LOOP AT it_messages INTO gw_messages.

MOVE-CORRESPONDING gw_messages TO gw_mensajes.

lw_msgid = gw_mensajes-msgid.
lw_msgno = gw_mensajes-msgnr.
lw_msgv1 = gw_mensajes-msgv1.
lw_msgv2 = gw_mensajes-msgv2.
lw_msgv3 = gw_mensajes-msgv3.
lw_msgv4 = gw_mensajes-msgv4.

CALL FUNCTION '/SAPTRX/GET_MESSAGE_TEXT'
EXPORTING
msgid = lw_msgid
msgno = lw_msgno
msgv1 = lw_msgv1
msgv2 = lw_msgv2
msgv3 = lw_msgv3
msgv4 = lw_msgv4
IMPORTING
messagetext = lw_respon
EXCEPTIONS
no_message_retrieved = 1
OTHERS = 2.

MOVE: lw_respon TO gw_mensajes-msgv1.

APPEND gw_mensajes TO it_mensajes.
ENDLOOP.


Saludos. Espero te sirva

Úlima edición por jarabas fecha: 25/01/11 a las 09:40:17.
Responder Con Cita