LECCION PROCESO UPDATE
En el sistema SAP, un procesod e negocio es mapeado utilizando una transacción que puede contener varios cambios de
pantalla.
Los cambios en los datos efectuados en este proceso se suponen que seran ejecutados completamente o no serán modificados
en absoluto en la base de datos (concepto Atomico del sistema transaccional)i la operacion 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 de
SAP(SAP Update System), el cual se describe a continuación, es quien se encarga de esto.
1. El sistema de actualización
El sistema de actualización es una tecnologia que permite a las transacciones de SAP quitar la carga de trabajoa los
cambios de nivel en la base de datos. Estos cambios se realizan luego de una manera asincrónica en un proceso especial
denominado update work process (proceso de actualización).
Los procesos diálogo pasan los datos que vana inscribirse en la base de datos al proceso de actualización. El proceso no
espera que la actualización se complete para continuar, por esto es que la actualización es asincrónica, no en simuláneo.
Los pasos que suceden en un proceso de actualización se muestra en la siguiente figura:
La tarea del proceso de dialogo se completa con el comando ABAP COMMIT WORK; la parte de actualización de la transacción
comienza aqui: el message server transfiere la solictiud de actualización a un proceso de actualización. Aqui, cada paso
de diálogo corresponde a una transacción de base de datos, la cual se realiza completamente o no en un comando COMMIT.
La parte de actualización de la transacción SAP es ejecutada en una única transacción de base de datos. Es en ese momento cuando los daos se copian a las tablas de la aplicación. Si un usuario quiere cambiar datos en una transacción SAP, llama a la transacción correspondiente en diálogo, realiza las entradas o modificaciones en las pantallas y luego inicia un proceso de actualización cuando guarda los datos.bloqueado
2. El proceso de actualización asincronica.
Veamos ahora que pasos suceden cuando se realiza una modificación de datos en uan transacción SAP:
- El programa bloquea los registros de datos de la aplicación para otros usuarios. Esto se logra por el supuesto a través del enqueue work process (utilizando el message server si fuese apropiado).
-El enqueue work process realizará las entradas correspondientes en la tabla de bloqueo si es que ya no están bloqueados los datos por el otro usuario, en este caso informará al usuario que los datos no pueden modificarse en este momento.
- Si el enqueue work process puede realizar el bloqueo en la tabla de bloqueo, envia la clave de bloqueo (Lock key) al usaurio. El programa lee el o los registros que seran modificados desde la base de datos y el usuario realiza las modificaciones en la pantalla de la transacción SAP.
- En el proceso de diálogo active, el programa llama un modulo de función BAP usando la sentencia CALL FUNCTION ... IN UPDATE TASK y escribe los cambios realizados por el usuario a las tablas de actualización de la base de datos. Estas tablas se conocen como las tablas VB* porque sus nombres con letras "VB". Actuan como memoria temporal y guardan los datos que seran modificados hasta que puedan ser guardados en las tablas de la aplicaicón en la base de datos en una única transacción de base de datos.
-En el final de la parte de dialogo de la transacción, por ejemplo, cuando el usaurio guarda los datos ( posiblemente luego de completar otros pasos de diálogo), el programa inicia la finalización de la transacción ABAP COMMIT WORK. El proceso de diálogo que hasta acá manejo el paso de diálogo dispara ahora el proceso de actualización.
- En base a la información que recibe del proceso de diálogo ( datos para actualizar, clave de bloqueo) el proceso de actualización lee las tablas VB* para identificar los datos que pertenecen a esta transacción SAP ya que pueden haber más registros en la tabla VB* al mismo tiempo de otras transacciones SAP.
-El proceso de actualización transfiere los datos marcados y obtenidos en las tablas VB* a la based e datos 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, el proceso de actualización confirma los cambios con el comando de la base de datos commit luego del último cambio en la base de datos y borra las entradas de las tablas VB*.
Si un error ocurre, el proceso de actualizació dispara un rollback en la base de datos y deja la información en las tablas VB* marcandola como defectuosa.
Por último, las entradas en la tabla de bloqueo son eliminadas.
Transacción SM13
La transacción SM13 nos permite visualizar si existen actualizaciónes 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 usando la transacción para tal fin.