Вы находитесь на странице: 1из 5

Ejemplos de sentencias para

trabajar con tablas internas


Ahora veremos por medio de ejemplos como trabajar con las tablas
internas en ABAP, en esta leccin aprenderemos a cargar valores
desde una base de datos, cargar datos manualmente, eliminar valores
duplicados, ordenar datos y copiar valores entre tablas.
Cargar datos en una tabla interna
Podemos cargar datos ya sea registro por registro o podemos hacer
una carga desde la base de datos usando sentencias OPEN SQL,
veamos algunos ejemplos: En este ejemplo se cargan datos en una
tabla interna mediante una sentencia SELECT, usando INTO TABLE,
en este caso el orden y cantidad de campos de la sentencia SELECT
deben de coincidir con el orden y campos de la tabla interna, en este
caso la carga de datos se realiza como de muestra en esta imagen:

"Declarar una tabla interna con Header line
DATA: BEGIN OF it_bkpf OCCURS 0,
bukrs TYPE bukrs,
belnr TYPE belnr_d,
gjahr TYPE gjahr,
END OF it_bkpf.

"Cargar tabla bkpf en una tabla interna
SELECT bukrs belnr gjahr
INTO TABLE it_bkpf
FROM bkpf.
Si por alguna razn nuestra tabla interna no puede coincidir con los
campos en la sentencia SELECT, por ejemplo si en la tabla interna
hemos declarado algunas columnas que servirn para realizar otros
clculos, podemos utilizar la
sentencia INTO CORRESPONDING FIELDS OF TABLE, esta
sentencia carga los campos ledos en la sentencia SELECT en los
campos de la tabla interna que coincidan con el mismo nombre, sin
importar el orden de los campos, como se ve en esta imagen:

"Cargar tabla bkpf en una tabla interna
SELECT gjahr bukrs
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
FROM bkpf.
Si ya tenemos datos en una tabla interna pero queremos agregar otro
conjunto de datos de forma similar a como trabaja la sentencia UNION
de SQL, podemos utilizar las
sentencias APPENDING TABLE o APPENDING CORRESPONDING
FIELDS OF TABLE, dependiendo de si los campos de la sentencia
SELECT y la tabla interna coincidan.
"Si la tabla interna solo tiene estos 3 campos
"y fueron declarados en este mismo orden
SELECT bukrs belnr gjahr
APPENDING TABLE it_bkpf
FROM bkpf.

"Si la tabla interna tiene otros campos adicionales
"o estan en otro orden
SELECT gjahr bukrs
APPENDING CORRESPONDING FIELDS OF TABLE it_bkpf
FROM bkpf.
Adems de cargar datos desde una sentencia SQL tambin podemos
cargar datos manualmente, utilizando la tabla interna que ya definimos
podemos usar estas sentencias para cargar datos.
"Agrega una linea con datos
it_bkpf-bukrs = '1000'.
it_bkpf-belnr = '000001'.
it_bkpf-gjahr = '2013'.
APPEND it_bkpf.

"Agrega una linea en blanco
APPEND INITIAL LINE TO it_bkpf.
Si queremos agregar filas de datos a tablas internas sin header line,
debemos primero declarar un tipo de datos con las columnas que
deseemos, luego declarar una tabla interna de ese mismo tipo y una
variable que nos sirva como work area, para luego insertar los datos,
aqu tenemos un ejemplo completo:
"Declarar un tipo de datos complejo
TYPES: BEGIN OF t_bkpf,
bukrs TYPE bukrs,
belnr TYPE belnr_d,
gjahr TYPE gjahr,
END OF t_bkpf.

"Declarar una tabla interna sin header line
data it_t_bkpf TYPE TABLE OF t_bkpf.
"Declarar un work area
data wa_t_bkpf TYPE t_bkpf.

"Agregar una linea con datos
wa_t_bkpf-bukrs = '1000'.
wa_t_bkpf-belnr = '000001'.
wa_t_bkpf-gjahr = '2013'.
APPEND wa_t_bkpf to it_t_bkpf.

APPEND INITIAL LINE TO it_t_bkpf.
Operaciones con datos de una tabla interna
Ahora que tenemos datos en nuestra tabla interna podemos realizar
una serie de operaciones, veremos ahora algunos ejemplos Si
queremos ordenar los datos podemos hacerlo mediante la
sentencia SORT, esta ordena la tabla por uno o mas campos
separados por un espacio en blanco, el orden predeterminado es
ascendente.
"Ordena la tabla por el campo1 y luego por
"el campo2 en forma ascedente (predeterminado)
SORT it_tabla BY campo1 campo2.


http://abap.facilparami.com/2014/01/ejemplos-de-sentencias-para-trabajar-con-tablas-
internas/

Вам также может понравиться