✒️ABAP Las tablas internas
ABAP Las tablas internas
Tabla interna:
Objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura.
La cantidad de registros máxima está relacionada con los límites especificados en la instalación del sistema.
Usos:
Almacenar temporalmente 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 por otros servicios.
Declaración:
DATA: BEGIN OF <tabla> OCCURS <n>,
<Definición de campos>,
…
END OF <tabla>.
Tabla interna de n líneas mas una línea de cabecera.
N no limita el tamaño de la tabla sino la cantidad de registros que se guardarán en memoria simultáneamente.
Por lo general n = 0 lo que permite trabajar con tablas de gran cantidad de registros.
Otras formas de declarar:
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 STANDARD TABLE OF wa_proveedores.
DATA: ti_vuelos LIKE STANDARD TABLE OF sflight WITH HEADER LINE.
Llenado:
APPEND TO:
Añade un registro a la tabla interna en la ultima posición.
Ejemplo:
CLEAR wa_proveedores.
wa_proveedores-nombre = 'Ernesto'.
wa_proveedores-apellido = 'Villanueva'.
wa_proveedores-dni = '24987564'.
APPEND wa_proveedores TO ti_proveedores.
Ordenamiento:
SORT:
Ejemplo:
SORT ti_proveedores BY dni DESCENDING.
Procesamiento:
LOOP - ENDLOOP:
Se utiliza para recorrer una tabla interna y procesar registro por registro.
Si ningún registro cumple la condición del WHERE, SY-SUBRC será distinto de cero.
Ejemplo:
LOOP AT ti_proveedores INTO wa_proveedores WHERE NOT nombre IS INITIAL.
…
ENDLOOP.
Obtener una estructura con la misma cabecera o área de trabajo que un tabla:
DATA: wa_proveedores LIKE LINE OF ti_proveedores.
Lectura de un registro completo sin necesidad de recorrer toda la tabla:
READ TABLE:
En caso de encontrar el registro, SY-SUBRC será cero, caso contrario, distinto de cero.
Ejemplo:
READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre = 'Ariel'.
Si se desea leer datos de una posición en particular se utiliza la cláusula INDEX.
Ejemplo:
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1
BYNARY SEARCH hace que la búsqueda sea ampliamente mas eficiente.
Modificación:
MODIFY:
Se utiliza para modificar el contenido de un registro.
Se intentamos modificar un registro de una tabla interna y el mismo no existe, el SY-SUBRC será distinto de cero.
Ejemplo:
wa_proveedores-dni = '24987500'.
MODIFY ti_proveedores FROM wa_proveedores INDEX 1.
INSERT:
Se utiliza para insertar un registro de una posición determinada.
Ejemplo:
wa_proveedores-nombre = 'Marcelo'.
wa_proveedores-apellido = 'Rivarola'.
wa_proveedores-dni = '20857492'.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
DELETE:
Se utiliza para borrar un registro de una tabla interna.
Ejemplo:
DELETE ti_proveedores WHERE dni = '20857492'.
REFRESH:
Se utiliza para borrar TODO el contenido de un tabla interna.
Ejemplo:
REFRESH ti_proveedores.
DESCRIBE TABLE:
Se utiliza para saber cuantos registros tiene una tabla interna.
Ejemplo:
DATA: v_lineas TYPE i.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
TRANSPORTING:
Se utiliza para modificar determinados campos de una tabla interna.
Ejemplo:
MODIFY ti_proveedores FROM wa_proveedores INDEX 2 TRANSPORTING dni.
 
 
 
Sobre el autor
Publicación académica de Martin Alejandro Goya, en su ámbito de estudios para la Carrera Consultor ABAP.
Martin Alejandro Goya
Profesión: Ingeniero en Computacion - Argentina - Legajo: CJ13E
✒️Autor de: 49 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Martin Goya