Creacion de Bloqueos ENQUEUE y DEQUEUE

to-post
sap-abap
Etiquetas: #<Tag:0x00007fb8db33a7e8> #<Tag:0x00007fb8db33a590>

#1

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.

Código Fuente

*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.


Diferencias: objeto de bloqueo y func ENQUEUE
Bloquear transacción
Bloquear Campos de Una Tabla
#2

Muy buen aporte @Alvan1, sigue así.


#3

Muy bueno tu aporte @Alvan1!!! :+1:


#4

Excelente aporte! Esto me podría servir para futuro :smiley:


#5

###Excelente aporte, mensaje promocionado


#6

un post fue trasladado a un nuevo tema: Diferencias ENQUEUE_E_TABLE y DEQUEUE_E_TABLE


#7

Excelente @Alvan1!!! :+1: Muy buen tuto sobre el punto


#8

El aporte esta muy completo la verdad, cuando me toco hacerlo a mi hace tiempo, me hubiera gustado tener este post.


#9

Perfectamente explicado @Alvan1 .


#10

Muchas gracias a todos pos sus comentarios es mucho muy satisfactorio saber que les ha gustado este y otros aportes, gracias por sus “me gusta” son una manera muy buena de motivar al creador para seguir dando aportes de beneficio para la comunidad. Un saludo a todos los colegas desde México. :smiley:


#11

Me gustó este artículo, en verdad muy útil para fines de seguridad de datos.

Gracias por el aporte,

Saludos


#12

gracias men, me refresco.


#13

un post fue trasladado a un nuevo tema: Bloquear transaccion


#14

¡Muchas gracias por la información de este tutorial! He aprendido una cosa nuova.

Por favor ¿puedes poner el código fuente para crear, eliminar, etc. los bloqueos? El link que indicas h_tp://1drv.ms/1OUNCdL de (OneDrive) indica que “el vínculo no funciona” y agradecería mucho ese código para comprender un poco mejor el asunto.

Gracias por la información y se aprecia el esfuerzo.

Un saludo


#15

@Alvan1, de acuerdo a lo que indica @yopepon, fijate si podes subir el código en un gist.github.com


#16

Una disculpa por no responder antes, he tenido un poco de sobre carga de trabajo pero aqui ando, @SidV ahorita subo el manual de introducción SAP, saludos.


#17

Gracias @Alvan1 por subir el código. :grinning:

Un saludo


#18

un post fue trasladado a un nuevo tema: Sy-subrc = 4 (No encuentra)


#19

Consultas, por favor abrir temas nuevos :thumbsup: