✒️Los objetos de bloqueo en SAP
Los objetos de bloqueo en SAP
Utilización de bloqueos
Si varios usuarios quieren tener acceso a un mismo recurso, éstos deben estar sincronizados para garantizar la consistencia de los datos.
Los bloqueos, constituyen un conveniente método para coordinar los accesos de cada usuario a los recursos. Cada usuario requiere de un bloqueo antes de tener acceso a datos críticos.
Si un programa de diálogo contiene estatutos de actualización, el sistema de base de datos pone los bloqueos apropiados.
Al final de una transacción de base de datos, el sistema de base de datos libera todos los bloqueos puestos durante la transacción.
No obstante, el sistema R/3 realiza un commit implícito a la base de datos en cada cambio de pantalla, el bloqueo de base de datos puesto durante un paso de dialogo, solo es retenido mientras no termine este paso e inicie el siguiente.
Los bloqueos de base de datos son insuficientes si se desea que el bloqueo tenga una duración de varios cambios de pantalla.
En el contexto de bloqueo de base de datos de SAP, hay una transacción SAP la cual coloca los bloqueos en una tabla (lock table) para que los registros de la tabla sean procesados.
La transacción SAP obtiene información sobre el suceso del bloqueo para retornar un códigode retorno.
Al final del proceso, los bloqueos deben ser liberados explícitamente por el programa de diálogo.
Si el usuario terminar el programa de dialogo ( tecleando en la línea de comandos /n, o dentro del programa se ejecuta un estatuto LEAVE PROGRAM o LEAVE TO TRANSACTION; o si es desplegado un mensaje tipo A), los bloqueos son liberados automáticamente.
Para realizar un bloqueo, primeramente se define un objeto de bloqueo en diccionario de ABAP/4. Estos objetos cubren las tablas que van a ser bloqueadas.
Consiste de una tabla primaria, pero también se pueden agregar otras tablas secundarias para usar llaves foráneas dependientes.
El nombre de un objeto para clientes debe iniciar con EY o EZ.
Los argumentos del bloqueo son los campos que forman la llave de las tablas.
Por cada tabla se puede definir el modo de bloqueo: Modo E para exclusivo, modo S para compartido.
Cuando un objeto bloqueado ha sido activado exitosamente, el sistema genera unos módulos de función ENQUEUE y DEQUEUE
Cuando se llama un módulo de función ENQUEUE, el programa de diálogo coloca un bloqueo.
Los parámetros de exportación que se refieren al bloqueo de argumentos, identifican las entradas de la tabla o las entradas a ser bloqueadas.
Si uno de estos parámetros no contienen un valor, el sistema lo trata como una especificación genérica.
Si se desea borrar todos los bloqueos de la tabla, los cuales han sido puestos en tu programa se puede usar el módulo de función DEQUEUE_ALL.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Helen Silva Ruiz
Sobre el autor
Publicación académica de Juan Carlos Ayala Chira, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Carlos Ayala Chira
Profesión: Ingeniero de Sistemas E Informática - Peru - Legajo: KQ70J
✒️Autor de: 97 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Juan Ayala