Hola comunidad, el tema de hoy se trata acerca de los bloqueos que uno puede crear para limitar el acceso a los usuarios en ciertos momentos que esto se requiera. El manejo de estos bloqueos nos ayudara a siempre mantener la integridad de nuestra información.
Por ejemplo supongamos que tenemos una transacción que es muy utilizada por los usuarios y ademas desde ella se actualizan registros. Debemos de tener mucho cuidado con la integridad de la información, para evitar por ejemplo el visualizar algún registro que en ese momento se le esta actualizando la información, o por ejemplo evitar que 2 usuarios modifiquen la información al mismo tiempo, etc.
Y para esos casos nos ayudaran los bloqueos que a continuación muestro paso a paso.
Creacion del Bloqueos SE11
Debemos de crear el bloqueo que necesitamos desde la transacción SE11, por convencionalismo el nombre de los bloqueos deben de empezar ya sea con EZ o EY.
Seleccionamos el check que diga Objeto de bloqueo, y en este caso le he llamado a mi bloqueo EZCONSAT, Posteriormente damos clic en crear.
En la siguiente pantalla estableceremos una descripción breve para nuestro bloqueo y damos enter.
En la solapa de tablas es donde estableceremos nuestra tabla que queremos bloquear y el modo de bloqueo que requerimos, en este caso mi tabla se llama ZHR_CONSSAT y el modo de bloqueo sera Bloqueo lectura. Al terminar damos enter.
Nuestras llaves primarias serán exportadas en automático a la solapa de Param.bloqueo, en la cual tendremos la oportunidad de seleccionar que llave queremos, en lo personal en este paso no hay mover absolutamente nada y dejarlo como lo establezca el sistema
Por ultimo solo guardaremos los cambios y activaremos el bloqueo.
Una vez que terminamos la configuración del bloqueo, automáticamente el sistema creara los pertinentes ENQUEUE y DEQUEUE en el modulo de función de nuestro bloqueo (EZCONSAT) para su posterior uso.
Visualización de las funciones ENQUEUE y DEQUEUE
Accesaremos a la transaccion SE37 (Modulo de Funciones)
En el campo modulo de funciones escribiremos entre asteriscos el nombre de nuestro bloqueo y posteriormente oprimimos F4, para visualizar lo que ha creado el sistema.
Como se muestra en la imagen ya tenemos nuestro ENQUEUE para el bloqueo de informacion y el DEQUEUE para el desbloqueo de la misma.
Implementacion de Nuestros Módulos de Función en programa ABAP
Hay 3 funciones principales para la utilización de bloqueos:
1.- ‘ENQUEUE_xxxxxx’: esta función nos servirá para implementar el bloqueo en base a las llaves primarias de nuestra tabla. Siempre que establecemos este bloqueo lo podemos visualizar en transacción SM12 ya se para eliminarlo o simplemente visualizarlo.
2.- ‘DEQUEUE_xxxxxx’: esta función nos permitirá para liberar los bloqueos que con anterioridad establecimos, y asi poder seguir usando la información que bloqueamos.
3.-‘ENQUE_READ’: por ultimo pero no menos importante tenemos esta función que nos permitirá leer la tabla en la cual se establecen todos los bloqueos y así saber cuando si o cuando no podemos acceder a la información.
Navegación Transacción SM12
Dentro de dicha transacción podremos ver los bloqueos que tienen las tablas, igualmente dentro de la misma transacción podemos eliminar bloqueos.
Una vez dentro de la transacción, nos pedira ciertos valores que son 100% opcionales, para visualizar solo damos enter.
Nos mostrara los bloqueos activos al momento de la consulta.
Ejecución de Programa
Por ultimo les dejo un pequeño código con el cual podrán crear, eliminar y verificar bloqueos que tengamos activos y jugar con ellos y así entender mas el tema de bloqueos
*Resultado de la ejecución del programa.
*Nota. Los parámetros de exportación del ENQUEUE y DEQUEUE dependerán de las llaves primarias que tenga nuestra tabla.
Sin mas por el momento me despido de ustedes colegas espero sea de su agrado este tema.
Saludos.