본문 바로가기

ABAP 프로그래밍 개념/User Interaction

3.3 Messages Using Message Classes

프로그램에서 유지되는 텍스트 심볼(Text Symbol)은 로컬(Local)이므로 해당 프로그램 내에서만 재사용할 수 있습니다. 그러나 여러 관련 프로그램 간에 메시지 텍스트를 공유해야 하는 경우에는 어떻게 해야 할까요? 동일한 메시지 텍스트와 그에 대한 번역을 여러 프로그램에서 유지하는 것은 중복되고 시간 낭비가 될 수 있습니다. 왜냐하면 텍스트에 대한 변경 사항은 각 프로그램에서 수동으로 유지되어야 하기 때문입니다. 메시지 텍스트를 전역적으로 시스템에서 유지하기 위해 메시지 클래스(Message Class)를 사용할 수 있습니다.

Global Message Text(전역 메시지 텍스트)는 테이블 T100에 저장되며, 트랜잭션 SE91을 사용하여 구성할 수 있습니다. 새로운 메시지 클래스(Message Class)를 생성할 때는 Y 또는 Z로 시작하는 고객 네임스페이스(Customer namespace)로 시작하는 고유한 이름을 지정해야 합니다.

새로운 메시지 클래스를 생성하려면 트랜잭션 SE91을 엽니다. Message Maintenance: Initial Screen(메시지 유지 관리: 초기 화면)에서 메시지 클래스에 대한 고유한 이름을 입력한 후 "Create" 버튼을 클릭합니다.

다음 화면에서 Message 탭을 선택하여 메시지를 편집합니다. Message 탭으로 이동할 때 시스템은 패키지를 할당하도록 요구합니다. 이는 메시지 클래스가 Repository Object이기 때문입니다. 메시지 텍스트는 텍스트 심볼과 유사합니다. 각 메시지 텍스트에는 고유한 세 자리 알파벳-숫자 조합(three-digit alphanumeric) 값이 할당됩니다.

메시지가 충분히 자체 설명이 되는 경우 "SelfExplanatory" 체크박스를 선택할 수 있습니다(아래 그림 참조). 또는 각 메시지에 대해 더 많은 정보를 사용자에게 보여주기 위해 Long Text(긴 텍스트)를 생성할 수도 있습니다. Long Text(긴 텍스트)는 사용자가 메시지를 더블 클릭할 때 표시됩니다(아래 두번째 그림 참조 참조). Long Text(긴 텍스트)는 Long Text 버튼을 클릭하여 유지 관리할 수 있습니다.

메시지 클래스(Message Class)에서 메시지를 표시하는 구문은 텍스트 심볼(Text Symbol)을 사용하여 표시하는 것과 약간 다릅니다. 여기에서는 메시지 번호 앞에 메시지 유형이 사용되며, TYPE 추가를 사용하는 대신 메시지 클래스 이름이 괄호 안에 제공됩니다.

예시는 아래와 같습니다.

MESSAGE e000(ZMSG_CLASS).

이 문장에서는 메시지 번호 000을 오류 메시지로 유지하는 메시지 클래스 ZMSG_CLASS의 메시지를 표시합니다. 메시지 유형 e가 메시지 번호 000 앞에 오게 됩니다. 이와 같은 방식으로 다른 메시지 유형을 사용할 수도 있습니다. 예를 들어, w000은 해당 메시지를 경고 메시지로 표시합니다.

메시지 클래스 이름은 각 메시지에 대해 괄호 안에 유지하는 대신, MESSAGE-ID 추가를 사용하여 실행 가능한 프로그램의 REPORT 문에 유지할 수도 있습니다

예시는 아래와 같습니다.

REPORT ZDEMO_MESSAGES MESSAGE-ID zmsg_class.
MESSAGE E000.

메시지 클래스의 각 메시지에 대한 번역은 Message Maintenance 화면에서 GoTo • Translation 을 통해 할 수 있습니다.

반응형

'ABAP 프로그래밍 개념 > User Interaction' 카테고리의 다른 글

3.5 Translation  (0) 2023.05.11
3.4 Dynamic Messages  (0) 2023.05.11
3.2 Messages Using Text Symbols  (0) 2023.05.11
3.1 Types of Messages  (0) 2023.05.11
3. Messages  (0) 2023.05.11