|
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
merci
Hola compañero,
agradezco mucho tu información. Hice la gestión de los mensajes de una forma parecida a la tuya. Aunque de momento solo me puse a mirar los mensajes por debuger. Ahora entiendo que tengo que procesarlos y meterlos en una tabla de LOG, verdad? Saludos abaperos! |
#3
|
|||
|
|||
Deberías mostrar los errores, yo por experiencia digo que los batch son un poco "puñeteros", puede que no te devuelva un E y si haya sucedido un error.
Por cierto con lo que te puse ya te actualiza la base de datos? Saludos. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|