모각소에서 정리한 노션을 벨로그로 이동하여 다시 정리한 글입니다.
REPORT ZHELLO_WORLD.
WRITE 'Hello, World!'.
ABAP에서는 변수를 DATA 키워드를 사용해 선언한다.
REPORT ZVARIABLE_EXAMPLE.
DATA: gv_text TYPE string.
gv_text = 'ABAP 공부 중!'.
WRITE gv_text.
REPORT ZIF_EXAMPLE.
DATA: gv_number TYPE i.
gv_number = 10.
IF gv_number > 5.
WRITE 'gv_number는 5보다 크다.'.
ELSE.
WRITE 'gv_number는 5보다 작거나 같다.'.
ENDIF.
DO문을 사용한 간단한 반복 예제
REPORT ZLOOP_EXAMPLE.
DATA: gv_index TYPE i.
DO 5 TIMES.
gv_index = sy-index.
WRITE: / '반복 횟수: ', gv_index.
ENDDO.
내부 테이블은 여러 개의 값을 저장하는 배열 같은 개념이다
REPORT ZINTERNAL_TABLE_EXAMPLE.
TYPES: BEGIN OF ty_person,
name TYPE string,
age TYPE i,
END OF ty_person.
DATA: lt_people TYPE TABLE OF ty_person,
ls_person TYPE ty_person.
ls_person-name = 'Markus'.
ls_person-age = 45.
APPEND ls_person TO lt_people.
ls_person-name = 'Sophia'.
ls_person-age = 30.
APPEND ls_person TO lt_people.
LOOP AT lt_people INTO ls_person.
WRITE: / ls_person-name, ' 나이: ', ls_person-age.
ENDLOOP.
결과는
Markus 나이: 45
Sophia 나이: 30
위에서 헷갈린 점은
DATA: lt_people TYPE TABLE OF ty_person,
ls_person TYPE ty_person.
이 부분이다.
더 자세하게 정리를 해보자면
왜 구조체 테이블을 선언하나?
구조체 테이블(lt_people)을 선언하는 이유는 여러 개의 데이터를 저장하기 위해서 이다. 예를 들어, ls_person은 한 사람의 정보만 저장할 수 있지만, 우리가 여러 사람의 정보를 저장하려면 테이블 같은 자료구조가 필요하다. lt_people이 그 역할을 테이블 역할을 한다.
데이터 흐름 예시
1. ls_person에 한 명의 정보를 담음 (예: 'Markus', 45).
2. 그 ls_person을 lt_people에 추가함 (APPEND).
3. 또 다른 사람의 정보를 ls_person에 담고 (Sophia, 30), 다시 lt_people에 추가함.
+----------+------+
| name | age |
+----------+------+
| Markus | 45 |
+----------+------+