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
Contenido
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».


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

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

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.

Al ejecutar observamos que nos da un DUMP.

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

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

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

Ejecutamos el programa y observamos que funciona correctamente.

Consultamos los registros de la tabla temporal.

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

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.

