콘텐츠
ABAP 기초 포스팅
변수 선언과 데이터 타입
Structure (구조체) 타입 변수 선언
TYPES 구문을 통한 타입 정의
Internal Table 개념, 사용법 정리
반복문 LOOP, WHILE, DO
ABAP Structure(구조체)
ABAP Structure(구조체) 는 복합 데이터 타입이다. 서로 다른 데이터 타입을 묶어 하나의 단위로 그룹화 하는 데 사용하며 사용 시 JavaScript 의 JSON, JSON Array 조합과 비슷한 느낌으로 사용할 수 있다.
테이블과 같이 필드를 지니는 형태로 되어 있으며, 하나의 레코드만 지니는 있는 테이블이라 생각하면 좀 더 이해가 쉽게 된다.
이후 다루게 될 테이블 타입 변수인 Internal Table 에서 테이블의 라인에 담긴 데이터를 꺼내와 담아 (Work Area 의 역할) 사용하는 역할로 주로 수행 된다.
만약 Java 시스템과 연동 되는 ERP 개발자 라면 RFC 라 불리 우는 두 시스템 간의 데이터 통신 시, Java 에서 보내는 Object 타입의 key, value 데이터가 ABAP 에선 이 구조체의 필드에 맞춰서 전달 받아 사용이 된다.
ABAP 프로그래밍을 약 7년 간 해보니 이 Structure 는 계속 사용되므로 이해하자.
구조체 변수 선언
구조체 선언 시, 다음과 같은 BEGIN OF ~ END OF 를 사용하여 선언 된다.
DATA: BEGIN OF ls_employee,
id TYPE i,
name TYPE c LENGTH 30,
position TYPE c LENGTH 20,
salary TYPE p DECIMALS 2,
END OF ls_employee.
ABAP필드
구조체는 구조체 명 안에 필드명을 부여해서 사용한다. 위의 예시의 경우 id, name, position, salary가 필드다. 사용할 때는 구조체명-필드명 형태로 사용한다. (예: ls_employee-id)
재사용성
구조체를 사용하는 이유는 재사용성이 가장 크다. 사용 용도로 변수를 묶을 수 있고 필드는 각 구조체 별로 동일한 이름을 사용할 수 있다.
참고 사항
구조 복사
구조체를 복사해서 동일한 구조를 지닌 변수를 선언하고 싶다면 LIKE 문을 이용, 다음과 같이 작성하면 된다.
DATA: BEGIN OF ls_employee,
id TYPE i,
name TYPE c LENGTH 30,
position TYPE c LENGTH 20,
salary TYPE p DECIMALS 2,
END OF ls_employee.
DATA: ls_employee2 LIKE ls_employee.
ABAP