
Lección 7: Los objetos de bloqueo en SAP
En una transacción de dialogo, reporte o cualquier tipo de programa donde varios usuarios quieren tener acceso a una misma tabla de base de datos, éstos deben estar sincronizados para garantizar la consistencia de los datos de la tabla. Para sincronizar estos accesos se utilizan los bloqueos de SAP. Los bloqueos constituyen un conveniente método para coordinar los accesos de cada usuario a los recursos. Antes de acceder a los datos críticos, cada usuario realizará un bloqueo de los mismos de modo de que ningún otro usuario pueda hacerlo al mismo tiempo.
Para generar un objeto de bloqueo, se utiliza la transacción de diccionario de datos, SE11. Se selecciona la opción “Bloqueo de objeto” y se indica el nombre del mismo. En la pantalla siguiente se deberá asignar una descripción al objeto. En la pestaña “Tablas”, habrá que indicar la tabla a la que se le creará el objeto de bloqueo y el tipo de bloqueo, en el campo “Modo de bloqueo”. En la pestaña “Parámetros de bloqueo”, se verán los campos por los que se realizará el bloqueo en la tabla indicada. Habrá que guardar y activar el objeto de bloqueo.
Una vez generadp para ver los módulos de bloqueo creados, si se va a “Ir a/Módulos de bloqueo”, se verá los módulos de bloqueo y desbloqueo generados para la tabla en cuestión.
Para utilizar los módulos de bloqueo y desbloqueo, habrá que crear un programa donde se deberá hacer una llamada tanto al módulo de bloqueo como de desbloqueo mediante el botón "Pattern". Para llamar a los códigos de bloqueo (ENQUEUE) y desbloqueo (DEQUEUE), se utiliza la llamada a una función.
Para bloquear un campo en particular, se deberán poner los dos valores que componen una clave. Para desbloquear los valores, habrá que indicar los valores particulares a desbloquear.
A través de la transacción SM12, se podrá ver un listado de todas las tablas bloqueadas en el sistema.