VII. PROCESO DE UPDATE
El proceso de negocio es mapeado utilizando una transacción que puede contener varios cambios de pantalla. Se supone que los cambios en los datos efectuados en este proceso serán ejecutados completamente o no serán modificados en absoluto en la base de datos.
Si la operación es finalizada durante la ejecución o un error ocurre, entonces ningún cambio en la base de datos debe efectuarse. El sistema de Actualización SAP se encarga de esto.
1. El sistema de actualización
Es una tecnología que permite a las transacciones de SAP quitar carga de trabajo intensa en ls cambios a nivel de base de datos. Estos cambios se realizan luego de manera asincrónica en un proceso especial denominado update work process.
Los procesos de diálogo pasan los datos que van a escribirse en la BD al proceso de actualización. El proceso de diálogo no espera que la actualización se complete para continuar, por esto es que la actualización es asincrónica.
2. Proceso de actualización asincrónica
Pasos para la actualización:
1. El programa bloquea los registros de datos de la aplicación para otros usuarios. Si se encuentran bloqueados informa que los datos no pueden modificarse. En caso de no estar bloqueados envía la clave de bloqueo al usuario.
2. El programa lee el o los registros que serán modificados desde la BD y el usuario realiza las modificaciones en la pantalla de transacción SAP.
3. En el proceso de diálogo, el programa llama a un módulo de función ABAP usando la sentencia CALL FUNCTION … IN UPDATE TASK, y escribe los cambios realizados por el usuario a las tablas de actualización de la BD. Estas tablas se conocen como tablas VB, ya que sus nombres comienzan con VB*. Actúan como memoria temporal y guardan los datos que serán modificados hasta que puedan ser guardados en las tablas de la aplicación en la BD en una única transacción de BD.
4. Cuando el usuario termina de realizar modificaciones, el programa inicia la finalización de la transacción con la sentencia ABAP COMMIT WORK. Esto dispara el proceso de actualización.
5. Con la información que recibe del proceso de diálogo el proceso de actualización lee las tablas VB* para identificar los cambios que pertenecen a la transacción SAP especifica.
6. El proceso de actualización transfiere los cambios marcados y obtenidos de las tablas VB* a la BD con una sentencia única de actualización en las tablas de la aplicación y evalúa la respuesta de la base. Si los cambios son realizados, la actualización confirma con el comando commit, luego del último cambio elimina los datos de las tablas VB*. Si ocurre un error el proceso de actualización dispara un rollback en la base de datos y marca los datos en las tablas VB* como defectuosos.
7. Por último los bloqueos son eliminados.
Transacción SM13: La transacción SM13 nos permite visualizar si existen actualizaciones pendientes en el sistema SAP y cuál es su estado. Aquellas que están marcadas como erróneas no deben reprocesarse por el administrador sino por el mismo usuario utilizando la transacción para tal fin.