✒️ABAP Las tablas internas
ABAP Las tablas internas
Tablas internas
Para guardar una coleccion de registros de datos de la misma estructura en memoria, sin necesidad de acceder a la base de datos y poder realizar diversas operaciones.
El limite de cantidad de registros está relacionada con lo limites especificados en la instalación del sistema.
Para
a. Almacenar temporalmente los datos para un procesamiento futuro.
b. Estructurar y formatear datos que se mostraran como salida de programa.
c. Formatear datos para ser utilizados por otros servicios.
2. Como se declara una tabla interna?
data: Begin of <tabla> Occrus <n>
<Def.Campo>
end of <Tabla>
La Cantidad de lineas que se especifican en occurs no limitan el tamaño de la tabla sino la cantidad de registros que se guardaran en memoria simultaneamente.
Occurs = 0 permite trabajar con tablas de gran cantidad de registros.
Otra forma de declarar la tabla sería
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 sin especificar area de trabajo o cabecera
Data: t_vuelos like Standard table of s_flight with header line.
3. llenado de una tabla interna
a. APPEND TO: añade un registro a la tabla interna en la ultima posicion con los valores que tengamos en el area de trabajo.
Clear wa_proveedores.
wa_proveedores-nombre = 'Ernesto'.
wa_proveedores-apellido = 'Villanueva'.
Append wa_proveedores to ti_proveedores.
b. Select llenamos la tabla interna con el contenido de la base de datos.
4. Ordenamiento de una tabla interna.
Sentencia Sort.
sort ti_proveedores by dni descending. // ascending e menor a mayor.
5. Procesamiento de una tabla interna
Para recorrer una tabla interna Loop-endloop.
loop at ti_proveedores into wa_proveedores
where not nombre is initial.
end loop.
si queremos declarar una tabla interna igual a otra
data: wa_proveedores like line of ti_proveedores.
6. Lectura de una tabla interna
Para leer un registro concreto Read Table
READ TABLE ti_proveedores INTO wa_proveedores
WITH KEY nombre = 'Ariel'.
Para leer los datos que se encuentran en una posicion particular se utilizará INDEX
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
BINARY SEARCH en la sentencia READ TABLE hace que sea mas eficiente la busqueda.
Modificar un valor de la tabla interna
a. asignar al resto de los campos los mismos valores que posee y modificar el que deseamos.
b. Utilizar transporting
Modify ti_usuarios index idx from wa_usuarios
Transporting DNI.
7. Modificando una tabla interna
Sentencia Modify
wa_proveedores-dni = '24987500'
Modify ti_proveedores From wa_proveedores INDEX 1.
Insert
Para insertar un registro en una posicion determinada.
wa_proveedores-nombre = 'Marcelo'.
Insert wa_proveedores into ti_proveedores index 2.
Delete
para borrar el contenido de un registro.
DELETE ti_proveedores
where dni = '20857492'.
Refresh
para borrar todo el contenido de una tabla interna, pero no la tabla en si.
Refresh ti_proveedores.
DESCRIBE TABLE
Para saber cuantos registros tiene una tabla interna.
Data : v_lineas type i.
describe table ti_proveedores Lines v_lineas.
Clear ti_proveedores
para inicializar la cabecera de trabajo de la tabla interna
free ti_proveedores
Para liberar memoria que utilizo la tabla interna.
 
 
 
Sobre el autor
Publicación académica de Silvia Marina Carrizo, en su ámbito de estudios para la Carrera Consultor ABAP.
Silvia Marina Carrizo
Profesión: Analista Senior Genexus - Argentina - Legajo: ER54O
✒️Autor de: 61 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Silvia Carrizo