SAP ABAP

SAP ABAP 기본 Syntax

모델와이 2024. 11. 19. 10:15

안녕하세요. ABAP 기본 Syntax에 대해서 알아보겠습니다.

ABAP는 SAP의 프로그래밍 언어로, 데이터 처리와 비즈니스 로직 구현에 매우 중요한 역할을 합니다.

이번 포스트에서는 ABAP의 기본적인 Syntax 중 DATA와 TYPE 선언에 대해 자세히 살펴보겠습니다.

ABAP에서 DATA 선언은 변수를 정의하는 중요한 과정입니다.

변수를 선언할 때는 DATA 키워드를 사용합니다. 예를 들어, 다음과 같이 변수를 선언할 수 있습니다.

 

데이터 선언

 

1. 데이터 선언( DATA이용 )

위에 보이는 대로 데이터 선언은 "DATA" 로 선언할 수 있습니다.
DATA 뒤에 ":" (쌍점 , 네이버에 검색하니 쌍점이라고 나오네요...) 을 붙이면 한 번에 여러개의 변수를 선언할 수 있습니다.
SAP에서 선언하는 데이터 유형은 아래와 같습니다.

선언 내역 공백처리
C Character  space
D Date(날짜) '00000000'
I Integer 0
N Numeric '0'
P Packed 0
T Time(HH:MM:SS) '000000'

 
추후에 로직을 배우다보면 언급해드리겠지만, 공백처리 내역은 데이터를 선언하고 해당 데이터에 값이 없을 경우 확인하기위한 처리 입니다. 예를 들면

앞서 선언한 LV_NUMC의 공백을 확인하기 위해선, 
(예시)
IF LV_NUMC EQ '0'.
   필요 로직 처리.
ENDIF.

선언된 유형과 같은 공백값 (위의 LV_NUMC는 Numeric 선언으로 '0' 으로 점검) 으로 점검하여야 합니다.

2. 구조체 선언 - 선언된 내역 사용

두번째로 설명드릴 내역은 구조체에 대한 선언입니다.
위의 선언된 LS_BKPF, LS_STRU와 같이 선언하는 내역입니다.

LV_CHAR의 선언된 내역과 달리 여러 필드들을 구조체로 가지고 있는 데이터의 선언을 할 수 있습니다.

LS_BKPF의 경우 SAP에서 기본적으로 제공하는 "STANDARD TABLE"의 유형을 참조하여 선언한 구조체라고 할 수 있습니다. 해당 내역은 아래와 같습니다. 저희가 앞서 테이블을 만들었던, SE11에서 조회할 수 있습니다.
SE11에서 생성한 테이블( CBO 테이블 ) 혹은 구조체는 모두 똑같이 선언하여 사용할 수 있습니다.

SAP BKPF 테이블

 

3. 구조체 선언 - 프로그램 내 새로 선언하여 사용
반면 LS_STRU의 구조체의 경우 선언된 테이블을 사용하여 만드는게 아닌, 직접 필드를 지정하여 선언하는 방식입니다.
아래와 같이 선언할 수 있으며, 해당 내역에 기 선언된 구조체를 추가하여 선언할 수도 있습니다.
아래 예시로 든 구조체 선언 2-1로 확인하실 수 있습니다.

구조체 선언
중간에 구조체 추가

 

4. DATA와 TYPES의 선언의 차이

구조체 선언 2, 3에서 보실 수 있듯이 DATA로 선언하는 것과 TYPES로 선언하는 방식에 대한 차이가 있습니다. 

DATA 로 선언할 경우 데이터를 바로 해당 구조체에 데이터를 입력할 수 있습니다.
반대로 TYPES로 선언할 경우 구조체로써의 역할만 수행하면 데이터를 입력할 수 없습니다.

DATA/TYPES 비교

 

데이터 입력 시 에러화면

 

위의 사진과 같이 LS_STRU-NUMC 필드에 값을 입력할 경우 에러가 발생하지 않지만, TY_TYPE-NUMC의 값을 입력할 경우 오류가 발생합니다. 아래의 사진과 같이 TYPES로 선언된 구조체를 다른 DATA로 선언된 변수로 재 선언하여 데이터를 입력하여야 합니다.

 

TYPES 내역 DATA 선언

 

마지막으로 DATA와 TYPES의 또 다른 차이는 DATA로 선언한 내역은 TYPES와 같은 구조체로써의 역할 및 데이터를 담을 수 있는 역할을 모두 수행하지만, 선언방식의 차이가 있습니다. 위의 선언했던 TYPES와 달리 DATA 구조체는 TYPE으로 구조체의 역할을 수행할 수 없습니다. 

 

DATA 유형 TYPES 선언 시 오류

 

대신 DATA 유형이 구조체의 역할을 수행하기 위해선, 아래와 같이 "LIKE" 를 통해 선언해야만 오류없이 선언을 수행할 수 있습니다.

 

 

데이터 선언 시 주의사항

데잍 즉 변수를 선언할 때 몇 가지 주의해야 할 점이 있습니다:

  • 이름 규칙 준수 :
    1. 전역변수(프로그램 내 어디서든)로 사용할 데이터의 경우 "G"(global)를 붙여 선언합니다.
    ex) GV_CHAR , GV_STRING
    2. 로컬변수(해당 로직 내에서만)로 사용할 데이터의 경우 "L"(local)를 붙여 선언합니다.
    3. 단순변수는 "V" 구조체는 "S" 테이블은 "T"등을 붙여 선언합니다.
    ex) LS_BKPF , LT_BKPF(테이블)
    테이블의 선언방식은 이미 선언된 구조체의 TYPE TABLE OF 구조체 or LIKE TABLE OF 구조체로 선언합니다.
  • 선언방식이 고민될 때 :TYPE, TYPES, LIKE등 선언 방식의 대한 고민이 되는 초급개발자의 경우 모든 데이터를 LIKE로 선언하는 것을 추천드립니다. 추후 Function등의 활용에서 TYPE으로 선언해야만 하는 경우가 있지만, 우선은 헷갈리시면 LIKE로 선언하면 모든 활성화가 되기에 해당 내역 추천드립니다.

 

 

'SAP ABAP' 카테고리의 다른 글

SAP ABAP New syntax 7.40  (0) 2024.12.16
SAP 개행문자에 대해서 알아보자  (0) 2024.11.26
ABAP 개발 단축키  (1) 2024.11.20
SAP ABAP Dictionary - Domain 생성  (0) 2024.11.08
SAP ABAP Dictionary Table 생성  (0) 2024.11.08