✒️ABAP Las tablas internas
ABAP Las tablas internas
Tablas internas
Objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura. La cantidad de registros máxima esta relacionada con los limites específicos en la instalación del sistema.
Se usa para:
§ Para estructurar y formatear datos que se mostraran como salida del programa
DATA: BEGIN OF <tabla> OCCURS <n>, <def.Campo>, END OF <tabla>.
|
è OCCURS -> líneas que limita la cantidad de registros que se guardaran en memoria simultáneamente.
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:
DATA: BEGIN OF wa_proveedores, Apellido(30) TYPE c, END OF wa_proveedores.
DATA: ti_proveedores LIKE STANDART TABLE OF wa_proveedores.
|
Declarando tabla interna a partir de tabla estándar sflight, con lo mismos headers
Data: ti_vuelos LIKE STANDART TABLE OF sflight WITH HEADER LINE.
|
No se recomienda más utilizar la palabra reservada WITH HEADER LINE para la declaración de una tabla interna que incluya su cabecera.
Llenado de la tabla interna.
APPEND TO: añade un registro a la tabla interna, en la última posición con los valores que tengamos en el área de trabajo.
*añadir un registro a tabla interna proveedores Wa_proveedores-nombre =’Ernesto’. Wa_proveedores-apellido =’Villanueva’. Wa_proveedores-dni =’24987253’. APEND wa_proveedores TO ti_proveedores.
*Añadir otro resgitro a la tabla interna CLEAR wa_proveedores. Wa_proveedores-nombre =’Juan’. Wa_proveedores-apellido =’Carvajal’. Wa_proveedores-dni =’24987253’. APPEND wa_proveedore TO ti_proveedores.
|
Ordenamiento tabla interna
Se usa la sentencia SORT
SORT ti_proveedores BY dni DESCENDING.
|
ASCENDING para ordenar ascendentemente.
Para recorrer una tabla interna y procesar un registro utilizaremos LOOP-ENDLOOP
*recorre la tabla donde el nombre no este vacio LOOP AT ti_proveedores INTO wa_proveedores WHERE NOT nombre IS INITIAL. **ACCIONES
ENDLOOP. |
Si no existe registro que cumpla la condición especificada en la clausula WHERE, el SY-SUBRC será distinto de 0.
DATA: wa_proveedores LIKE LINE OF ti_proveedores.
Creando estructura cuyo formato es idéntico a un registro cualquiera de la tabla interna ti_proveedores
|
Para leer un registro concreto de una tabla sin necesidad de recorrerla se usa la sentencia READ TABLE.
READ TABLA ti_proveedores INTO wa_proveedores WHIT KEY nombre = ‘Ariel’.
|
Si se encuentra el registro, el SY-SUBRC será 0, de lo contrario será distinto de 0.
Si se quiere leer una posición particular de una tabla se usa la cláusula INDEX.
*Lee el primer registro de una tabla. READ TABLE ti_proveedores INTO wa_proveedores INDEX 1. |
El agregado de la clausula BINARY SEARCH en la sentencia READ TABLE, hace que la búsqueda sea mucho mas eficiente.
Modificando tabla interna
Para modificar el contenido de un registro de una tabla interna usaremos la sentencia MODIFY.
MODIFY ti_proveedores FROM wa_proveedores INDEX 1. |
Para insertar un registri en una posición determinada de una tabla internta usaremos la sentencia INSERT.
Wa_proveedores-nombre = ‘marcelo’. Wa_proveedores-apellido = ‘fica’. Wa_proveedores-nombre = ‘12311231’. INSERT wa_proveedores INTO ti_proveedores INDEX 2.
|
Para Borrar el contenido de un registro de una tabla interna usamos la sentencia DELETE.
DELETE ti_proveedores WHRE dni= ‘123444123’. |
Para Vaciar – borrar todo el contenido de una tabla interna se usa el comando REFRESH.
REFRESH ti_proveedores.
|
Para saber cuantos registros tiene una tabla interna, se usa la sentencia DESCRIBE TABLE.
DATA: v_lineas TYPE i. DESCRIBE TABLE ti_proveedores LINES v_lineas.
|
Otras:
Inicializar área de trabajo: CLAER wa_tiproveedores
Linero espacio en memoria: FREE ti_proveedores
** REFRESH vacía la tabla, pero no la tabla en si
 
 
 
Sobre el autor
Publicación académica de Juan Pablo Carvajal Oyarzun, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Pablo Carvajal Oyarzun
Profesión: Ingeniería en Informática - Chile - Legajo: PA39Z
✒️Autor de: 8 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Máster Funcional ABAP
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Certificación Académica de Juan Carvajal