|
#1
|
|||
|
|||
No entiendo algo de tu descripción del problema:
Si tienes un Batch Input, el log YA ESTA resuelto en la SM35.... ¿o cargas una BDCDATA para hacer Call Transaction??? En ese caso al recuperar los mensajes (transacc por transacc.) deberás saber de antemano cuál es el correcto (type=S, ID=XX, number=yyy => "registro actualizado correctamente") y preguntar si ESE específicamente está entre los mensajes de la Transacc. que acaba de realizarse, si NO se encuentra es que NO se actualizó la tabla de SAP y por lo tanto tu puedes programar lo que quieras (un mensaje al usuario; cargar los datos en una tabla para un futuro reproceso; etc) |
#2
|
||||
|
||||
Prueba este código, por si te vale .....
DATA: BEGIN OF messages OCCURS 0. INCLUDE STRUCTURE bdcmsgcoll. DATA: END OF messages. batch input .... batch input .... batch input .... batch input .... CALL TRANSACTION 'XXXXX' USING bdcdata MODE 'N' UPDATE 'A' MESSAGES INTO messages. LOOP AT messages WHERE msgtyp = 'E' OR msgtyp = 'A'. ENDLOOP. IF sy-subrc EQ 0. MESSAGE ID messages-msgid TYPE 'I' NUMBER messages-msgnr WITH messages-msgv1 messages-msgv2. MESSAGE i398(00) WITH 'No se pudo crear el registro'. e_flg_error = true. ENDIF. REFRESH messages. REFRESH bdcdata. CLEAR: bdcdata, messages. Saludos
__________________
Úlima edición por tomasm fecha: 19/11/07 a las 13:51:22. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|