En ocasiones puedes obtener un dump (error de tiempo de ejecución) en SAP cuando se ejecuta una función en modo update task y esta misma hace un rollback o commit, si te sucede esto veras un error con la siguiente descripción:
Texto breve
Non-update function module called for update
¿Qué ha sucedido?
Error in the ABAP Application Program
The current ABAP program “ZTEST” had to be terminated because it has
come across a statement that unfortunately cannot be executed.
A function module was called incorrectly.
Anál.errores
The function module “ZTMP” was called with the addition
“… IN UPDATE TASK”.
However, it is not flagged in the Function Library as
executable in the update task.
Solución al problema.
Lo que ha sucedido en este caso es que hemos llamado una funcion de esta forma:
call function 'ZTMP' in update task exporting prueba = 'X'.
Y dentro de la función hacemos internamente un commit o un rollback.
Para solucionar el problema debemos agregar en la función una validación para determinar si debemos o no hacer un commit o rollback determinado si la función fue llamada en modo IN UPDATE TASK, usando la funcion de SAP TH_IN_UPDATE_TASK
DATA: lv_in_update TYPE i. CALL FUNCTION 'TH_IN_UPDATE_TASK' IMPORTING in_update_task = lv_in_update. "Verificamos si podemos hacer el update IF lv_in_update = 1. "Funcion llamada in update task "No hacer COMMIT o ROLLBACK !!! ELSE. "No se ha llamado in update task "Hacer COMMIT o ROLLBACK si es necesario ENDIF.
esto es lo que me dice To process the problem further, contact you SAP system
administrator.
Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.
ejecute de esta manera y el error continua abra alguna manera de solucionarlo
El problema debe ser otro, puedes ver mas detalles e incluso la linea que genero el error en la transaccion ST22
Para utilizar la opción de ‘IN UPDATE TASK’, es necesario que en el atributo del Function Module tenga activada la opción de Modulo actualización ya que si no lo tiene marca este DUMP
Gracias por tu comentario Diego