✒️ABAP Las tablas internas
ABAP Las tablas internas
Tabla Interna
Si queremos guardar unos datos de la misma estructura, sin necesariamente acceder a la base de datos, se usa tablas internas.
Objetos de datos, para guardar en memoria, grandes cantidades de registros de datos de la misma estructura.
La cantidad se relaciona con los límites especificados en la instalación.
Uso típico:
Almacenamiento temporal para un procesamiento futuro.
Estructurar y formatear datos que serán salida del programa.
Formatear Datos para ser usados por otros servicios.
Sintaxis: DATA: BEGIN OF <tabla> OCCURS <número de Lineas>, <Def.Campo>,
END OF <tabla>.
El parámetro OCCURS se especifíca la cantidad 0 por lo que permite gran cantidad de registros.
Otra forma es WITH HEADER LINE
Llenar una tabla interna:
APPEND TO: Añade un registro a la tabla interna en la última posición, con los valores que tenemos en el área de trabajo.
Ordenamiento de una tabla interna.
SORT EJ: SORT ti_1 BY num DESCENDING.
Por ejemplo, en el anterior se organniza por descendiente. ASCENDING hace lo contrario.
PROCESAMIENTO DE TABLA INTERNA
Para recorrer una tabla interna y procesar un registro usamos LOOP-ENDLOOP
LOOP AT ti_1 INTO wa_1
WHERE NOT nombre IS INITIAL.
END LOOP.
Si no existe ningún registro que cumpla la condición, el SY-SUBRC será distinto de 0.
Otra forma es mediante la adición LIKE LINE OF.
DATA: wa_proveedores LIKE LINE OF ti_proveerores
Lectura de tabla interna
Para leer un registro sin necesidad de recorrer toda la tabla usamos: READ TABLE
READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre = 'Ariel'.
Para leer un registro en una posición particular de la tabla se adiciona INDEX.
READ TABLE ti_proveedores INTO wa_proveedores INDEX 1.
MODIFICACIÓN DE UNA TABLA INTERNA
Se usa la sentencia MODIFY
wa_proveedores-dni = '24957500'.
MODIFY ti_proveedores FROM wa_proveedores INDEX 1.
Sin intentamos modificar un registro de una tabla interna, y el mismo no existe entonces el SY-SUBRC será distinto de 0.
Para insertar un registro en una posición determinada, usamos INSERT.
wa_proveedores-nombre = 'Marcelo'.
wa_proveedores-apellido = 'rivarola'.
wa_proveedores-dni = '20859558'
INSERT wa_proveedores INTO ti_proveedores INDEX 2.
Para borrar el contenido de un registro usamos DELETE.
DELETE ti_proveedores
WHERE dni= '20488279'.
Para borrar todo el contenido usamos REFRESH.
Ejenplo: Inicializar la tabla interna TI_PROVEEDORES
REFRESH ti_proveedores.
Para saber cuantos registros tiene una tabla se usa DESCRIBE TABLE.
DATA: v_lineas TYPE i.
DESCRIBE TABLE ti_proveedores LINES v_lineas.
FREE _nombre de tabla: Libera el espacio
 
 
 
Sobre el autor
Publicación académica de Jair Sneider Reyes Zabala, en su ámbito de estudios para la Carrera Consultor ABAP.
Jair Sneider Reyes Zabala
Profesión: Tecnólogo en Análisis y Desarrollo de Sistemas de Información. - Colombia - Legajo: HS34M
✒️Autor de: 54 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Tecnólogo bilingue en análisis y desarrollo de sistemas, actualmente analista de mesa de ayuda semisenior, conocimiento básico de sap basis; actuamente en formación como programador sap abap.
Certificación Académica de Jair Reyes