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