Enqueue y Dequeue: programa de bloqueo en ABAP

Prefacio – Esta publicación es parte del Programas ABAP .

Los objetos de bloqueo en SAP ABAP son componentes reutilizables globales que generan módulos de función, es decir, ENQUEUE_E_TABLE y DEQUEUE_E_TABLE que se utilizan para establecer y liberar bloqueos en registros de datos. Este método Enqueue y Dequeue se utiliza para bloquear y desbloquear cualquier objeto en SAP ABAP. En este artículo, aprenderemos estos métodos con la ayuda de un programa. Antes de comenzar con esto, debes leer los conceptos básicos de Bloquear objetos en SAP ABAP.

Introducción

Es muy importante bloquear un objeto que está en desarrollo. Por objeto nos referimos a todo, es decir, tablas, vistas, informes, métodos, módulos de función y todo. ABAP también proporciona estas funciones de forma predeterminada para sus interfaces estándar. Pero, ¿qué sucede si necesita crear uno para su propia tabla? Entonces necesita usar los dos módulos de función dados:

  1. ENQUEUE_E_TABLE: Para agregar bloqueo
  2. DEQUEUE_E_TABLE: para eliminar el bloqueo
Enqueue y Dequeue en ABAP- Ilustración de imagen
Enqueue y Dequeue en ABAP- Ilustración de imagen

Programa ABAP para realizar operaciones de encolado y desencolado

DATOS: varkey COMO rstable-varkey. varkey = sy-mandt. LLAME A LA FUNCIÓN 'ENQUEUE_E_TABLE' "Agregar bloqueo EXPORTACIÓN * MODE_RSTABLE = 'E' tabname = 'ZBarry_TEST' varkey = varkey * X_TABNAME = ' ' * X_VARKEY = ' ' * _SCOPE = '2' * _WAIT = ' ' * _COLLECT = ' ' EXCEPCIONES Foreign_lock = 1 system_failure = 2 OTROS = 3. CASE sy-subrc. CUANDO 1. MENSAJE i184(bctrain) CON 'Bloqueo externo'. CUANDO 2. MENSAJE i184(bctrain) CON 'fallo del sistema'. CUANDO 0. MENSAJE i184(bctrain) ) CON 'éxito'. CUANDO OTROS. MENSAJE i184(bctrain) CON 'otros'. ENDCASE. LLAME A LA FUNCIÓN 'DEQUEUE_E_TABLE' "Remove Lock EXPORTING * MODE_RSTABLE = 'E' tabname = 'ZBarry_TEST' varkey = varkey * X_TABNAME = ' ' * X_VARKEY = ' ' * _SCOPE = '3' * _SYNCHRON = ' ' * _COLLECT = ' ' . IF sy-subrc <> 0. * Implemente un manejo de errores adecuado aquí ENDIF.

Explicación del código

El programa anterior se explica por sí mismo, aún así explicaremos los puntos clave a continuación:

  • Inicialmente, hemos definido una variable varkey que le dará información al cliente. Indica, ABAP, para qué cliente desea bloquear/desbloquear la tabla. Se toma automáticamente usando sy-mandt.
  • Luego llamamos a la función 'ENQUEUE_E_TABLE', devuelve éxito, falla o excepción de bloqueo externo.
  • Más tarde, cuando hayamos terminado con nuestros cambios con respecto a nuestra tabla, debemos desbloquear la misma. Para eso llamamos a la Función 'DEQUEUE_E_TABLE'.

Autor


Comentarios

Deje un comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *

Este sitio usa Akismet para reducir el correo no deseado. Descubra cómo se procesan los datos de sus comentarios.