SAP ABAP/기본

ABAP Statements | IF 조건문

물꼬_ 2025. 1. 15. 19:24

IF 조건문 (IF Statement)

ABAP에서 IF 조건문은 특정 조건이 참일 경우 해당 Statements(명령문)을 실행한다.

📍 구문 구조

IF 조건.
    Statements.
ELSEIF 조건.
    Statements.
ELSE.
    Statements.
ENDIF.

설명

  • IF 조건: 조건이 참(True)일 경우, Statements가 실행된다.
  • ELSEIF 조건: 위의 IF 조건이 거짓(False)일 경우, 다음 조건을 확인한다.
  • ELSE: IFELSEIF 조건이 모두 거짓(False)일 경우 실행된다.
  • ENDIF: 조건문 종료를 나타낸다.

➡️ 예시:

IF sy-datum = '20250109'.
    WRITE: '오늘은 2025년 1월 9일입니다.'.
ELSEIF sy-datum > '20250109'.
    WRITE: '오늘은 2025년 1월 9일 이후입니다.'.
ELSE.
    WRITE: '오늘은 2025년 1월 9일 이전입니다.'.
ENDIF.


CASE-WHEN 문 (CASE Statement)

CASE-WHEN 문변수의 값에 따라 실행할 명령문을 선택하는 조건문이다.

📍 구문 구조

CASE 변수.
    WHEN 'A'.
        Statements.
    WHEN 'B'.
        Statements.
    WHEN 'C'.
        Statements.
    WHEN OTHERS.
        Statements.
ENDCASE.

설명

  • CASE 변수: 특정 변수의 값을 확인한다.
  • WHEN 'A': 변수 값이 'A'인 경우, 해당 명령문을 실행한다.
  • WHEN OTHERS: 위 조건에 해당하지 않는 모든 경우를 처리한다.
  • ENDCASE: CASE 문 종료를 나타낸다.

➡️ 예시:

CASE sy-langu.
    WHEN 'E'.
        WRITE: 'English'.
    WHEN 'K'.
        WRITE: 'Korean'.
    WHEN OTHERS.
        WRITE: 'Other Language'.
ENDCASE.


System Fields (시스템 필드)

SAP에서는 SY-로 시작하는 System Fields를 통해 현재 시스템 상태를 확인할 수 있다.

System Field Meaning (설명) 예시

sy-mandt 현재 로그인 클라이언트 번호 400
sy-uname 현재 사용자 이름 USER001
sy-langu 현재 사용자 언어 E (English), K (Korean)
sy-datum 현재 날짜 20250109
sy-uzeit 현재 시간 14:30:00
sy-tcode 현재 실행 중인 트랜잭션 코드 SE80
sy-repid 현재 실행 중인 프로그램 이름 ZABAP_F15_01
sy-index LOOP의 반복 횟수 DO/WHILE 루프에서 사용

유용한 ABAP 함수 및 문법

함수/연산자 설명 예시

ABS( ) 절대값을 반환 ABS( -5 ) = 5
SQRT( ) 제곱근(루트) 계산 SQRT( 16 ) = 4
IPOW( ) 거듭제곱 계산 IPOW( BASE = 2 EXP = 3 ) = 8
= 또는 EQ 같다(Equal) IF a = b.
<> 또는 NE 같지 않다(Not Equal) IF a <> b.
> 또는 GT 크다(Greater Than) IF a > b.
>= 또는 GE 크거나 같다 IF a >= b.
< 또는 LT 작다(Less Than) IF a < b.
<= 또는 LE 작거나 같다 IF a <= b.

주요 단축키

단축키 기능

Ctrl + , 주석 설정 (코드에 주석 추가)
Ctrl + . 주석 해제 (코드에서 주석 제거)
Ctrl + F3 프로그램 활성화 (Activate)
F8 프로그램 실행 (Direct Processing)

💡 Tip:

  • SY-로 시작하는 시스템 필드를 통해 현재 날짜, 시간, 사용자 정보 등을 확인할 수 있다.
  • 조건문(IF, CASE)을 사용해 프로그램의 흐름을 제어할 수 있다.
  • ABAP에서 =, EQ, <>, NE와 같은 연산자를 동일하게 사용할 수 있다.