Copying Values between Components of Structures
The value assignments described for the MOVE statement apply to both elementary and structured data objects. In addition, there is a variant of the MOVE statement which allows you to copy the contents of components of a source structure to the components of a target structure. The syntax is as follows:
Syntax
MOVE-CORRESPONDING <string1> TO <string2>.
This statement assigns the contents of components of structure <string1> to those components of structure <string2> which have the same names.
The system executes a MOVE statement for each name pair as follows:
MOVE STRING1-<component> TO STRING2-<component>.
The system performs all the necessary type conversions separately. This process differs from value assignment involving complete structures. In this case, the conversion rules described in
Incompatible Structures and Elementary Fields apply. 
DATA: BEGIN OF ADDRESS,
FIRSTNAME(20) VALUE 'Fred',
SURNAME(20) VALUE 'Flintstone',
INITIALS(4) VALUE 'FF',
STREET(20) VALUE 'Cave Avenue,
NUMBER TYPE I VALUE '11'.
POSTCODE TYPE N VALUE '98765'.
CITY(20) VALUE 'Bedrock',
END OF ADDRESS.
DATA: BEGIN OF NAME,
SURNAME(20),
FIRSTNAME(20),
INITIALS(4),
TITLE(10) VALUE 'Mister',
END OF NAME.
MOVE-CORRESPONDING ADDRESS TO NAME.
In this example, the values of NAME-SURNAME, NAME-FIRSTNAME and NAME-INITIALS are set to 'Flintstone','Fred',and 'FF'. NAME-TITLE retains the value 'Mister'.
