Está en la página 1de 4

Consultor SAP ABAP Nivel 1

Clase: 01.07
Técnicas avanzadas con tablas internas

Copiando datos de una tabla interna a otra

Si dos tablas internas tienen la misma estructura, use la siguiente


declaración para duplicar el contenido de una tabla interna en otra:

it2[] = it1[].

La declaración anterior copia el contenido del cuerpo de "it1" y lo coloca en


el cuerpo de "it2". Cualquier contenido existente en "it2" se sobrescribe.

El contenido de las líneas de encabezado, si cualquiera de las tablas


internas tiene una, permanece sin cambios. Esta es la forma más eficiente de
copiar el contenido de una tabla interna a otra.

Recordemos que:

Dos tablas internas tienen la misma estructura si:

1) ambas tienen el mismo número de componentes, y


2) el tipo de datos y la longitud de cada componente es el mismo que el
componente correspondiente de la otra tabla interna. Solo los nombres de los
componentes no tienen que coincidir.

Recopilado por: Juan Ríos-Villasmil Página: 1 / 4


Consultor SAP ABAP
Consultor SAP ABAP Nivel 1
Clase: 01.07
Técnicas avanzadas con tablas internas

Copiando una porción de una tabla interna

Si desea copiar una parte de una tabla interna a otra, o si desea dejar el
contenido de la tabla de destino en su lugar, utilice las declaraciones append
lines e insert lines.

Usando la sentencia append lines

Utilice la instrucción append lines cuando desee anexar filas al final de la


tabla de destino.

Sintaxis para la sentencia append lines

append lines of it1 [from nf] [to nt] to it2.

Donde:
 It1 e it2 son tablas internas con o sin líneas de cabecera
 nf y nt son variables numéricas, literales o constantes

Los siguientes puntos aplican:


 Las estructuras de “it1” y “it2” deben coincidir.
 "nf" es el índice de la primera fila a copiar de "it1". Si no se especifica
la adición desde, la copia comienza desde la primera fila de "it1".
 "nt" es el índice de la última fila a copiar de "it1". Si no se especifica
la adición, la copia continúa en la última fila de "it1".
 Si no se especifica ni de ni a, se anexa la tabla completa.

Recopilado por: Juan Ríos-Villasmil Página: 2 / 4


Consultor SAP ABAP
Consultor SAP ABAP Nivel 1
Clase: 01.07
Técnicas avanzadas con tablas internas

 Después de que se haya ejecutado la instrucción append lines, sy-


tabix contiene el número de filas en la tabla.

Usando la sentencia insert lines

Utilice la instrucción insert lines cuando desee insertar filas en un lugar que
no sea el final en la tabla de destino.

Sintaxis para la sentencia insert lines

La siguiente es la sintaxis de la sentencia insert lines

insert lines of it1 [from nf] [to nt] into it2 [index nb].

Donde:
 it1 e it2 son tablas internas con o sin líneas de encabezado.
 nf, nt y nb son variables numéricas, literales o constantes.

Todos los puntos que se aplican a la declaración append lines también se


aplican aquí. La diferencia es que las filas de it1 se insertan en it2 antes del
número de fila nb. Si el valor de nb es el número de filas en it2 más 1, la fila se
agrega al final de it2. Si nb es mayor que eso, la fila no se agrega y sy-subrc se
establece en 4. Si nb es menor que 1, se produce un error de tiempo de ejecución.

Recopilado por: Juan Ríos-Villasmil Página: 3 / 4


Consultor SAP ABAP
Consultor SAP ABAP Nivel 1
Clase: 01.07
Técnicas avanzadas con tablas internas

Puede usar esta declaración dentro o fuera del bucle en it2. Si se utiliza
fuera, debe especificar la adición index. En el interior, el index es opcional. Si no
se especifica, se asume el número de fila actual en it2.

Listado 1.7.2: Programa ejemplo que copia datos entre tablas internas

1 report ztx010702.
2 data: begin of it1 occurs 10,
3 f1,
4 end of it1,
5 it2 like it1 occurs 10 with header line,
6 alpha(10) value 'ABCDEFGHIJ'.
7
8 do 10 times varying it1-f1 from alpha+0 next alpha+1.
9 append it1.
10 enddo.
11
12 append lines of it1 from 2 to 5 to it2.
13 loop at it2.
14 write it2-f1.
15 endloop.
16
17 insert lines of it1 from 8 into it2 index 2.
18 skip.
19 loop at it2.
20 write it2-f1.
21 endloop.
22
23 loop at it2.
24 if it2-f1 >= 'E'.
25 insert lines of it1 to 1 into it2.
26 endif.
27 endloop.
28
29 skip.
30 loop at it2.
31 write it2-f1.
32 endloop.
33
34 skip.
35 it2[] = it1[].
36 loop at it2.
37 write it2-f1.
38 endloop.

Recopilado por: Juan Ríos-Villasmil Página: 4 / 4


Consultor SAP ABAP

También podría gustarte