✒️ABAP Las tablas internas
ABAP Las tablas internas
Tablas Internas:
Es un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estrucutura, la cantidad de registros maxima esta relacionada con los limites especificados en la instalacion del sistema.
Usualmente se utilizan para:
- Almacenar temporalmente los datos de las bases de datos para un procesamiento futuro
- Para estructurar y formatear datos que se mostraran como salida del programa
- Para formatear datos para se utilizadas por otros servicios
Como se declara una tabla interna?
la sintaxis es la siguiente:
DATA: BEGIN OF <Tabla> OCCURS <n>, <Def.Campo>, END OF <Tabla>
OCCURS no limita el numero de registros en la tabla, si no la cantidad de registros almacenados en memoria de forma simultanea, generalmente se especifica la cantidad <0> lo que permite trabajar con tablas de gran cantidad de registros.
Llenado de una tabla interna:
para llenar la tabla con datos usamos APPEND TO: lo cual añade un registro en la tabla interna en la ultima posición con los valores que tengamos en el área de trabajo, de manera directa se añade.
Para llenar la tabla con información proveniente de la base de datos empleamos el comando SELECT.
Ordenamiento de una tabla interna
Para ordenar una tabla interna utilizamos la sentencia SORT con la siguiente sintaxis
SORT ti_proveedores BY dni DESCENDING ó ASCENDING
Procesamiento de una tabla interna
para recorrer una tabla interna se emplea la sentencia LOOP-ENDLOOP, con la siguiente sintaxis:
LOOP AT ti_proveedores INTO wa_proveedores
WHERE NOT nombre IS INITIAL.
ENDLOOP
Si no existe ningun registro que cumpla con las condiciones indicadas en WHERE el SY-SUBRC sera distinto de cero.
LECTURA DE UNA TABLA INTERNA
Para leer un registro concreto de una tabla interna sin recorrerla utilizamos la sentencia READ TABLE, con la siguiente sintaxis:
READ TABLE ti_proveedores INTO wa_proveedores
WITH KEY nombre = 'Ariel'
Si se encuentra el registro buscado el SY-SUBRC sera cero, en caso contrario sera distinto de cero.
Agregar la clausula BINARY SEARCH a la sentencia READ TABLE hace la busqueda mas eficiente.
Modificando una tabla interna
para modificar el contenido de una tabla interna se emplea la sentencia MODIFY, con la siguiente sintaxis:
wa_proveedores-dni = '24987500'
MODIFY ti_proveedores FROM wa_proveedores INDEX 1.
para insertar un registro en una posición especifica de una tabla se usa la sentencia INSERT con la siguiente sintaxis:
wa_proveedores-nombre = 'Marcelo'.
wa_proveedores-apellido = 'Rivarola'.
wa_proveedores-dni = '20857492'.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
Para borrar el contenido de n registro de una tabla interna utilizamos la sentencia DELETE asi:
DELETE ti_proveedores
WHERE dni = '20857492'
Para borrar todo el contenido de una tabla se emplea la sentecia REFRESH con la siguiente sintaxis:
REFRESH ti_proveedores.
para saber cuantos registros tiene una tabla interna utilizamos la sentencia DESCRIBE TABLE, declarando la una variable para que en ella se presente el resultado como se presenta en la siguiente sintaxis:
DATA: v_lineas TYPE i.
DESCRIBE TABLE ti_proveedores LINES v_lines.
 
 
 
Sobre el autor
Publicación académica de Mario Fernando Abaunza Cristancho, en su ámbito de estudios para la Carrera Consultor ABAP.
Mario Fernando Abaunza Cristancho
Profesión: Contador Publico - Colombia - Legajo: QD49R
✒️Autor de: 2 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Certificación Académica de Mario Abaunza