✒️ABAP / Las tablas internas Por Oscar Rodriguez Villate
ABAP Las tablas internas

Diccionario de datos
tablas internas: guarda registros de la misma estructura en memoria, realizar operacionescon la informacion, cant. maxima relacionado con los limites especificados en la instalacion del sistema. Usos: almacenar temporalmente datos para un procesamiento futuro, estructurar y formatear datos para mostrar y ser utilizados por otros servicios.
declara una tabla interna:
data: begin of <tabla> occurs <n>
<def campo>
end of <tabla>.
por lo general se pone occurs 0 para tablas de gran cantidad de registros.
data: begin of ti_proveedores occurs 0,
nombre(30) type c,
apellido(30) type c,
dni(8) type c,
end of ti_proveedores.
otra forma seria :
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.
tambien con with header line.
data: ti_vuelos like standard table of s_flight with header line.
TAMBIEN PARA DECLARAR UNA ESTRUCTURA O AREA DE TRABAJO CON LIKE LINE OF
data: wa_proveedores like line of ti_proveedores.
--------------------------------------------------------------------------------------------
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 el area de trabajo.
clear wa_proveedores.
wa_proveedores-nombre = 'ernesto',
wa_proveedores-apellido = 'villanueva'.
wa_proveedores-dni = '2498754'.
append wa_proveedores to ti_proveedores.
para llenar con el contenido de una base de datos es con select
----------------------------------------------------------------------------------------------
ordenamiento de una tabla interna
SORT:
sort ti_proveedores by dni descending.
de menor a mayor es con ascending.
----------------------------------------------------------------------------------------------
procesamiento de una tabla interna
para recorrer y procesar registro a registro con loop - endloop.
LOOP AT ti_proveedores into wa_proveedores
where not nombre is initial
ENDLOOP.
-------------------------------------------------------------------------------------------------
LECTURA DE UNA TABLA INTERNA
READ TABLE : Leer tabla interna sin necesidad de recorrerla.
READ TABLE ti_proveedores INTO wa_proveedores
WITH KEY nombre = 'Ariel' .
SY-SUBRC = 0 SI ENCUENTRA EL REGISTRO SINO SY-SUBRC<>0.
Si se desea leer los datos en una posiciín en particular de la tabla se utiliza INDEX.
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
Con BINARY SEARCH hace la busqueda mas eficiente.
---------------------------------------------------------------------------------------------------------------------------------
MODIFICANDO UNA TABLA INTERNA
MODIFY
wa_proveedores-dni = '24987500'.
MODIFY ti_proveedores FROM wa_proveedores INDEX 1.
SY-SUBRC<>0 si no existe el registro.
----------------------------------------------------------------------------------------------------------------------------
INSERT
Inserta un registro en una posición determinada de una tabla interna.
wa_proveedores-nombre = 'marcelo'.
wa_proveedores-apellido = 'riverola'.
wa_proveedores-dni = '20857492'.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
-------------------------------------------------------------------------------------------------------
DELETE
Borrar contenido de un registro.
DELETE ti_proveedores
WHERE dni = '20857942'.
----------------------------------------------------------------
REFRESH
borrar todo el contenido de una tabla interna
REFRESH ti_proveedores.
----------------------------------------------------------------------------------------------------
DESCRIBE TABLE
Saber cuantos registros tiene una tabla interna.
DATA: v_lineas type i.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
-----------------------------------------------------------------------------------------
CLEAR
inicializar el area de trabajo o cabecera
CLEAR wa_proveedores.
FREE
liberar espacio de trabajo de una tabla interna en memoria
FREE ti_proveedores.
REFRESH
borra contenido de la tabla y no la tabla en si.
 
 
 
2 Agradecimientos:
Han agradecido este aporte: William Lemus, Yeffer Sierra Saenz
Sobre el autor
Publicación académica de Oscar Guillermo Rodriguez Villate, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Oscar Guillermo Rodriguez Villate
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WM49P
✒️Autor de: 103 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
























