![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las tablas internas
ABAP Las tablas internas
![ABAP Las tablas internas ABAP Las tablas internas](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/16.jpg)
1| QUE SON TABAS INTERNAS
ES UN OBJETO DE DATOS QUE PERMITE GUARDAR EN MEMORIA GRANDES CANTIDADES DE REGISTRO DE DATOS CON LA MISMA ESTRUCTURA.
LA CANTIDAD DE REGISTROS MAXIMOS ESTA RELACIONADA CON LOS LIMITES ESPECIFICOS EN LA INSTALACION DEL SISTEMA.
* PARA ALMACENAR TEMPORALMENTE LOS DATOS DE LA BASES DE DATOS PARA UN PROCESAMIENTO
* PARA ESTRUCTURAR Y FORMATEAR DATOS QUE E MOSTRARAN COMO SALIDA DEL PROGRAMA
* PARA FORMATEAR DATOS PARA SER UTILIZADOS POR OTROS SERIVICIOS.
2| COMO SE DECLARA UNA TABLA INTERNA
DATA: BEGIN OF <TABLA> OCCURS <N>,
<DEF.CAMPO>,
....
END OF <TABLA>.
POR LO GENERAL. EN EL PARAMETRO OCCURS SE ESPECIFICA LA CANTIDAD 0 LO QUE PERMITE TRABAJAR CON TABLAS DE GRAN CANTIDAD DE REGISTROS.
3| LLENADO DE UNA TABLA INTERNA
* APPEND TO
AÑADO UN REGISTRO A LA TABLA INTERNA PROVEEDORES
CLEAR WA_PROVEEDORES.
WA_PROVEEDORES-NOMBRE = 'ERNESTO'.
WA_PROVEEDORES-APELLIDO = 'VILLA'.
WA_PROVEEDORES-DNI = '12345'.
APPEND WA_PROVEEDORES TO TI_PROVEEDORES.
4| ORDENAMIENTO DE UNA TABLA INTERNA
SE UTILIZA LA SENTENCIA SORT
ORDENO LOS PROVEEDORES DE MAYOR A MENOR POR DNI
SORT TI_PROVEEDORES BY DNI DESCENDING.
5| PROCESAMIENTO DE UNA TABLA INTERNA
PARA RECORRER UNA TABLA INTERNA Y PROCESAR REGISTRO A REGISTRO SE UTILIZA LA SENTENCIA LOOP-ENDLOOP
LOOP AT TI_PROVEEDORES INTO WA_PROVEEDORES
WHERE NOT NOMBRES IN INITIAL.
ENDLOOP.
SI NO EXISTE NINGUN REGISTRO QUE CUMPLA LA CONDICION ESPECIFICADA EN LA CLAUSULA WHERE. EL SY-SUBRC SERA DISTINTO DE CERO.
6| LECTURA DE UNA TABLA INTERNA
PARA LEER UN REGISTRO DE UNA TABLA INTERNA SIN NECESIDAD DE RECORRERLA UTLIZAMOS LA SENTENCIA READ TABLE.
READ TABLE TI_PROVEEDORES INTO WA_PROVEEDORES
WITH KEY NOMBRE = 'ARIEL'.
SI SE ENCUENTRA EL REGISTRO BUSCADO, EL SY-SUBRC SERA CERO, CASO CONTRARIO SERA DISTINTO DE CERO SI SE DESEA LEER LOS DATOS QUE SE ENCUENTRAN EN UNA POSICION PARTICULAR DE LA TABLA SE UTILIZARA LA CLAUSULA INDEX
READ TABLE TI_PROVEEDORES INTO WA_PROVEEDORES INDEX 1.
7| MODIFICANDO UNA TABLA INTERNA
SE USARA MODIFY
WA_PROVEEDORES-DNI = ''2456.
MODIFY TI_PROVEEDORES FROM WA_PROVEEDORES INDEX 1.
*INSERTO UN REGISTRO EN LA SEGUNDA POSICION DE LA TABLA
WA_PROVEEDORES-NOMBRE = 'MARCELO'.
WA_PROVEEDORES-APELLIDO = 'RIVAROLA'.
WA_PROVEEDORES-DNI = '252525'.
INSERT WA_PROVEEDORES INTO TI_PROVEEDORES INDEX 2.
* DELETE
DELETE TI_PROVEEDORES WHERE
DNI = '22225'.
*REFRESH
INICIALIZO LA TABLA INTERNA
REFRESH TI_PROVEEDORES.
*DESCRIBE
DATA: V_LINEAS TYPE I.
DESCRIBE TABLE TI_PROVEEDORES LINES V_LINEAS.
 
 
 
Sobre el autor
Publicación académica de Luis Eugenio Leyva Orozco, en su ámbito de estudios para la Carrera Consultor ABAP.
Luis Eugenio Leyva Orozco
Profesión: Desarrollador de Sistemas - Mexico - Legajo: QR41L
✒️Autor de: 70 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado del módulo:
Certificación Académica de Luis Leyva