✒️ABAP Las tablas internas
ABAP Las tablas internas
1. Que es una tabla interna?.
Es una coleccion de registros de datos de la misma estructura en memoria, sin necesidad de acceder continuamente a la bd y poder realizar diversas operaciones con este conjunto de informacion.
Es un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura. La cantidad de registros maxima esta relacionada con los limites especificados en la instalacion del sistema.
El uso tipico que se le da a una tabla interna:
* Para almacenar temporalmente los datos de la bd para un procesamiento futuro.
* Para estructurar y formatear datos q se mostraran como salida del programa.
* Para formatear datos para ser utilizados por otros servicios.
2. Como se declara una tabla interna?
DATA: BEGIN OF <tabla> OCCURS <n>,
<def.campo>,
....
END OF <tabla>.
Por lo general, en el parámetro OCCURS se especifica la cantidad 0 lo que permite trabajar con tablas de gran cantidad de registros.
Otra forma 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.
Otra forma:
DATA: t_vuelos LIKE STANDARD TABLE OF SFLIGHT WITH HEADER LINE.
Donde la cabecera y area de trabajo es la misma tabla interna.
3. Llenado de una tabla interna.
APPEND TO: se añade un registro a la tabla interna en la ultima posicion con los valores que tengamos en al area de trabajo.
APPEND <area-trabajo> TO ti_proveedores.
CON LA SENTENCIA SELECT.
4. Ordenamiento de una tabla interna.
Se utiliza la sentencia SORT.
ej: SORT TI_proveedores by dni DESCENDING.
5. Procesamiento de una tabla interna.
LOOP-ENDLOOP.
DATA: wa_proveedores LIKE LINE OF ti_proveedores.
6. Lectura de una tabla interna.
Sin necesidad de recorrerla:
Ej: READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre = 'ARIEL'.
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1. (registro en la posicion 1).
La clausula BINARY SEARCH hace que la busqueda sea mas eficiente.
7. Modificacion de una tabla interna:
Ej: MODIFY ti_proveedores FROM wa_proveedores INDEX1.
INSERT wa_proveedores into ti_proveedores INDEX 2. (Insertar en la posicion 2).
Para borrar el contenido de un registro
DELETE ti_proveedores where dni= '233332222'.
Para borrar el contenido de una tabla interna se utiliza REFRESH.
Ej: REFRESH ti_proveedores.
Para saber la cantidad de registros de una tabla interna. DESCRIBE TABLE.
DATA: v_lineas type i.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
CLEAR: inicializar el area de trabajo.
FREE: para liberar el espacio ocupado por una tabla interna en memoria.
REFRESH: borrara el contenido de la tabla interna, no la tabla interna en si.
 
 
 
Sobre el autor
Publicación académica de Ana Maria Rojas Ayala, en su ámbito de estudios para la Carrera Consultor ABAP.
Ana Maria Rojas Ayala
Profesión: Programadora de Computadoras - Paraguay - Legajo: EH87U
✒️Autor de: 8 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Ana Rojas