📘 메시지 클래스 - Dialog Messages
✅ Dialog Messages란?
SAP 프로그램에서 메시지(Dialog Message)는 사용자와의 상호작용을 위해 다양한 형태의 알림창을 제공한다.
메시지는 프로그램의 실행 상태에 따라 화면에 표시되며, 모달 대화상자(Modal Dialog Box)나 상태바(Status Bar)에 나타날 수 있다.
➡️ 메시지는 주로 MESSAGE 문을 통해 사용된다.
📌 MESSAGE 구문 형식
MESSAGE {nnn}(message_class) {WITH [v1] [v2] [v3] [v4]}.
- nnn: 메시지 번호 (001, 002 등).
- message_class: 메시지 클래스 이름.
- WITH [v1] [v2] [v3] [v4]: 변수 값을 메시지에 삽입할 때 사용 (최대 4개).
✅ 메시지 유형(Type)과 동작(Behavior)
I (Info) | 정보 메시지 | 프로그램이 중단 없이 계속 실행 | 모달 대화상자 (Modal Dialog Box) |
S (Set Message) | 상태 메시지 | 프로그램이 중단 없이 계속 실행 | 상태바 (Status Bar) |
W (Warning) | 경고 메시지 | 상황에 따라 다르게 작동 | 상태바 (Status Bar) |
E (Error) | 오류 메시지 | 상황에 따라 다르게 작동 | 모달 대화상자 (Modal Dialog Box) |
A (Abort) | 프로그램 종료 메시지 | 프로그램 강제 종료 | 모달 대화상자 (Modal Dialog Box) |
X (Short Dump) | 런타임 오류 메시지 | 프로그램이 런타임 오류(Short Dump) 발생 | Short Dump |
➡️ 주요 메시지 유형 설명:
- I (Info): 단순한 정보 메시지.
- S (Set Message): 상태바에 표시되는 메시지.
- W (Warning): 경고 메시지. 사용자 입력을 재확인하거나 경고할 때 사용.
- E (Error): 오류 메시지. 프로그램 실행을 멈추고 오류를 알려줌.
- A (Abort): 심각한 오류 발생 시 프로그램을 종료함.
- X (Short Dump): 심각한 런타임 오류가 발생할 경우, 시스템이 자동으로 Short Dump를 생성함.
✅ 메시지 클래스 만들기 (Message Class 생성)
📍 메시지 클래스 생성 절차
- Package 우측 클릭 → Create → Other → Message Class 선택.
- Attributes / Messages 중 Messages를 클릭하고 YES 선택.
- 메시지를 입력 후 저장.
📌 메시지 클래스 생성 시 주의사항
- 메시지 클래스 이름은 반드시 Y 또는 Z로 시작해야 한다.
- 메시지 작성 시, 메시지에 변수(&)를 추가할 수 있다.
- 최대 4개 변수까지 사용할 수 있으며, WITH 구문을 사용해 변수 값을 삽입한다.
- 예:
- MESSAGE i000 WITH 'Hello' 'World'.
- 메시지 클래스 이름은 MESSAGE 문에서 생략할 수 있다.
📍 메시지 입력 예시
001 | 프로그램이 성공적으로 완료되었습니다. |
002 | 입력값이 잘못되었습니다. |
003 | 사용자 이름: &. |
➡️ WITH 구문을 사용하여 메시지에 변수 삽입:
MESSAGE i003 WITH '홍길동'.
💡 출력 결과: "사용자 이름: 홍길동"
✅ 메시지 클래스 활용 팁
- 메시지 클래스 생성 후, 메시지 번호를 더블클릭하면 메시지 내용을 편집할 수 있다.
- 메시지 번호는 최대 4자리까지 사용 가능하며, 숫자와 영어 조합으로도 작성할 수 있다.
- 메시지 클래스에서 생성한 메시지는 Text Elements에서 확인할 수 있다.
✅ 메시지 클래스와 MESSAGE 구문 사용 예시
📍 메시지 클래스: ZMSG_CLASS 생성
001 | "사용자 이름이 입력되지 않았습니다." |
002 | "프로그램이 성공적으로 완료되었습니다." |
📍 프로그램에서 MESSAGE 사용 예시
REPORT ZABAP_MESSAGE.
DATA: lv_name TYPE string.
IF lv_name IS INITIAL.
MESSAGE e001(ZMSG_CLASS).
ENDIF.
lv_name = '홍길동'.
MESSAGE i002(ZMSG_CLASS).
💡 실행 결과:
- lv_name이 비어 있으면 오류 메시지(E001)가 출력된다.
- lv_name에 값이 할당되면 정보 메시지(I002)가 출력된다.
✅ 팁 정리
- Y 또는 Z로 시작하는 메시지 클래스를 생성해야 한다.
- 메시지 클래스에서 메시지를 작성할 때 **변수(&)**를 사용하여 동적인 메시지를 만들 수 있다.
- 프로그램에서 MESSAGE 문을 사용하여 메시지를 출력하며, 메시지 유형에 따라 다르게 동작한다.
- 메시지 클래스는 굳이 프로그램 내에서 명시하지 않아도 사용할 수 있다.
'SAP ABAP > 기본' 카테고리의 다른 글
서브루틴(Subroutine) vs 펑션 모듈(Function Module) – 차이점 비교 (0) | 2025.01.19 |
---|---|
오류 수정 - ABAP Debugger 사용법 (0) | 2025.01.15 |
ABAP Statements | Loop문 (Do & While), 시스템 오류 (0) | 2025.01.15 |
ABAP Statements | IF 조건문 (0) | 2025.01.15 |
ABAP Statements 정리 | Calculation (0) | 2025.01.15 |