🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️Los objetos de bloqueo en SAP

Los objetos de bloqueo en SAP

Los objetos de bloqueo en SAP

6.1. Concepto de transacción.

6.1.1. Transacción de Base de Datos ( DB LUW )

Una transacción de base de datos es introducida por un punto de sincronización el cual es puesto por la aplicación de la base de datos ( en el caso del sistema R/3).

En el curso de una transacción de base de datos, el sistema realiza actualizaciones de la tabla, en requerimientos hechos por el sistema R/3. Las entradas a la tabla modificada permanecen bloqueadas hasta que la transacción haya terminado.

Después de cada actualización de la base de datos, el sistema de base de datos informa al sistema R/3 que la actualización fue exitosa o no exitosa, en forma de un código de retorno.

Una transacción de base de datos es terminada por otro punto de sincronización puesto por el sistema R/3 el cual envía un COMMIT para confirmar las actualizaciones de las tablas, o un ROLLBACK al sistema de base de datos. En respuesta, el sistema de base de datos realiza un commit para confirmar las actualizaciones de la tabla, o realiza un rollback el cual cancela las actualizaciones realizadas por la transacción de base de datos. En este caso el estado 2 es idéntico al estado 1.

En ambos casos, los bloqueos hechos por la base de datos son liberados.

6.1.2. Transacción SAP.

Una transacción SAP consiste en procesos de dialogo. Un proceso de dialogo comienza cuando el usuario presiona Enter, cuando activa una función presionando alguna tecla función, hace un doble clic o escoge una función de un menú. Esto termina cuando la siguiente pantalla es desplegada.

En el curso de un proceso de dialogo, los módulos PAI pertenecen a la pantalla en ejecución y los módulos PBO pertenecen a la siguiente pantalla que es ejecutada.

Cada proceso de dialogo puede contener requerimientos de actualización (UPDATE, INSERT, DELETE).

6.1.3. Transacción SAP y Transacción DB.

Después de cada proceso de dialogo, el sistema R/3 automáticamente pasa un commit de base de datos al sistema de base de datos. El sistema de base de datos distribuye los requerimientos de actualización de un proceso de dialogo individual pasando por varias transacciones.

Un rollback en un proceso de dialogo no tiene efecto en actualizaciones previamente realizadas a la base de datos en procesos de dialogo previos.

6.1.4. Transacción SAP y Actualizaciones Asíncronas.

Una actualización asíncrona permite combinar un total de actualizaciones realizadas por procesos de dialogo consecutivos de una transacción SAP, en una unidad conocida como Logical Unit of Work (unidad lógica de Trabajo) o SAP LUW.

En el LUW, todas las actualizaciones son realizadas en una sola. Aquí los requerimientos de actualización no son pasados directamente a la base de datos, pero son almacenados en una tabla de registro (log table) para actualizarse.

El comando de ABAP/4 COMMIT WORK concluye el LUW. El sistema R/3 comienza un proceso de actualización especial el cual usa la tabla de registro (log table) para realizar la actualización en la base de datos dentro del contexto de una transacción de base de datos.

Si ocurre un error, el LUW es terminado por el comando ABAP/4 ROLLBACK WORK. Las entradas a la tabla de registro son descartadas y no comienza el proceso de actualización.

El COMMIT WORK termina la tarea del dialogo y continua en la tarea de actualización.

6.2. Concepto de Actualización Asíncrona.

En SAP, la actualización asíncrona para el manejo de requerimientos de bases de datos es dividida entre un programa de dialogo interactivo y un programa de actualización, el cual corre en background.

En SAP, la actualización asíncrona divide el proceso en actualizaciones de tiempos críticos (V1) y actualizaciones de tiempos menos críticos (V2).

6.2.1. Programa de dialogo y módulo de función para actualización.

Para la implementación del concepto de actualización, se requiere de un programa para el proceso de dialogo y uno o más módulos de función para el proceso de actualización.

Si en el comando CALL FUNCTION en el programa de dialogo tiene además IN UPDATE TASK, la llamada no es ejecutada inmediatamente, pero es agregada en la tabla de registro.

6.2.2. Modulo de Función de Actualización.

Se pueden asignar módulos de función usados en una transacción SAP a diferentes grupos de funciones.

En la sección de administración, se especifica el tipo de función: V1 (ejecución inmediata) o V2 (ejecución posteriormente).

En un módulo de función para actualización, solo los parámetros de entrada (import) y las tablas son tomadas en cuenta. Se especifica los campos de referencia o la estructura según corresponda.

Los parámetros de salida (export parameters) y las excepciones (exceptions), son ignorados en una función de actualización.

Si se desea reglamentar la opción para realizar después una actualización después de un error, con la transacción SM13 seleccione Immediate start, no restart.

6.2.3. Programa de diálogo y tabla de registro.

En el momento que cada CALL FUNCTION ... IN UPDATE TASK es ejecutada en un programa en diálogo, se agrega una entrada en la tabla registro (log table) con el nombre de la función y sus parámetros.

Todas los requerimientos de actualización en un SAP LUW tiene la misma llave (conocida como update key).

Un registro de encabezado (log header) para asociar los registros se genera solo cuando un COMMIT WORK es ejecutado.

6.2.4. Rollback en los programas de Dialogo: Borrando marcas de Actualización.

  1. PROGRAM . . .
  2. MODULE <read ok-code>.
  3. . . .
  4. CASE <ok-code>.
  5. WHEN 'UPDA'.
  6. .
  7. COMMIT WORK.
  8. WHEN 'BACK'.
  9. .
  10. ROLLBACK WORK.
  11. .
  12. ENDCASE.
  13. . . .
  14. ENDMODULE.

En el curso de un dialogo que involucra varios pasos, se puede juntar una serie de actualizaciones y ejecutar el requerimiento asociado con un COMMIT WORK explícito.

Sin embargo, se pueden tener para borrar todas las actualizaciones del SAP LUW en curso con ROLLBACK WORK. El comando ROLLBACK regresa todas las actualizaciones hechas por el LUW en ejecución.

.2.5. Rollback en el Programa de Actualización.

  1. FUNCTION-POOL . . .
  2. . . .
  3. FUNCTION . . .
  4. . . .
  5. UPDATE . . .
  6. IF SY-SUBRC NE 0.
  7. MESSAGE Annn . . .
  8. ENDIF.
  9. INSERT . . .
  10. IF SY-SUBRC NE 0.
  11. MESSAGE Annn . . .
  12. ENDIF.
  13. . . .
  14. ENDFUNCTION.

La función de actualización pasa el requerimiento de actualización a la base de datos y analiza el código de retorno. Si la base de datos no ejecuta correctamente la actualización, en el módulo de función se decide la forma de proceder en estos casos.

Si se desea realizar un Rollback de base de datos en el programa de actualización, es necesario desplegar un mensaje tipo abend.

Los comandos ABAP/4 COMMIT WORK Y ROLLBACK WORK no son permitidos en módulos de función de actualización. Solo pueden ser usados en programas de dialogo.

6.2.6. PERFORM <subrutina> ON COMMIT.

Si se ejecuta una subrutina con PERFORM <subrutina> ON COMMIT, no es ejecutado hasta el siguiente COMMIT WORK.

Con PERFORM ... ON COMMIT no se pueden pasar parámetros.

Con el ROLLBACK WORK, las elementos de la tabla interna son borrados. Las subrutinas que son ejecutadas con PERFORM ... ON COMMIT pueden ellas mismas contener llamadas a módulos de funciones de actualización.

  1. MODULE PAI_100.
  2. . . .
  3. PERFORM F1 ON COMMIT.
  4. . . .
  5. ENDMODULE.
  6. MODULE PAI_200.
  7. . . .
  8. PERFORM F2 ON COMMIT.
  9. . . .
  10. COMMIT WORK.
  11. ENDMODULE.
  12. . . .
  13. FORM F1.
  14. CALL FUNCTION 'UPDATE_LFA1'.
  15. IN UPDATE TASK
  16. EXPORTING . . . .
  17. . . .
  18. ENDFORM.
  19. FORM F2.
  20. CALL FUNCTION 'UPDATE_LFB1'.
  21. IN UPDATE TASK
  22. EXPORTING . . . .
  23. . . .
  24. ENDFORM.

7. Concepto de Bloqueo de SAP.

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

7.1.1. Bloqueo de Base de Datos.

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.

7.1.2. Introducción al Concepto de Bloqueo de SAP.

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ódigo de retorno.

Al final del proceso, los bloqueos deben ser liberados explícitamente por el programa de diálogo.

Si el usuario termina 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.

7.1.3. Objetos de Bloqueo SAP.

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.

Los argumentos del bloqueo son los campos que forman la clave de las tablas.

Por cada tabla se puede definir el modo de bloqueo: Modo E para exclusivo, modo S para compartido.

7.1.4. Modulo de Función Enqueue / Dequeue.

Cuando un objeto bloqueado ha sido activado exitosamente, el sistema genera unos módulos de función ENQUEUE y DEQUEUE.

7.1.5. Llamando Módulos de Bloqueo.

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.

7.1.6. Tabla de Bloqueos

Los argumentos de los bloqueos, son almacenados en la lock table para casa tabla bloqueada.

| Client | User | Time | Shared | Table |Lock argument |

| 007 | Meyer | 11:00 | | SFLIGHT | LH470 |

| 007 | Miller | 11:01 | | SFLIGHT | UA250 |

| 007 | Miller | 11:01 | | LFB1 |0074712 0815 |

| 007 | Miller | 11:01 | | LFC1 |0074712 08151994|

| 007 | Smith | 11:02 | X | YLFA | LIEF1 |

| 007 | Schultz | 11:03 | X | YLFA | LIEF1 |

| 007 | Balfour | 11:04 | | YLFB1 | 00764715 |

Para desplegar la tabla de bloqueos, elija Tools -> Administration -> Lock entries (Transacción SM12).

7.1.7. Características Especiales con ENQUEUE.

El parámetro MODE_<table> maneja el modo de bloqueo definido por el bloqueo del objeto (‘S’ = shared / compartido, ‘E’ = Exclusivo).

El parámetro _SCOPE define la duración del bloqueo y los libera cuando no se necesitan más.

_SCOPE = 1 : El Bloqueo permanece en el programa de dialogo.

_SCOPE = 2 (default) : El bloque es retenido por el programa de actualización.

_SCOPE = 3 : El programa de dialogo y actualización son dueños de los bloqueos y hay dos entradas por objeto.

El parámetro _WAIT define donde un bloqueo deberá repetirse después de un error. Se pueden especificar la duración de las repeticiones con el parámetro ENQUEUE / DELAY.

Si un argumento de bloqueo no contiene valor o tiene un espacio, se establece un bloqueo genérico. Si se desea bloquear el valor inicial, se debe marcar el parámetro

X_<lock argument>.


 

 

 


Sobre el autor

Publicación académica de Carlos Piles Rosell, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Senior

Carlos Piles Rosell

Profesión: Analista de Sistemas y Programador - España - Legajo: GZ57B

✒️Autor de: 24 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: PartTime

Certificación Académica de Carlos Piles

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Los objetos de bloqueo en SAP" de la mano de nuestros alumnos.

SAP Master

Los objetos de bloqueo en SAP: constituyen un metodo para coordinar los accesos de cada usuario a los recursos, antes de acceder a los datos criticos, cada usuario realizara un bloqueo de los mismos de modo que ningun otro usuario pueda hacerlo al mismo tiempo. Para generar un objeo de bloqueo usamos la trx SE11 (lock object), se puede bloquear modo escritura, lectura o exclusivo. Solapa lock parameter define los campos por los cuales se realiza el bloqueo en la tabla definida en la solapa atributos. El objeto de bloqueo requiere activacion. Al grabar se crean dos modulos funcion, DEQUEUE... y ENQUEUE... Para llamar al bloqueo CALL FUNCTION 'ENQUEUE...' Para llamar al bloqueo CALL FUNCTION 'DEQUEUE...' Mediante la trx estandar SM12 se visualizacion...

Acceder a esta publicación

Creado y Compartido por: Jose Ignacio Rodini

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Lección 7: Video - Los objetos de bloqueo en SAP. 1.- Que son los objetos de bloqueo de SAP. Los Bloqueos constituyen un 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. 2.- Porque es tan importante utilizarlos en los programas de acceso concurrente. Estos bloqueos son importantes para asegurar la integridad de los datos. 3.- Como implementarlos en nuestros desarrollos. Para generar un objeto de bloqueo utilizamos la transacción SE11. Con la transacción SM12 podemos ver todos los objetos actualmente bloqueados en el sistema....

Acceder a esta publicación

Creado y Compartido por: Calixto Gutiérrez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

LOS OBJETOS DE BLOQUEO. Son un conveniente método para coordinar los accesos de cada usuario a los recursos, antes de acceder a los datos críticos del sistema cada usuario realiza un bloqueo de los mismos de modo que ningún otro usuario pueda hacerlo al mismo tiempo.

Acceder a esta publicación

Creado y Compartido por: Juan Santamaria Borja

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Objetos de bloqueo se utilizan para sincronizar a los usuarios en las escrituras/lecturas en las tablas Z. Transaccion SE11 para crear un objeto de bloqueo. Pestaña tabla, introducir el nombre de la tabla Z a la que vamos a hacer el bloque. Condición WRITE. Seleccionamos todos los campos de la tabla a los que se le va a seleccionar el bloqueo. Go to -> Lock modules . Veremos los modulos para bloquear y desblquear la tabla Z. En nuestro report habrá que llamar a la función para bloquear, modificar la tabla y posteriormente volverla a bloquear. Mediante la transacción SM12 podremos ver todas las tablas bloqueadas actualmente en el sistema.

Acceder a esta publicación

Creado y Compartido por: Javier Exposito Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Objetos de bloqueo Cuando dos usuarios quieren acceder a la misma información, éstos tienen que estar sincronizados para garantizar la consistencia de la información. Para esta sincronización se usan los bloqueos Tx SE11 para crear los objetos de bloqueo Desde Goto - Lock Modules vemos los módulos de función generados para los des/bloqueos de la tabla Para usarlos simplemente hacer la llamada a estos módulos de función en un programa Desde la SM12 vemos las tablas bloqueadas

Acceder a esta publicación

Creado y Compartido por: Xavier Martinez Garsaball

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Los objetos de bloqueo en SAP. En una transacción de dialogo, reporte o cualquier otro programa cuando varios usuarios quieren tener acceso a la misma tabla base de datos deben de estar sincronizados para garantizar la consistencia de los datos de la tabla. Para sincronizar estos accesos se utilizara los bloqueos de SAP: Método para coordinar los accesos a cada usuario a los recursos, antes de acceder a los datos críticos cada usuario realizara un bloqueo de los mismos para que otro no ingrese al mismo tiempo. Para generar un bloqueo se utilizar la transacción SE11 se marca Lock object y se ingresa el nombre de la tabla a bloquear anticipada con la letra e, luego en la ventana se ingresa una descripción. En...

Acceder a esta publicación

Creado y Compartido por: David De Jesùs Restrepo Cañas

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

7° Los Objetos de Bloqueo en SAP Como existe la posibilidad que varios usuarios puedan estar accediendo a una misma Tabla Base de Datos, es importante que se sincronicen dichos accesos para garantizar la consistencia de los datos en la TBD. Con ese fin es que se utilizan los Bloqueos, que permiten asegurar que no habrá dos usuarios accediendo a los mismos datos al mismo tiempo. 1- Creación de un Bloqueo para una Tabla Base de Datos Se accede a la Trx SE11 En el campo Lock object se ingresa el Nombre del Bloqueo y se presiona Crear En la siguiente pantallas se completa la Descripción Breve. Solapa Tablas Nombre: Nombre de la Tabla Base de Datos Modo de bloqueo: Bloqueo escritura...

Acceder a esta publicación

Creado y Compartido por: Victor Norberto Levi

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


SE11: Se utiliza para crear el objeto de bloqueo SE38: Se utiliza para crear el reporte ABAP que bloquea/desbloquea SM12 : Se utiliza para visualizar las tablas bloqueadas, desbloquear los objetos de bloque Menú Goto - Lock Modules. Podemos consultar los módulos de bloqueo y desbloqueo que se han generado y acceder a los nombres de las funciones que permiten su uso desde otro programa ABAP. Cargar la estructura de llamadas a función de ABAP, lo hacemos presionando el botón "Modelo" o "Pattern" del Editor ABAP.

Acceder a esta publicación

Creado y Compartido por: Ernesto Aristides Romano

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

La transacción SE11 se emplea para generar objetos de bloqueo. A través del menú Goto --> Lock Modules podemos consultar los módulos de bloqueo y desbloqueo que se han generado y acceder a los nombres de las funciones que permiten su uso desde cualquier programa ABAP. También se pueden bloquear un registro en particular, introduciendo los valores que componen la clave primaria de la tabla. Para cargar la estructura de llamadas a función de ABAP, se hace clic en el botón "Modelo" o "Pattern" del Editor ABAP. A través de la transacción SM12 se puden consultar los bloqueos activos en el sistema.

Acceder a esta publicación

Creado y Compartido por: Francisco Javier López Andreu

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Para el control de acceso a modificación de un recurso por más de un usuario a la vez, contamos con los Objetos de bloqueo. coordinando así el acceso. Tx SE11

Acceder a esta publicación

Creado y Compartido por: Helen Silva Ruiz

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!