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.