Archivos Mensuales: hace 2 años

Utilizar objetos compartidos

Una vez que se ha configurado una instancia de área, cualquier usuario y aplicación podrá acceder a ella.   DATA: gr_handle   TYPE REF TO cl_my_area. gr_handle = cl_my_area=>attach_for_read( ). Los programas de lectura deben realizar los siguientes pasos: Los programas de lectura necesitan primero una variable de referencia tipificada como la clase de área. Esta variable de referencia sirve como un handle para acceder […]

Actualizar objetos de la memoria compartida

¿Cómo se actualizan los objetos de la memoria compartida?   Área de memoria compartida – Acceso de escritura Al crear un área, el sistema crea una clase final global con el mismo nombre. Para configurar un área o un acceso a un área existente, es necesaria una variable de referencia que pueda tipificar con la […]

Generar objetos en la memoria compartida

Tenemos que tener en cuenta los siguientes puntos importantes sobre los objetos compartidos: Grabación en la memoria intermedia de todos los programas de datos que se leen con frecuencia, pero raramente se escriben. Los accesos de lectura concurrentes son admitidos por los objetos compartidos. El acceso es controlado por un mecanismo de bloqueo. Los datos […]

Definir área de memoria compartida

Un área es una plantilla para instancias de área en la memoria compartida. Un área puede generar varias instancias de área con diferentes nombres. Además, una instancia de área puede tener varias versiones con distintos ID de versión o números de versión. En el más sencillo de los casos, sin gestión de versiones, una instancia […]

Crear clases con MEMORY ENABLED

Concepto – Memoria compartida La memoria compartida es un área de la memoria de un servidor de aplicación al que pueden acceder todos los programas ABAP que se ejecutan en el mismo servidor. Antes de que SAP introdujera los objetos compartidos, las sentencias ABAP debían utilizar las sentencias EXPORT e IMPORT con los suplementos HARED […]

Implementación de excepciones reanudables

Utilizamos la sentencia RESUME para reanudar un programa inmediatamente después de la sentencia que emitió la excepción en el código fuente. Debemos satisfacer los siguientes requisitos previos para usar la sentencia RESUME: La excepción debe interceptarse con la sentencia CATCH en el suplemento BEFORE UNWIND. Esto garantiza que el contexto de la excepción se mantendrá […]

Estructura de control CLEANUP

Si una estructura TRY-ENDTRY contiene un bloque CLEANUP, este bloque se ejecuta cuando se retira la estructura TRY-ENDTRY, porque el sistema no puede encontrar un controlador dentro de la estructura TRY-ENDTRY, pero sí en una estructura TRY-ENDTRY circundante o en un programa de llamadas. En la sentencia CLEANUP, igual que en la sentencia CATCH, se […]

Estructura de control RETRY

En este artículo vamos a utilizar la estructura de control RETRY. Atención: Debemos usar RETRY con cuidado. Si no eliminamos la causa de la excepción del modo adecuado, nuestro programa ingresará en un bucle inifinito. En el evento START-OF-SLECTION de un programa ejecutable simulamos la emisión de una excepción de una división entre cero. Utilizamos […]

Estructura de control TRY-CATCH-ENDRY

Podemos tratar una excepción si la sentencia que la emitió se encuentra en una estructura de control TRY-ENDTRY. Tratamos la excepción mediante la sentencia CATCH en la estructura TRY-ENDTRY. El bloque TRY contiene las sentencias para las que es necesario tratar las excepciones. Un bloque CATCH contiene el programa de control de excepciones que se […]

Emitir excepciones basadas en clases

La emisión de excepciones basadas en clases se realiza mediante la sentencia RAISE EXCEPTION. Existen dos variantes de esta sentencia. Variantes de la sentencia RAISE EXCEPTION… RAISE EXCEPTION TYPE <exception_class> [EXPORTING …]. Esta sentencia crea un nuevo objeto de excepción que es una instancia de la clase <exception_class>. RAISE EXCEPTION <object_ref>. Esta sentencia utiliza un […]