Crear Objeto de bloqueo

¿Cómo crear un Objeto de bloqueo en SAP?
Un objeto de bloqueo es una unión virtual de varias tablas SAP que sincroniza el acceso simultáneo de dos usuarios al mismo set de datos.
La solicitud y/o la liberación de los bloqueos se realizan en la programación de las transacciones de diálogo mediante la llamada de determinados módulos de funciones que se generan automáticamente de la definición de los objetos de bloqueo. Estos objetos deben crearse explícitamente en el diccionario de datos ABAP, transacción SE11.
Para crear un objeto de bloqueo debe seguir los siguientes pasos:

  1. Debe definir un objeto de bloqueo en el Dictionary ABAP cuyo nombre debería empezar con E.
  2. Debe incluir los módulos de funciones para la solicitud y/o liberación de bloqueos en la programación de las transacciones de diálogo correspondientes. Los módulos se crearán automáticamente al activar el objeto de bloqueo.

En esta lección creamos el objeto de bloqueo EZ_FACT_LOGALI que se utilizará para bloquear en modo escritura la tabla de base de datos ZFACT_LOGALI creada en el tutorial ¿Cómo crear una Tabla de Base de Datos (Transparente) en SAP ABAP?

  1. En la transacción SE11 del diccionario de datos ABAP creamos el objeto de bloqueo EZ_FACT_LOGALI.01 29
    Tal como SAP recomienda, el nombre del objeto de bloqueo debe empezar por ‘E’. De hacerlo por Z, nos pedirá clave para incluirlo en el estándar.
  2. Rellenamos el campo obligatorio Descripción breve. En la misma pestaña Atributos tenemos la opción Permitir RFC. Con esta opción permitimos que se realicen llamadas en remoto desde otros sistemas SAP. En caso de que active para un objeto de bloqueo existente, deberá asegurarse de que la llamada de los módulos de funciones generados se efectúe con parámetros adecuados al tipo. Antes de activar el objeto de bloqueo con la nueva opción, debería verificar todos los programas que utilicen los módulos de funciones en cuestión. Para este ejemplo no activamos la opción Permitir RFC.02 27
  3. En la pestaña Tablas añadimos la tabla de base de datos ZFACT_LOGALI y seleccionamos la opción Bloqueo escritura.03 26El modo de bloqueo Especifica cómo se sincroniza el acceso de varios usuarios a los registros de la tabla.Son posibles los siguientes modos de bloqueo:
    • Bloqueo de escritura

    Los datos bloqueados sólo los puede leer o tratar un usuario. El sistema rechazará tanto la solicitud de otro bloqueo de escritura como de un bloqueo de lectura.

    • Bloqueo de lectura

    Varios usuarios pueden acceder simultáneamente en modo lectura a los mismos datos. En cuanto un usuario trata los datos, un segundo usuario no tendrá acceso a dichos datos.  Se aceptarán las solicitudes de otros bloqueos de lectura, aunque provengan de otros usuarios. El sistema rechazará un bloqueo de escritura.

    • Bloqueo de escritura ampliada

    Una misma transacción puede solicitar varias veces bloqueos de escritura y volverlos a eliminar sucesivamente. Sin embargo, sólo puede solicitar una única vez un bloqueo de lectura ampliado. El sistema rechazará cualquier otra solicitud de bloqueo.

    • Bloqueo optimista (“O”):

    Los bloqueos optimistas se comportan como bloqueos de lectura y pueden convertirse en bloqueos de escritura.

    • Promover bloqueo optimista (“R”)

    Convierte un bloqueo optimista en un bloqueo de estructura.

    • Verificación de colisión/Verificación de promoción (“U”, “V”, “W”, “C”)

    Verifica si es posible uno de los bloqueos correspondientes (“E”, “S”, “X”, “O”); sin embargo, no fija ningún bloqueo.
    Aparte de la tabla bloqueada podemos bloquear tablas secundarias relacionadas con la tabla primaria que bloqueamos. Para eso tenemos que utilizar la opción del botón Añadir.04 27
    La tabla que utilizamos para esta lección no tiene relaciones con otras tablas, por lo tanto, bloqueamos sólo la tabla con bloqueo escritura.

  4. Activamos el objeto de bloqueo asignando el paquete de desarrollo y la orden de transporte. Al activar el objeto el sistema genera dos módulos de funciones con la nomenclatura DEQUEUE_NOMBRE_OBJETO_BLOQUEO y ENQUEUE_NOMBRE_OBJETO_BLOQUEO que nos permiten solicitar y liberar el bloqueo sobre la tabla. Para ver los módulos de funciones creados navegamos en el menú en Pasar aàMódulo bloqueo.05 21
  5. Ya tiene el objeto de bloqueo que se puede utilizar para bloquear en modo escritura la inserción de los registros sobre la tabla de base de datos. Para más detalles sigue leyendo el tutorial ¿Cómo solicitar/liberar el acceso a una tabla utilizando un objeto de bloqueo en SAP?

2 comentarios de “Crear Objeto de bloqueo

  1. Fernando Morales dice:

    Falta añadir que un objeto de bloqueo debe (SAP recomienda) que empiece por ‘E’. De hacerlo por Z, nos pedirá clave para incluirlo en el estándar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Suscríbete al blog
Recibe las últimas actualizaciones y contenidos exclusivos directamente en tú correo electrónico.
Inscribime
close-link