
TABLA INTERNA
-------------------------
Es un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura.
En una tabla interna podremos almacenar de 0 a n registros de datos.
Siendo n la cantidad de registros máxima que está relacionada con los límites especificados en la instalación del sistema SAP.
Una tabla interna existe en memoria mientras se esta ejecutando el programa. Luego de ello su contenido se pierde.
Una tabla interna tiene un cuerpo, el cual esta compuesto 1 a n campos, y una cabecera la cual es una estructura que tiene el mismo formato de la tabla interna y se utiliza para acceder a los registros de la tabla interna.
Existen varias formas de declarar tablas internas en ABAP, veamos a continuación algunas de ellas.
Podemos utilizar la adición WITH HEADER LINE para crear en la misma tabla interna la cabecera:
DATA: ti_documentos LIKE TABLE OF dfkkop WITH HEADER LINE.
Otra forma es utilizando la adición OCCURS 0 tal como vemos a continuación:
DATA: BEGIN OF ti_seltab OCCURS 0.
INCLUDE STRUCTURE iseltab.
DATA: END OF ti_seltab.
Otra forma es utilizando TYPES:
TYPES:
BEGIN OF ty_ekko,
ebeln TYPE ebeln,
bukrs TYPE bukrs,
bstyp TYPE ebstyp,
bsart TYPE esart,
aedat TYPE aedat,
ernam TYPE ernam,
lifnr TYPE lifnr,
spras TYPE spras,
zterm TYPE dzterm,
ekorg TYPE ekorg,
ekgrp TYPE ekgrp,
waers TYPE waers,
kdatb TYPE kdatb,
kdate TYPE kdate,
angnr TYPE angnr,
ihran TYPE ihran,
verkf TYPE everk,
inco1 TYPE inco1,
inco2 TYPE inco2,
ktwrt TYPE ktwrt,
frgke TYPE frgke,
knumv TYPE knumv,
lands TYPE land1_stml,
END OF ty_ekko.
DATA: wa_ekko TYPE ty_ekko,
ti_ekko TYPE STANDARD TABLE OF ty_ekko.
-----------------------------------
ÁREA DE TRABAJO
------------------------------------
Cuando hablamos de Área de trabajo o Working area, nos estamos refiriendo a la cabecera de una tabla interna que tiene el contenido del registro de la tabla interna que se está procesando en ese momento.
En la actualidad cuando se declara una tabla interna en un programa ABAP, es ampliamente recomendable declarar un tipo de datos utilizando TYPES, luego declarar una área de trabajo que utilice ese TYPE y por último la tabla interna utilizará esa área de trabajo para su declaración.
No se recomienda más utilizar la palabra reservada WITH HEADER LINE para la declaración de una tabla interna que incluya su cabecera.
SORT --> Ordenar registros de una tabla interna. ASENDING/DESCENDING
INSERT --> Insertar registro a la Tabla Interna.
INDEX --> indice de la Tabla Interna.
DELETE --> Borrar registro de una Tabla Interna.
Tip:
Veamos otras instrucciones de Tablas Internas que podamos utilizar:
* Para inicializar la wa y cabecera de la Ti usamos la siguiente instrucción:
CLEAR wa_proveedores.
* Para liberar el espacio ocupado en memoria por la Tabla Interna usamos:
FREE ti_proveedores.
* La sentencia REFRESH borrará el contenido de la ti (inicializo la ti) no a la Tabla Interna en sí.
REFRESH ti_proveedores.