✒️ABAP Las tablas internas
ABAP Las tablas internas
1. Qué son las tablas internas?
Es un objeto de datos que permite almacenar grandes cantidades de registros de dato en memoria. La cantidad de registros máxima está relacionada con los límites especificados en la instalación del sistema. Esto evita que se esté accediendo continuamente a la base de datos.
Estas tablas internas son usadas para:
- Almacenar temporalmente los datos de la base de datos, para su posterior precesamiento.
- Estructurar y darle formato a los datos que se desplegarán por pantalla
- Darle formato a datos que serán utilizados por otros servicios.
2. Cómo se declara una tabla interna?
La sintaxis de declaración es la siguiente:
DATA: BEGIN OF <tabla> OCCURS <n>,
<Def.Campo>,
...
END OF <tabla>.
Esta tabla anteriormente definida, contendrá n lineas en memoria más una línea de cabecera o área de trabajo. La cantidad de líneas especificadas en OCCURS no límita el tamaño de la tabla ni la cantidad de registros que se guardan en memoria de manera simultanea. Especificando OCCURS 0 permite trabajar con tablas de gran cantidad de registros.
3. Llenado de tablas internas
Se utiliza la sentencia APPEND TO, la cual añade en la última posición un registro a la tabla interna, con los valores que se tengan en el área de trabajo (Cabecera de una tabla interna que tiene el contenido de la tabla interna que se está procesando). Ej:
CLEAR wa_proveedores.
wa_proveedores-nombre = 'Jose'.
wa_proveedores-apellido = 'Donado'.
wa_proveedores-dni = '123456789'.
APPEND wa_proveedores TO ti_proveedores.
Tambien es posible llenar una tabla interna con el contendo de una base de datos. Para esto se utiliza la sentencia SELECT.
4. Ordenamiento de Tabla Interna.
Se utiliza la sentencia SORT cuya sintaxis es SORT <tabla_interna> BY <campo_tabla> <TIPO DE ORDEN>. El tipo de orden puede ser ASCENDING (ascendente, es el tipo por defecto) o DESCENDING (descendente).
5. Procesamiento de una tabla interna.
Para recorrer lo regitros y poder procesarlos, se utiliza la sentencia LOOP-ENDLOOP. Su sintaxis es:
LOOP AT <tabla_interna> INTO <area_trabajo> WHERE <condición>. ...
ENDLOOP.
Si no existe registro que cumpla la condición del WHERE, el SY-SUBRC será distinto a cero.
6. Lectura de tabla interna
Para la lectura de un registro en particular de una tabla interna sin necesidad de recorrerla, se utiliza la sentencoa READ TABLE. Su sintaxis es READ TABLE <tabla_interna>. Por ejemplo: READ TABLE ti_operaciones INTO wa_operaciones WITH KEY ACTIVITY = '002'. Si luego de ejecutar la lectura, el valor de SY-SUBRC es igual a cero, quiere decir que se encontró registro que se estaba buscando. A esta sentencia se le suele agregar BYNARY SEARCH para mejorar el permormance de la búsqueda. Para leer el registro de una posición en particular, se utiliza la cláusula INDEX <numero_registro>. Por ejemplo: READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
7. Modificando una tabla interna
Para modificar el contenido de un registro de una tabla interna se utilizará la sentencia MODIFY. Su sintaxis dependerá de si lo que se va a modificar es una tabla de base de datos o una tabla interna. Por ejemplo:
wa_proveedores-dni = '13579'.
MODIFY ti_proveedores FROM wa_proveedores INDEX 1.
Si se intenta modificar un registro que no exista, entonces SY-SUBRC será distinto de cero.
Para insertar un registro en una posición determinada se utilizará la sentencia INSERT.
Para borrar el contenido de una tabla interna se utiliza la sentencia DELETE. Suele ir acompañado de la SENTENCIA WHERE para filtrar los registros a afectar.
Para borrar todo el contenido de una tabla interna se utiliza la sentencoa REFRESH.
Para obtener la cantidad de registros de una tabla interna se utiliza la sentencoa DESCRIBE TABLE. Su sintaxis es DESCRIBE TABLE <tabla_interna> LINES variable.
La sentencia CLEAR se utiliza para inicializar el área de trabajo de la tabla interna.
Para liberar el espacio en memoria de una tabla interna, se utilizará la sentencia FREE <tabla_interna>.
 
 
 
Sobre el autor
Publicación académica de Jose Hernando Donado Cervantes, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Hernando Donado Cervantes
Profesión: Ingeniero de Sistemas - Colombia - Legajo: KU74P
✒️Autor de: 55 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Jose Donado