[ABAP] Assigning Value
[Assigning value(값 할당)]
1. 변수를 선언 시 VALUE 구문을 통하여 할당
DATA: NUM TYPE I VALUE 10.
2. MOVE or WRITE TO 를 통하여 할당
MOVE TO 구문은 = 과 동일한 의미이다.
MOVE-CORRESPONDING 구문은 구조체에서 값을 할당할 때 많이 사용되며, 같은 필드명을 찾아 복사된다.
구조체의 필드 이름 및 순서가 다를 때 MOVE를 사용한다면 필드 이름과 상관없이 순서대로 복사되므로 주의해야 한다.
MOVE 구문을 사용하면 형변환을 할 수 있다. 복사하는 필드의 TYPE으로 변경된다. 하지만 Type D와 Type T 같은 형 변환은 불가능하다.
WRITE 구문은 리스트 출력과 변수 할당 두 가지 용도로 사용된다. WRITE TO 구문은 변수 할당에 쓰인다.
WRITE F1 TO F2에서 F1의 내용을 Type C로 변경하여 변수 F2에 할당한다. 따라서 F1은 Character 필드로 변경할 수 있어야 한다.
MOVE F1 TO F2.
MOVE-CORRESPONDING STRING1 TO STRING2.
WRITE F1 TO F2 [<option>].
[offset을 이용한 값 할당]
Offsets and Lengths를 이용하여 필드의 일부 값을 정의할 수 있다.
MOVE <F1> [+P1>] [(<L1>)] TO <F2> [+<P2>] [(<L2>)].
위 구문은 F1 필드 P1에서 시작하여 길이 11까지 복사하여, F2 필드 P2에서 길이 12까지 할당하는 구문
DATA : F1(8) VALUE 'ABCDEFGH',
F2(8).
MOVE F1+2(3) TO F2.
결과 : F2 => 'CDE'