Close

mayo 1, 2013

Evitar dump al hacer commit o rollback en una función

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.
Mensaje de error dump al hacer commit o rollback en funcion

Solución al problema.

Lo que ha sucedido en este caso es que hemos llamado una funcion de esta forma:

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