** C O R R E S P O N D I N G
** CORRESPONDING()
" X = CORRESPONDING dtype|#(Y)
*-------------------------------------------
begin of t1,
campo1 type i,
campo2 type char10,
end of type t1.
data d1 type t1.
data(d2) = CORRESPONDING t1( d1 ).
* Cláusula BASE
* mantém os valores já existentes...
types:
begin of t1,
campo1 type i,
campo2 type char10,
end of t1,
begin of t2,
campo1 type i,
campo2 type char10,
campo3 type char20,
end of t2.
data d1 type t1.
data d2 type t2.
d2-campo3 = 'não apagar'.
d2 = CORRESPONDING #( BASE ( d2 ) d1 ).
* Cláusula MAPPING
* Estruturas são semelhantes, mas não são iguais.
* O nome do campo é diferente
types:
begin of t1,
campo1 type i,
campo2x type char10,
end of t1,
begin of t2,
campo1 type i,
campo2y type char10,
end of t2.
data d1 type t1.
data d2 type t2.
d2 = CORRESPONDING #(
d1
MAPPING campo2y = campo2x
).
* Cláusula EXCEPT
* Estruturas são iguais, mas não quer levar o
* campo3
types:
begin of t1,
campo1 type i,
campo2 type char10,
campo3 type char10,
end of t1,
begin of t2,
campo1 type i,
campo2 type char10,
campo3 type i,
end of t2.
data d1 type t1.
data d2 type t2.
d2 = CORRESPONDING #(
d1
EXCEPT campo3
).
* Uso de tabela interna
* Mover de uma para outra.
data:
itab1 type table of kna1,
itab2 type table of kna1.
***MOVE-CORRESPONDING itab1 to itab2.
itab2 = CORRESPONDING #( itab1 ).
* Movendo dados entre tabeas discartando as duplicidades dos campos chave
data:
itab1 type table of kna1,
itab2 type SORTED TABLE OF kna1
WITH UNIQUE KEY kunnr.
sort itab1 by kunnr.
DELETE ADJACENT DUPLICATES FROM itab1
COMPARING kunnr.
MOVE-CORRESPONDING itab1 to itab2.
itab2 = CORRESPONDING #(
itab1 DISCARDING DUPLICATES
).
José Nilson de Oliveira