![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las tablas internas
ABAP Las tablas internas
![ABAP Las tablas internas ABAP Las tablas internas](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/364.jpg)
1. Que son las tablas internas?
Es un objeto de datos que permite guardar en memoria grandes cantidades de registros con la misma estructura.
Los limites de registros máximos van relacionados a los limites especificados en la instalación del sistema.
Usos:
- Almacenamiento temporal de los datos de las BD para procesamiento futuro.
- Para estructura y formatear datos que se mostraran como salida del programa.
- Para formatear los datos para ser utilizados por otro servicio.
1. ¿Como se declara una tabla interna?
DATA: BEGIN OF <tabla> OCCURS <n>,
<Def.Campo>,
END OF <tabla>.
n: lineas 1 linea de cabecera o área de trabajo.
OCCURS limita la cantidad de registros que se guardaran en memoria simultáneamente.
Ejemplo:
DATA: BEGIN OF ti_proveedores OCCURS 0,
nombre(30) TYPE c,
apellido(30) TYPE c,
dni(8) TYPE c,
END OF ti_proveedores.
o
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.
AUDIOTIP: WITH HEADER LINE
DATA: t_vuelos LIKE STANDARD TABLE OF sflight WITH HEADER LINE.
3. Llenado de una tabla interna.
APPEND TO:
CLEAR wa_proveedores.
wa_proveedores-nombre = 'Ernesto'.
wa_proveedores-apellido = 'Villanueva'.
wa_proveedores-dni = '1234'.
APPEND wa_proveedores TO ti_proveedores.
*Se añade otro registro
CLEAR wa_proveedores.
wa_proveedores-nombre = 'Jose'.
wa_proveedores-apellido = 'Artega'.
wa_proveedores-dni = '9876'.
APPEND wa_proveedores TO ti_proveedores.
SELECT. Llenar con el contenido de una base de datos.
4. Ordenamiento de una tabla interna.
SORT ti_proveedores BY dni DESCENDING."ASCENDING
5 . Procesamiento de una tabla interna.
LOOP AT ti_proveedores INTO wa_proveedores
WHERE NOT nombre IS INITIAL.
ENDLOOP.
Si no existe condición que coincida con la sentencia WHERE, el sy-subrc será cero.
AUDIOTIP: Otra forma de declarar una estructura o area de trabajo de una tabla interna=>LIKE LINE OF
DATA: BEGIN OF ti_proveedores OCCURS 0,
nombre(30) TYPE c,
apellido(30) TYPE c,
dni(8) TYPE c,
END OF ti_proveedores.
DATA: wa_proveedores LIKE LINE OF ti_proveedores.
6. Lectura de una tabla interna.(Sin recorrerla)
READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre = 'Ariel'.
Si se encuentra el registro el sy-subrc sera cero.
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1. *Lee en una posición
NOTA: Agregado BINARY SEARCH. (Busqueda mas eficiente)
7. Modificando una tabla interna.
wa_proveedores-dni = ''555.
MODIFY ti_proveedores FROM wa_proveedores INDEX 1.
Insertar
wa_proveedores-nombre = 'Marcelo'.
wa_proveedores-apellido = 'Rivarola'.
wa_proveedores-dni = '20857492'.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
Borrar un registro
DELETE ti_proveedores WHERE dni = '34555'.
Borrar todo el contenido de la tabla interna.
REFRESH ti_proveedores.
Obtener el numero de lineas de una tabla interna.
DATA: v_lineas TYPE i.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
AUDIOTIP: Intrucciones de manejo de tablas internas
- CLEAR: Para inicializar el área de trabajo o cabecera de la tabla interna.
- FREE: Liberar el espacio en memoria que ocupa una tabla interna
- REFRESH: Borra el contenido y no la tabla.
 
 
 
Agradecimiento:
Ha agradecido este aporte: David Camacho Espinoza
Sobre el autor
Publicación académica de Calixto Saldarriaga, en su ámbito de estudios para la Carrera Consultor ABAP.
Calixto Saldarriaga
Profesión: Ingeniero en Sistemas - Ecuador - Legajo: HB24G
✒️Autor de: 61 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Calixto Saldarriaga