🌟 ABAP 선택화면에서 SSCRFIELDS의 역할과 존재 이유
ABAP에서 SSCRFIELDS는 자주 언급되지만, 막상 왜 존재하는지, 어떤 문제를 해결해주는지는 명확하지 않을 수 있습니다.
이 글에서는 SSCRFIELDS의 존재 이유와 사용 예제, 실무에서 없어선 안 되는 이유까지 한눈에 정리합니다.
🧠 SSCRFIELDS란?
선택화면(Selection Screen)에서 사용자의 버튼 클릭 같은 ‘행위’를 감지하는 SAP 시스템 구조(structure)입니다.
- 선택화면 입력값(PARAMETERS, SELECT-OPTIONS)은
SY-DATUM 등과 같이 다루지만,
- “어떤 버튼을 눌렀는지”는
SSCRFIELDS의 UCOMM 필드를 통해 알 수 있습니다.
🎯 존재 이유: 왜 필요한가?
| 문제 | SSCRFIELDS가 없으면 생기는 문제점 |
|---|
| ✅ 실행 버튼과 사용자 정의 버튼을 구분할 수 없음 | Function Key나 초기화 버튼을 눌러도 어떤 버튼인지 알 수 없음 |
| ✅ 버튼별 다른 기능 구현 어려움 | 무조건 실행 버튼 하나만 사용 가능 |
| ✅ SY-UCOMM으로는 신뢰성 낮음 | 선택화면에서는 동작이 예측 불가 |
| ✅ 사용자 경험 제한 | "조건 초기화", "미리보기" 같은 기능 제공 불가능 |
🔚 결론 요약
| 구분 | 설명 |
|---|
| 핵심 개념 | 선택화면에서 사용자 동작을 감지하기 위한 구조체 |
| 필요 이유 | Function Key, 실행, 초기화 등 동작을 분리하고 제어하기 위해 |
| 핵심 필드 | sscrfields-ucomm |
| 사용 위치 | AT SELECTION-SCREEN 이벤트 내에서만 유효 |
📌 핵심 필드 요약
| 필드명 | 설명 |
|---|
SSCRFIELDS-UCOMM | 사용자가 누른 버튼의 Function Code (ONLI, FC01 등) |
SSCRFIELDS-MARK | 선택 여부나 기타 제어용 플래그 |
SSCRFIELDS-DYNSEL | 동적 조건 표현 시 사용됨 (고급 사용) |
🧪 실무 예제: 조건 초기화 버튼 만들기
PARAMETERS: p_name TYPE char20,
p_date TYPE sy-datum.
SELECTION-SCREEN FUNCTION KEY 1.
INITIALIZATION.
sscrfields-functxt_01 = '조건 초기화'. " F-key 이름 설정
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN 'FC01'. " Function Key 1 눌렀을 때
CLEAR: p_name, p_date.
MESSAGE '조건이 초기화되었습니다.' TYPE 'S'.
WHEN 'ONLI'. " 실행 버튼 눌렀을 때
PERFORM fetch_data.
ENDCASE.