
El servicio de actualización de SAP
El servicio de actualización en SAP es crucial porque gestiona las modificaciones solicitadas por los usuarios en la base de datos. Estas actualizaciones pueden generarse a través de procesos de trabajo, conocidos en SAP como Work Processes, que son responsables de atender las solicitudes tanto de los usuarios como del propio sistema.
Proceso de Trabajo (Work Process)
El servidor SAP recibe constantemente solicitudes de los usuarios, con varias solicitudes por cada pantalla de cada transacción en la que un usuario navega. Dado que no es posible procesarlas todas al mismo tiempo, SAP utiliza un sub-sistema de despacho, conocido como el dispatcher, que se encarga de gestionar el procesamiento de las solicitudes y asignarlas a los procesos de trabajo.
En SAP, existen 7 tipos principales de procesos de trabajo:
-
D (Diálogo): Se utilizan para cumplir con todas las solicitudes de ejecución de pasos de diálogo activados por un usuario activo o para ejecutar programas de diálogo.
-
V (Update): Ejecutan solicitudes de actualización o cambios en la base de datos de manera asincrónica, que son controlados por una instrucción COMMIT WORK en un proceso de trabajo de diálogo.
-
E (Enqueue): Administran la tabla de bloqueo en la memoria compartida y ejecutan las operaciones de bloqueo para garantizar que las transacciones de SAP se sincronicen correctamente.
-
B (Background): Ejecutan programas sin interacción del usuario, o trabajos en segundo plano que dependen del tiempo o son controlados por eventos.
-
M (Message): Son responsables de enrutar los mensajes entre los servidores de aplicaciones SAP.
-
G (Gateway): Manejan la transferencia de mensajes entre sistemas SAP.
-
S (Spool): Pasan flujos de datos secuenciales a impresoras, archivos o bases de datos en formato de impresión.
A través de la transacción estándar SM50, es posible visualizar los procesos de trabajo que se están ejecutando en ese momento en el servidor, junto con detalles importantes como el tipo de proceso de trabajo, su estado, el programa que se ejecuta, el mandante, el usuario de SAP, la acción y la tabla de la base de datos que se está modificando.
Actualización Asincrónica y Sincrónica
Las actualizaciones en la base de datos dentro de SAP pueden ser de dos tipos:
-
Asincrónica: Este es el tipo de actualización más común. Aquí, el sistema gestiona el requerimiento de actualización del usuario en un proceso separado del proceso de diálogo. El beneficio de este enfoque es que el usuario puede continuar trabajando sin esperar a que el sistema termine de actualizar la base de datos, lo que mejora el rendimiento.
-
Sincrónica: Aunque menos frecuente, en este caso la petición de actualización de la base de datos se genera en el mismo proceso de trabajo que gestiona el resto de las peticiones del usuario. Esto obliga al proceso de diálogo o batch a esperar a que se completen las actualizaciones en la base de datos antes de continuar, lo que puede impactar el rendimiento.
Procesos de Actualización V1 y V2 (LUWs)
Las LUWs (Logical Units of Work) son bloques autoconsistentes de datos cuya actualización en la base de datos se lleva a cabo de forma completa. Si ocurre algún problema en la base de datos, la grabación de una LUW no se realiza, evitando que los datos queden en un estado inconsistente.
La actualización asincrónica se divide en dos tipos:
-
V1: Corresponde a componentes de actualización críticas primarias. Estas actualizaciones deben realizarse lo antes posible, ya que son esenciales para garantizar la consistencia de los datos.
-
V2: Se refiere a componentes de actualización secundarias no críticas, que pueden procesarse después de las actualizaciones V1.
Para asegurar la consistencia, las actualizaciones V1 se procesan bajo la supervisión del gestor de bloqueos de SAP, que impide que varias modificaciones sobre el mismo objeto se realicen al mismo tiempo.
Monitorización del Estado de las Actualizaciones del Sistema
SAP proporciona herramientas para la activación, desactivación y monitorización de las actualizaciones en el sistema. En caso de que ocurra un problema grave en la base de datos, SAP reacciona desactivando la actualización para evitar que las modificaciones en la base de datos se realicen hasta que se resuelva el problema. Esta desactivación automática garantiza la integridad de los datos.
El estado de las actualizaciones se puede gestionar desde la transacción SM13, donde se muestra si las actualizaciones están activas o desactivadas, y permite monitorear aquellas que fallaron o están en curso. Si una actualización es desactivada, el sistema registra el proceso y usuario que causaron el problema, facilitando el diagnóstico y la resolución.
Gestión de Bloqueos de Objetos
SAP también incluye un sistema de gestión de bloqueos que evita que un objeto sea modificado de manera concurrente por diferentes usuarios. Un objeto puede ser un documento contable, una solicitud de compra, o una entrada en una tabla de la base de datos. Cuando un usuario intenta modificar un objeto que ya está siendo modificado por otro, SAP genera un registro de bloqueo, y el segundo usuario recibe un mensaje de error informándole de que el objeto está bloqueado.
Los bloqueos se establecen al inicio de una transacción de modificación y no se liberan hasta que el usuario guarda los cambios y la transacción finaliza. La gestión de estos bloqueos puede visualizarse y eliminarse en la transacción SM12, que ofrece una vista de todos los bloqueos activos en el sistema, junto con opciones para filtrarlos por tabla, usuario, o mandante.