✒️ABAP Las tablas internas
ABAP Las tablas internas
1) TABLAS INTERNAS
Se utilizan para guardar una colección de registros de datos en memoria.Son un objeto de datos que permite guardar en memoria grandes cantidades de registros con la misma estructura. La cantidad de registros máxima esta relacionada con los limites especificados en la instalación del sistema.
Se utilizan para:
- Almacenar temporalmente los datos
- Para estructurar y formatear datos que se presentarán como salida del programa
- Para formatear datos
2) DECLARAR UNA TABLA INTERNA
La sintaxis es:
DATA: BEGIN OF <tabla> OCCURS <n>,
<campo1>,
....
END OF <tabla>.
Asi se define una tabla interna con n lineas más una linea de cabera. La cantidad de lineas que se especifican en OCCURS no limita el tamaño de la tabla, si no la cantidad de registros que se guardarán en memoria simultáneamente. Por lo general se especifica 0, lo que permite trabajar con tablas de gran cantidad de registros.
Se pueden declarar de 2 formas:
a) DATA:BEGIN OF ti_proveedores OCCURS 0,
nombre(30) TYPE c,
apellido(30) TYPE c,
END OF ti_proveedores.
b) DATA: BEGIN OF wa_proveedores,
nombre(30) TYPE c,
apellido(30) TYPE c,
END OF wa_proveedores.
DATA: ti_proveedores LIKE STANDARD TABLE OF wa_proveedores.
c) DATA: ti_vuelos LIKE STANDARD TABLE sfligth WITH HEADER LINE ( de esta forma declaramos una tabla interna en donde la cabecera es la misma tabla interna)
d) También se puede crear una estructura o area de trabajo con el mismo formato de la tabla interna
DATA: wa_proveedores LIKE LINE ti_proveedores
3) LLENADO TABLA iNTERNA
APPEND TO - se añade un registro en la última posición con los valores del área de trabajo.
CLEAR wa_proveedores
wa_proveedores-nombre = 'Daniel'
wa_proveedores-apellido = 'Gonzalez'
APPEND wa_proveedores TO ti_proveedores
4) ORDENAR TABLA INTERNA
Se utiliza la palabra SORT:
SORT ti_proveedores BY dni DESCENDING
Se se desea ordenar de menor a mayor se utiliza ASCENDING
5) PROCESAR UNA TABLA INTERNA
Para recorrer una tabla y procesar registro a registro se utiliza la sentencia LOOP-ENDLOOP
LOOP AT ti_proveedores INTO wa_proveedores
WHERE NOT nombre IS INITIAL.
ENDLOOP
6) LECTURA DE LA TABLA INTERNA
Para leer una tabla interna sin tener que recorrerla, se utiliza READ TABLE
a) READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre = 'Daniel'.
b) Si queremos leer una posición particular de la tabla:
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
Si utilizamos el agregado Bynary SEARH, la búsqueda se hace mas eficiente.
7) MODIFICAR UNA TABLA INTERNA
- Para modificar el contenido de un registro se utiliza la sentencia MODIFY.
wa_proveedores-dni = '1234567'.
MODIFY ti_proveedores FROM wa_proveedores INDEX 1.
- Para insertar un resgistro en una posición determinada utilizaremos la sentencia INSERT.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
- Para Borrar el contenido de un registro se utiliza la sentencia DELETE
DELETE ti_proveedores WHERE dni = '1234567'.
- Para borrar todo el contenido de una tabla interna se utiliza la sentencia REFRESH
REFRESH ti_proveedores.
- Para saber cuantos registros tiene la tabla interna se utiliza DESCRIBE TABLE
DATA : v_lineas TYPE i.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
- Para inicializar el área de trabajo
CLEAR wa_proveedores.
- Para liberar el espacio ocupado en memoria por la tabla interna:
FREE ti_proveedores.
 
 
 
Sobre el autor
Publicación académica de Maria Guadalupe Gonzalez Sanchez, en su ámbito de estudios para la Carrera Consultor ABAP.
Maria Guadalupe Gonzalez Sanchez
Mexico - Legajo: LB83R
✒️Autor de: 147 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP BI / BW BO Nivel Inicial
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial