✒️SAP BASIS El proceso de update
SAP BASIS El proceso de update
Realizar cambios en nuestro sistema SAP a traves de las transacciones es una operacion frecuente. Estos cambios ó actualizaciones, se supone que seran ejecutados completamente o no seran modificados en absoluto en la base de datos (concepto Atomico del sistema transaccional).
Si la operacion es finalizada durante la ejecucion o un error ocurre, entonces ningun cambio en la base de datos debe efectuarse. El sistema de Actualizacion de SAP (SAP Update System), es quien se encarga de esto.
1. El Sistema de Actualizacion
Desde el punto de vista tecnico, es una tecnologia que permite a las transacciones de SAP quitar carga de trabajo intensa en los cambios a nivel de la base de datos. Estos cambios se realizan luego de manera asincronica en un proceso especial denominado update work process (proceso de actualizacion).
Los procesos de dialogo pasan los datos que van a escribirse en la base de datos al proceso de actualizacion. El proceso de dialogo no espera que la actualizacion se complete para continuar, por esto es que la actualizacion es asincronica, y no en simultaneo.
La tarea del proceso de dialogo se completa con el comando ABAP COMMIT WORK; la parte de actualizacion de la transaccion comienza aqui: el message server transfiere la solicitud de actualizacion a un proceso de actualizacion. Cada paso de dialogo corresponde a una TX de BD que se completa con un comando COMMIT.
La parte de actualizacion de la transaccion SAP es ejecutada en una unica transaccion de base de datos. Es en ese momento cuando los datos se copian a las tablas de la aplicacion. Si un usuario quiere cambiar datos en esta transaccion SAP, llama a la transaccion correspondiente en dialogo, realiza las entradas o modificaciones en las pantallas y luego inicia el proceso de actualizacion cuando guarda los datos.
2. Proceso de actualizacion asincronica
A continuacion los pasos que suceden cuando se realiza una modificacion de datos en una transaccion SAP:
- El programa bloquea los registros de datos de la aplicacion para otros usuarios. Esto se logra por supuesto a traves del enqueue work process (usando el message server si fuese apropiado).
El enqueue work process realizara las entradas correspondientes en la tabla de bloqueo si es que ya no estan bloqueados los datos por otro usuario, en este caso informara 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 usuario. El programa lee los registros que seran modificados desde la base de datos y el usuario realiza las modificaciones en la pantalla de la transaccion SAP.
- En el proceso de dialogo activo, el programa llama a un modulo de funcion ABAP usando la sentencia CALL FUNCTION ... IN UPDATE TASK y escribe los cambios realizados por el usuario a las tablas de actualizacion de la base de datos. Estas tablas se conocen como las VB* porque sus nombres comienzan con las lestras "VB". Actuan como memoria temporararia y guardan los datos que seran modificados hasta que puedan ser guardados en las tablas de la aplicacion en la base de datos en una unica transaccion de base de datos.
- En el final de la parte de dialogo de la transaccion, por ejemplo cuando el usuario guarda los datos, el programa inicia la finalizacion de la transaccion con la sentencia ABAP COMMIT WORK. El proceso de dialogo que esta aca manejo el paso de dialogo dispara ahora un proceso de actualizacion.
- En base a la informacion que recibe del proceso de dialogo (datos para actualizar, clave de bloqueo), el proceso de actualizacion lee las tablas VB* para identificar los datos que pertenecen a esta transaccion SAP, ya que pueden haber mas registros en la tabla VB* al mismo tiempo de otras transacciones SAP.
- El proceso de actualizacion transfiere los cambios marcados y obtenidos de las tablas VB* a la base de datos con una sentencia unica de actualizacion en las tablas de la aplicacion y evalua la respuesta de la base. Si los cambios son realizados, el proceso de actualizacion confirma los cambios con el comando de base de datos commit luego del ultimo cambio en la base de datos y borra las entradas de las tablas VB*.
Si un error ocurre, el proceso de actualizacion dispara un rollback en la base de datos y deja la informacion en las tablas VB* marcandola como defectuosa.
- Por ultimo, las entradas en la tabla de bloqueo son eliminadas.
Transaccion SM13: permite visualizar si existen actualizaciones pendientes en el sistema SAP y cual es su estado. Aquellas que estan marcadas como erroneas no deben reprocesarse por el administrador sino por el mismo usuario utilizando la transaccion para tal fin.
 
 
 
Sobre el autor
Publicación académica de Meyer Macabeo, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Meyer Macabeo
Profesión: Consultor Sap Basis - Mexico - Legajo: BE53Z
✒️Autor de: 65 Publicaciones Académicas
🎓Cursando Actualmente: Consultor BASIS Nivel Avanzado
🎓Egresado del módulo:
Certificación Académica de Meyer Macabeo