✒️ABAP Las tablas internas
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.
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
Certificación Académica de Oscar Rodriguez