Tablas internas

Las tablas internas son objetos de datos estructurados para trabajar con datos en memoria en forma de filas y columnas. Usualmente todos los programas de ABAP utilizan tablas internas.

Declarar tablas internas.

Las tablas internas se declaran con la sentencia DATA, estas pueden contener o no un header line, sino declaramos un header line debemos declarar un work area, veremos más en detalle estos conceptos más adelante en este articulo. Ejemplo de una declaración de tabla interna con header line

Ejemplo de una declaración de tabla interna sin header line y su work area

En los casos anteriores declaramos tablas internas con la estructura del tipo T001, pero también podemos declarar tablas internas personalizadas con los campos que deseemos, por ejemplo:

¿Header line o Work Area?

Los header line y work area se usan para acceder a los datos de una tabla interna, por ejemplo para poder leer los datos de una fila estos deben cargarse primero en un work area o un header line. Para entender mejor esto veamos un ejemplo.

Suponiendo que tenemos una tabla interna con 3 columnas y 4 filas, las columnas se llaman campo1, campo2 y campo2, como se ve en la siguiente imagen:

tablas-internas-explicacion

Si deseamos leer el valor “B” (columna1 fila 2), primero debemos cargar la fila completa en el header line o work area, luego si estamos utilizando header line podemos referenciar el valor en la forma tabla_interna-campo1 (nombre de tabla interna – nombre del campo), si utilizamos un work area lo hacemos de la forma work_area-campo1 (nombre del work area – nombre del campo). Veamos como se ve esto en código ABAP, primero declaramos una tabla interna:

Luego agregamos algunas filas con datos.

Para cargar la fila 2 en el header line podemos utilizar el comando READ TABLE

Ahora podemos acceder al dato, por ejemplo vamos a imprimir en pantalla su valor.

Ahora ya sabes como declarar y que es una tabla interna, sabes para que se usan y como usarlas, aunque aun falta mucho para aprender sobre como trabajar con tablas internas, pero por el momento te recomiendo hacer un programa y experimentar por tí mismo el código discutido en este articulo. Cuando domines esto y quieras aprender más lee este articulo.