✒️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 en 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 que se le da a una tabla interna es:
- Para almacenar temporalmente los datos de las BD para un procesamiento futuro.
- Para Estructurar y formatear datos que se mostraran como salida del programa.
- Para formatear datos para ser utilizados por otros servicios.
Declaración de una tabla interna:
BEGIN OF <tabla> OCCURS <n>,
<Def.Campo>,
...
END OF <tabla>.
Occurs: Clausula ABAP que se utiliza para especificar la cantidad de registro en memoria de una tabla interna. si se especifica la cantidad 0 permitirá trabajar con tablas de gran cantidad de datos.
WHIT HEADER LINE para declarar tabla interna sin tener que especificar aparte un área de trabajo o cabecera.
DATA: TI_Vuelos LIKE STANDAR TABLE OF S_FLIGHT WHIT HEADER LINE de esta forma se estará declarando una tabla interna en donde la cabecera o área de trabajo de la tabla es la misma tabla interna.
Llenado de una tabla Interna:
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.
Área de Trabajo: Cabecera de una tabla interna que tiene el contenido del registro de la tabla que se está procesando.
Ordenamiento de una tabla interna:
Se realiza utilizando la sentencia SORT. ejemplo:
SORT ti_proveedores BY dni DESCENDING.
Procesamiento de una tabla interna:
Se debe utilizar la sentencia LOOP-ENDLOOP. ejemplo:
LOOP AT ti_proveedores INTO wa_proveedores
WHERE NOT nombre IS INITIAL.
ENDLOOP.
Si no existe ningún registro que cumpla la condición especificada en la cláusula WHERE, el SY-SUBRC será distinto de cero.
Otra manera de declarar una estructura o area de trabajo de una tabla interna se realiza ingresando LIKE LINE OF. ejemplo:
DATA: wa_proveedores LIKE LINE OF ti_proveedores
De este modo estamos creando una estructura cuyo formato es idéntico a un registro cualquiera de la tabla interna ti_proveedores.
Lectura de una tabla interna:
Se debe utilizar la sentencia READ TABLE. ejemplo:
READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre = 'Ariel'.
Si se encuentra el registro buscado, el SY-SUBRC será cero. si se desea leer los datos que se encuentran en una posición particular de la tabla se utilizara la cláusula de INDEX. ejemplo:
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
si se coloca la cláusula BINARY SEARCH en la sentencia READ TABLE hace que la búsqueda sea ampliamente más eficiente.
Modificar una tabla interna:
se utiliza la sentencia MODIFY. ejemplo:
wa_proveedores-dni='24987500'.
MODIFY ti_provedores FROM wa_proveedores INDEX 1.
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 en una posición determinada de una tabla interna utilizaremos la sentencia INSERT. Ejemplo:
wa_proveedores-nombre = 'Marcelo'.
wa_proveedores-apellido = 'Rivarola'.
wa_proveedores-dni = '20211569'.
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
Para borrar el contenido de un registro de una tabla interna se utiliza la sentencia DELETE.
DELETE ti_proveedores WHERE dni = '20211569'.
Para borrar solamente el contenido de una tabla interna y no la tabla en si se utiliza REFRESH
REFRESH ti_proveedores.
Para saber cuántos registros tiene una tabla interna utilizaremos la sentencia DESCRIBE TABLE.
DATA: v_lineas TYPE i.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
Para inicializar el área de trabajo o cabecera de la tabla interna usaremos la sentencia CLEAR seguida del area de trabajo o cabecera, para liberar el espacio ocupado por una tabla interna de memoria utilizaremos la sentencia FREE <tablainterna>
 
 
 
Sobre el autor
Publicación académica de Jeferson José Peña Curvelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Jeferson José Peña Curvelo
Venezuela - Legajo: PD49W
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jeferson Peña