![](/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/34.jpg)
TABLAS INTERNAS
Es un objeto de datos que permite guardar en memoria grandes cantidades de registro de datos con la misma estructura.
uso tipico:
- Almacenamiento temporal de datos para procesamiento futuro
- Estructurar y formatear datos que se mostrarán como salida del programa
- Formatear datos a ser usado por otros servicios
DECLARACION, hay 2 formas
DATA: BEGIN OF <nombre_tabla> OCCURS 0,
campo(x) TYPE c,
campo2(y) TYPE c,
END OF < nombre_tabla>.
*OCCURS indica la cantidad de registros que se guardarán en memoria, no limita el tamaño de la tabla, si se pone 0 es indefinido
DATA: BEGIN OF <nombre_estruc>,
campo1(x) TYPE c,
campo2(y) TYPE c,
END OF <nombre_estruc>.
DATA: <tabla_nombre> LIKE STANDARD TABLE OF <nombre_estruc>
LLENADO DE UNA TABLA INTERNA
Con la sentencia APPEND TO , añade un registro a la tabla interna en su ultima posición con los valores que se tengan en el area de trabajo
APPEND <variable tipo estructura> TO <Tabla interna>
También se puede llenar una tabla interna con el contenido de una base de datos , usando la sentencia SELECT
ORDENAMIENTO
SORT <Tabla_interna> BY campo DESCENDING.
PROCESAMIENTO
Se recorre una tabla interna con la sentencia LOOP-ENDLOOP
LOOP AT <tabla_interna> INTO <var_estruct>
WHERE NOT campo1 IS INITIAL.
ENDLOOP.
*Se puede verificar , el resultado del WHERE con SY-SUBRC, sino cumple la condición es <>0
LECTURA DE UNA TABLA
Usando la sentencia READ TABLE sin necesidad de recorrerla
READ TABLE <nombre_tabla> INTO <var_estruct>
WITH KEY <campo> = 'Juan'.
Para leer los datos en una posición particular se usa la Clausula INDEX
READ TABLE <nombre_tabla> INTO <var_estruct> INDEX <posic.>
* La cláusula BINARY SEARCH hace que la búsqueda sea mucho más eficiente
MODIFICANDO UNA TABLA INTERNA
Para modificar un registro de la tabla interna:
MODIFY <nombre_tabla> FROM <var_estruct> INDEX <posic>.
EJ: wa_clientes-nombre = 'Juan'
MODIFY ti_clientes FROM wa_clientes index 1.
Para insertar un registro en una posición determinada de una tabla interna:
INSERT <var_estruc> INTO <nombre_tabla> INDEX <posic>.
Para borrar el contenido de un registro de una tabla interna:
DELETE <nombre_tabla> WHERE campo = 'valor''.
Para borrar todo el contenido de una tabla interna o inicializarla :
REFRESH <nombre_tabla>.
OTRAS INSTRUCCIONES
CLEAR <Area de trabajo o cabecera> " para inicializar
FREE <Area de trabajo o cabecera> " para liberar el espacio ocupado por una tabla interna en memoria
REFRESH " Borrará el contenido de la tabla y no la tabla en sí
 
 
 
Sobre el autor
Publicación académica de Widen Boris Horacio Nogales, en su ámbito de estudios para la Carrera Consultor ABAP.
Widen Boris Horacio Nogales
Profesión: Ingeniero de Sistemas - Bolivia - Legajo: PQ81E
✒️Autor de: 26 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Ingeniero de sistemas con experiencia en implementación de sistemas erp, administración y soporte erps como sap bussines one, implementación soluciones bi , conocimientos de contabilidad .
Certificación Académica de Widen Horacio