✒️ABAP Las tablas internas
ABAP Las tablas internas
Tabla Interna -> Objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura con el fin de utilizar la información sin necesidad de acceder continuamente a las bases de datos. (La cantidad de registros máxima está relacionada con los límites especificados en la instalación del sistema).
Uso típico de una tabla interna:
- Almacenar temporalmente los datos de las bases de datos para un procesamiento futuro
- Estructurar y formatear datos que se mostrarán como salida del programa
- Formatear datos para ser utilizados por otros servicios
Declarar una tabla interna
Sintaxis:
DATA: BEGIN OF <tabla> OCCURS <n>,
<Def.Campo>,
...
END OF <tabla>.
En una tabla interna se puede almancenar de 0 a n registros de datos, siendo n la cantidad máxima de registros que está relacionada con los límites especificados en la instalación de SAP.
La cláusula OCCURS no límita el tamaño de la tabla sino la cantidad de registros que se guardarán en memoría simultaneamente. Por lo general con OCCURS se especifica la cantidad 0 lo que permite trabajar con tablas de gran cantidad de registros.
Otra forma de declarar tablas internas, sin especificar áreas de trabajo o cabecera, es mediante WITH HEADER LINE.
Si se quiere crear una tabla interna del mismo tipo que una tabla estandar del sistema
EJ. DATA: ti_vuelos LIKE STANDARD TABLE OF sflight WITH HEADER LINE.
De esta forma se declara una tabla interna donde la cabecera o área de trabajo es la misma tabla interna
Llenado de tabla interna
Para llenar con datos una tabla interna se utiliza:
APPEND TO: Añade un registro de la tabla interna en la última posición con los valores de se tengan en el área de trabajo
SELECT: Llena una tabla interna con el contenido de una base de datos.
Ordenamiento de Tabla Interna
SORT: Ordena una tabla interna Ej. SORT ti_proveedores BY dni DESCENDING
- ASCENDING-> Ordena de forma ascendente. El ordenamiento por default es ascendente por lo que no es necesario usar especificarlo
- DESCENDING-> Ordena de forma descendente
Procesamiento de tabla interna
Con la sentencia LOOP-ENDLOOP se recorre una tabla interna y se procesa registro a registro. Utilizando la cláusula WHERE se coloca una condición. Si no existe ningún registro que cumpla la condición especificada, el SY-SUBRC será distinto a 0
Otra forma de declarar una estructura o área de trabajo de una tabla interna la cual se realiza utilizando LIKE LINE OF. Con la cual se crea una estructura con el mismo formato de una tabla interna.
Lectura de Tabla Interna
- READ TABLE: Se usa para leer un registro concreto de una tabla interna sin necesidad de recorrerla.
Ej. READ TABLE ti_proveedores INTO wa_proveedores
WITH KEY nombre = 'Ariel'.
- INDEX: Se usa para leer datos que se encuentran en una posición particular de la tabla.
Ej. READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
Al agregar la cláusula BINARY SEARCH en al sentencia READ TABLE hace que la búsqueda sea ampliamente más eficiente.
Modificando Tabla Interna
- Sentencia MODIFY: modifica el contenido de un registro de una tabla interna.
- Sentencia INSERT: inserta un registro en una posición de una tabla interna.
- Sentencia DELETE: borra el contenido de un registro de una tabla interna.
- Sentencia REFRESH: borra todo el contenido de una tabla interna (no borra la tabla, solo el contenido)
- Sentencia DESCRIBE TABLE: saber cuantos registros tiene una tabla interna.
- Sentencia CLEAR: Inicializar area de trabajo o cabecera
- Sentencia FREE: Liberar espacio ocupado en memoria por una tabla interna
 
 
 
Sobre el autor
Publicación académica de Ninoska Marquez, en su ámbito de estudios para la Carrera Consultor ABAP.
Ninoska Marquez
Profesión: Ing. de Sistema - Honduras - Legajo: FU90M
✒️Autor de: 99 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Me llamo ninoska marquez tengo 44 anos, tengo varios años de trabajar para una empresa donde me desempeño con el cargo de programador junior, soy perseverante, amable, tranquila
Certificación Académica de Ninoska Marquez