✒️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 limites especificados en la instalación del sistema.
El uso típico es:
- 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.
Como se declara un atabla interna?
La sintaxis es:
DATA: BEGIN OF <tabla> OCCURS <n>,
<Def.Campo>,
....
END OF <tabla>.
Con n lineas en memoria, más una linea de cabecera o área de trabajo.
La cantidad de lineas que se especifican en OCCURS no limita el tamaño de ña tabla sino la cantidad de registros que se guardarán simultaneamente.
OCCURS Se utiliza para especificar la cantidad de registro en memoria de una tabla interna. La sintaxis es la siguiente:
DATA: BEGIN OF <Internal table name> OCCURS <n>
<Field Structure / Line Type>,
END OF <Internal Table name>.
Importante aclarar que <n> no limita el número máximo de registros que se pueden almacenar en un tabla interna sino la cantidad de registros que se guardarán en memoria simultáneamente..
Por lo general en el parámetro OCCURS se especifica la cantidad 0 lo que permite trabajar con las tablas de gran cantidad de registros.
Ejemplo en tabla interna:
*Tabla interna de Proveedores.*
Data. BEGIN OF ti_proveedores OCCURS 0,
nombre(30) Type c,,
apellido(30) Type c,
dni (8) Type c,
END OF ti_proveedores.
Otra forma forma de crear tablas internas es con WITH HEADER LINE que incluye la cabecera.
3: llenado de una tabla interna:
Para el llenado utilizamos:
APPEND TO: sE AÑADE UN REGISTRO A LA TABLA INTERNA EN LA ULTIMA POSICION CON LOS VALORES QUE TENGAMOS EN EL ÁERA DE TRABAJO.
4. ORDENAMIENTO
Utilizamos para ordenar la tabla interna la sentencia SHORT.
Junto a la sentencia podemos utilizar una serie de adiciones:
ASCENDING: Ordena de forma ascendente el contenido de la tabla interna. El ordenamieto por defecto es ascedente no es necesario especificar.
DESCENDING: Ordena de forma descendente el contenido de la tabla interna.
5. Procesamiento de una tabla interna:
Para recorrer una tabla interna y procesar registros a registros utilizaremos la sentencia LOOP-ENDLOOP, (PARA LA PRESENTACIÓN EN BUCLES).
sintaxis:
LOOP AT <tabla interna>
...
ENDLOOP.
Si no existe ningún registro que cumpla con la condición especificada en la clausula WHERE, el SY-SUBRC será distinto de cero.
6. Lectura de una tabla interna:
Para leer el registro concreto de una tabla interna sin necesidad de recorrerla utilizamos la sentencia READ TABLE.
Sintaxis:
READ TABLE <tabla interna>.
ejemplo: READ TABLE ti_operaciones INTO wa_operaciones WHITH KEY ACTIVITY = '0020'
Si se encuentra el registro buscado, el SY-SUBRC será cera, caso contrario será distinto de cero. Si desea leer los datos que se encuentran en una posicion particular de la tabla, se utiliza la clausula INDEX.
El agregado de la cláusula BINARY SEARCH en la sentencia READ TABLE hace que la busqueda sea ampliamente más eficiente.
7. Modificando una tabla interna.
Utilizamos la sentencia MODIFY.
Si intentamos modificar un registro de una tabla interna y el mismo no existe entonces el SY-SUBRC será distinto de cero.
Para insertar un registro utilizamos la sentencia INSERT.
Para borrar el contenido de un registro utilizamos DELETE
Para borrar todo el contenido de una tabla interna utilizamos la sentencia REFRESH.
Para conocer cuantos registros tiene una tabla interna utilizamos DESCRIBE TABLE.
CLEAR borra la cabecera, si la tabla interna no tiene cabecera, no sirve de nada hacerlo.
La cabecera es la misma tabla interna?
UNa tabla interna tiene una estructura de campos determinada. Si deseamos recorrer mediante loop dicha tabla interna, necesitamos utilizar lo que se conoce como cabecera. En este punto tenemos dos opciones: utilizar la estructura decladara con DATA para hacer de cabecera de la tabla interna o declarar la tabla interna con la cabecera incluida.
 
 
 
Sobre el autor
Publicación académica de Jairo Alexander Arias Linares, en su ámbito de estudios para la Carrera Consultor ABAP.
Jairo Alexander Arias Linares
Profesión: Ingeniería de Telecomunicaciones - Venezuela - Legajo: HD62K
✒️Autor de: 19 Publicaciones Académicas
🎓Cursando Actualmente: Consultor Funcional Módulo MM Nivel Inicial
Certificación Académica de Jairo Arias