Tablas temporales globales GTT en ABAP

GTT -Tablas temporales globales

Las tablas temporales globales GTT en ABAP permiten guardar datos transitorios durante una unidad lógica de trabajo y dividir procesos complejos de base de datos. Esta guía explica cómo funcionan, cuándo utilizarlas y qué las diferencia de una tabla transparente normal.

Contenido

1.     GTT (Global Temporary Tables) Tablas temporales globales

1.  GTT (Global Temporary Tables) Tablas temporales globales

En el Diccionario de datos ABAP, contamos con una nueva funcionalidad que nos permite crear tablas temporales globales que se pueden utilizar en el contexto de la aplicación en la misma unidad lógica de trabajo.

Las tablas temporales globales (GTT) son tablas transparentes especiales que se utilizan como repositorios de datos temporales.

Es decir, las GTT se utilizan para guardar datos temporales y, por lo tanto, dividir procesos de base de datos complicados en varios pasos, están diseñados solo para este propósito y, por lo tanto, incurren en costos de administración mucho más bajos que las tablas transparentes regulares.

Una tabla global temporal siempre está vacía al comienzo de una LUW (Logical Unit Work) de base de datos, es decir, siempre deben borrarse al final de cada LUW.

Anteriormente, cuando manejábamos la lógica para filtrar tablas, usábamos la instrucción «FOR ALL ENTRIES«, pero con esta, no podíamos utilizar Open SQL. Las GTT, pueden ser una alternativa al procesamiento en las tablas internas mediante «FOR ALL ENTRIES», las tablas temporales aceptan «INNER JOIN».

En el diccionario de datos creamos una tabla temporal global llamada «ZEMPLOYEE_LOGALI».

Tablas temporales globales GTT en ABAP 1
Tablas temporales globales GTT en ABAP 2

Cambiamos la propiedad de «tableCategory» por el de una tabla temporal.

Tablas temporales globales GTT en ABAP 3

Duplicamos la tabla creada anteriormente, pero con un «tableCategory» de tabla transparente, esta tabla la nombramos «ZTB_EMP_LOGALI».

Tablas temporales globales GTT en ABAP 4

Creamos un programa ejecutable llamado «ZGTT_LOGALI», insertamos el mismo registro en ambas tablas y realizamos la unión entre las tablas y posteriormente realizamos la impresión de los datos resultantes.

Tablas temporales globales GTT en ABAP 5

Al ejecutar observamos que nos da un DUMP.

Tablas temporales globales GTT en ABAP 6

Esto se debe a que debemos realizar la eliminación explícita de la tabla temporal antes de que termine el LUW.

Tablas temporales globales GTT en ABAP 7

Al ejecutar nuevamente el programa, observamos que los datos se devuelven correctamente.

Tablas temporales globales GTT en ABAP 8

Otra forma de que se realice el borrado automático de la tabla temporal es terminando explícitamente el LUW con las instrucciones «COMMIT WORK» o «ROLLBACK WORK«.

Tablas temporales globales GTT en ABAP 9

Ejecutamos el programa y observamos que funciona correctamente.

Tablas temporales globales GTT en ABAP 10

Consultamos los registros de la tabla temporal.

Tablas temporales globales GTT en ABAP 11

La instrucción «ROLLBACK WORK» tiene el mismo efecto sobre la tabla temporal.

Tablas temporales globales GTT en ABAP 12

Preguntas frecuentes sobre GTT

¿Qué es una GTT en ABAP?

Es una tabla transparente especial diseñada para almacenar datos temporales dentro del contexto de una unidad lógica de trabajo.

¿Cuándo conviene utilizar una tabla temporal global?

Cuando necesitas persistir datos intermedios de un proceso complejo en base de datos sin convertirlos en información permanente de negocio.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *