✒️ABAP Las tablas internas
ABAP Las tablas internas
Lección 1/9: Tablas internas
1. TABLAS INTERNAS
Es un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura. La cantidad máxima esta relacionada con los limites especificados en la instalación del sistema. Por ejemplo si queremos guardar una colección de registros de datos de la misma estructura en memoria, sin necesidad de acceder continuamente a las bases de datos y poder realizar diversas operaciones con este conjunto de información, entonces utilizaremos tablas internas.
- En general el uso que se da a una tabla interna es para:
Almacenar temporalmente los datos de las bases de datos para un procesamiento futuro.
Estructurar y formatear datos que se mostrarán como salida del programa.
Formatear datos para ser utilizados en otros servicios.
2. Declaración de una Tabla Interna.
Sintaxis:
DATA: BEGIN OF <tabla> occurs <n>,
<Def. Campo>,
....
END OF <tabla>.
OCCURS no limitan el tamaño de la tabla sino la cantidad de registros que se guardarán en memoria simultáneamente, generalmente se indica cantidad 0 lo cual permite trabajar con tablas que contengan gran cantidad de registros.
Ejemplo. Tabla interna de proveedores
DATA: BEGIN OF ti_proveedores OCCURS 0,
nombre(30) TYPE c,
apellido(30) TYPE c,
dni(8) TYPE c,
END OF ti_proveedores.
A continuación otra manera de declarar.
* Tabla interna de proveedores
DATA: BEGIN OF wa_proveedores,
nombre(30) TYPE c,
apellido(30) TYPE c,
dni(8) TYPE c,
END OF wa_proveedores.
DATA: ti_proveedores LIKE STANDAR TABLE OF wa_proveedores.
También de la siguiente forma:
DATA: ti_proveedores LIKE STANDAR TABLE OF wa_proveedores WITH HEADER LINE.
3. LLENADO DE UNA TABLA INTERNA.
Para llenar datos a una tabla interna se utiliza.
APPEND TO: Añade un registro a la tabla interna en la ultima posición con los valores que tengamos en el área de trabajo.
Sintaxis: APPEND wa_proveedores TO ti_proveedores.
4. ORDENAR una tabla interna.
Utilizamos la sentencia SORT para Ordenar una tabla interna.
Ejemplo: SORT ti_proveedores BY dni DDESCENDING. "ordena proveedores por dni de mayor a menor.
5. PROCESAR una tabla interna
Se utiliza la sentencia LOOP-ENDLOOP.
Ejemplo.
*Recorre los registros donde el nombre no es blanco
LOOP AT ti_proveedores INTO wa_proveedores
WHERE NOT nombre IS INITIAL.
ENDLOOP.
6. LECTURA de una tabla interna
Para leer un registro de una tabla interna sin necesidad de recorrerla se utiliza la sentencia READ TABLE.
Ejemplo:
* Lee los datos de un registro particular
READ TABLE ti_proveedores INTO wa_proveedores
WITH KEY nombre = 'Ariel'.
INDEX Se usa para para leer datos que se encuentran en una posición particular de la tabla.
*Lee el primer registro de la tabla.
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
El agregado de la clausula BINARY SEARCH en la sentencia READ TABLE hace que la búsqueda sea ámpliamente mas eficiente.
7. MODIFICAR una tabla interna
MODIFY Sentencia para modificar el contenido de un registro de una tabla interna. En el ejemplo siguiente modificamos el campo DNI del primer registro.
*Modifica el 1er registro de la tabla
wa_proveedores-dni = '24987500'.
MODIFY ti_proveedores FROM wa_proveedores FROM wa_proveedores INDEX 1.
INSERT inserta un registro en una posición determinada de un tabla interna, en el siguiente ejemplo insertaremos un registro en la posición 2.
*Inserta un registro en la 2da posición de la tabla
wa_proveedores-nombre = 'Marcelo'.
wa_proveedores-apellido = 'Rivarola'.
wa_proveedores-dni '20857492'.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
DELETE borra el contenido de un registro.
Ejemplo. borrar los registros de proveedor con DNI = a 20857492
*Borra un registro de la tabla.
DELETE ti_proveedores WHERE dni = '20857492'.
REFRESH borra todo el contenido de una tabla interna, en el ejemplo borraremos de la tabla ti_proveedores
*Inicializa la tabla interna
REFRESH ti_proveedores.
DESCRIBE TABLE. indica la cantidad de registros tiene una tabla interna
Ejemplo. V_LINEAS variable que contendrá las cantidad de filas.
*Averigua la cantidad de entradas de una tabla
DATA: v_lineas TYPE i.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Martin Fernandez Calvo
Sobre el autor
Publicación académica de Ruben Santiago Cuenca Balanza, en su ámbito de estudios para la Carrera Consultor ABAP.
Ruben Santiago Cuenca Balanza
Argentina - Legajo: RU45V
✒️Autor de: 67 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Me presento como una persona activa, responsable, creativa, flexible, orientada al logro de resultados en el trabajo que se me asigne.
Certificación Académica de Ruben Cuenca