✒️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 estructura. La cantidad de registros máxima está relacionada con los límites especificados en la instalación del sistema
· Para almacenar temporalmente los datos de las bases de datos para un procesamiento futuro.
· Para estructurar y formatear datos que se mostrarán como salida del programa.
· Para formatear datos para ser utilizados por otros servicios.
OCCURS: Cláusula ABAP que se utiliza para especificar la cantidad de registros en memoria de una tabla interna. Generlamente se especifica la cantidad 0 lo que permite trabajar con tablas de gran cantidad de registros.
Existe otra forma para delcarar tablas internas sin tener que especificar aparte un area de trabajo o cabecera y que se realiza con la palabra reservada WITH HEADER LINE
Queremos crear una tabla interna ti_vuelvos del mismo tipo que la tabla standar Sflight
DATA: ti_vuelos LIKE STANDAR TABLE OF sflight WITH HEADER LINE
Para el llenado de una tabla interna se utiliza:
· APPEND TO : se añade un registro a la tabla interna en la última posición con los valores que tengamos en el área de trabajo.
AREA DE TRABAJO (Working Area) se refiere a la cabecera de una tabla interna que tiene el contenido del regristro de la tabla interna que se está procesando. Es recomendable declarar un tipo de datos utilizando TYPES, luego declarar un área de trabajo que se utilice ese TYPE y por ultimo la tabla interna utilizará esa área de trabajo apra su declaración. No se recomienda más utilizar la palabra reservada WITH HEADER LINE para la declaracion de una tabla interna que incluya su cabecera.
· SELECT: Sentencia que utiizamos para llenar la tabla interna con el contenido de una base de datos.
Ordenamiento de una tabla interna
SORT: Sentencia utilizada para ordenar una tabla interna
Para ordenar de menor a mayor hay que utilizar la cláusula ASCENDING y de mayor a menor DESCENDING
Procesamiento de una tabla interna
LOOP-ENDLOOP: Sentencia utilizada para recorrer una tabla interna y procesar registro a registro.
Si no existe ningún registro que cumpla la condición especificada en la cláusula WHERE, el SY-SUBRC será distinto de cero.
Existe otra forma de declarar una estrucutra o area de trabajo de una tabla interna y se realiza utilizando LIKE LINE OF
DATA: wa_proveedores LIKE LINE OF ti_proveedores
Estamos creando una estrucutra cuya formato es identico al un regirsto cualquiera de la tabla interna ti_proveedores
Lectura de una tabla interna
READ TABLE: Sentencia que se utiliza para leer un registro concreto de una tabla interna sin necesidad de recorrerla. Si se encuentra el registro buscado, el SY-SUBRC será cero, caso contrario, será distinto de cero.
INDEX: Cláusula utilizada para leer los datos que se encuentran en una posición particular de la tabla
BINARY SEARCH Cláusula que agregándola en la sentencia READ TABLE hace que la búsqueda sea ampliamente más eficiente.
La adición BINARY SEARCH lo que hace es realizar una búsqueda binaria, no realiza una busqueda secuencial, que consiste en leer secuencialmente cada uno de los registros de la tabla, empezando por el primero, luego por el segundo, luego por el tercero y asi hasta completar la lectura de toda la tabla, lo cual es sumamente lento y costoso.
En la busqueda binaria se parte el espacio a buscar en dos y se pregunta si está en la mitad de arriba o en la mitad de abajo, si esta en la mitad de arriba entonces se desecha la mitad de abajo y se vuelve a partir en dos la mitad de arriba y asi hasta llegar a leer el registro deseado.
Es indispensable que la tabla interna se encuentre ordenada por el campo o campos por los que se desea buscar sino la búsqueda binaria no funcionara y arrojará cualquier resultado. Puede realizarse por cualquier campo de la tabla
Modificando una tabla interna
MODIFY: Sentencia que sirve para modificar el contenido de un registro de una tabla interna
INSERT: Sentencia utilizada para insertar un registro en una posición determinada de una tabla interna.
DELETE: Sentencia utilizada para borrar el contenido de un registro de una tabla interna.
REFRESH: Sentencia para borrar todo el contenido de una tabla interna.
DESCRIBE TABLE: Sentencia que se utiliza para saber cuantos registros tiene una tabla interna.
àSentencia CLEAR seguida del area de trabajo o cabecera: Para inicializar el area de trabajo o cabecera de la tabla interna.
àSentencia FREE seguida del nombre de la tabla interna: Para liberar el espacio utilizado de la tabla interna en memoria.
àSentencia REFRESH borra el contenido de la tabla interna, y no la tabla en sí
 
 
 
Sobre el autor
Publicación académica de Sabrina Soledad Rodriguez, en su ámbito de estudios para la Carrera Consultor ABAP.
Sabrina Soledad Rodriguez
Profesión: Consultor Sap Fi - Co - Bs - Argentina - Legajo: SQ30J
✒️Autor de: 55 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Sabrina Rodriguez