[ABAP] SSCRFIELDS의 역할과 존재 이유

J._NA 개발일지·2025년 6월 9일

🌟 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.




profile
아밥 & 프론트엔드 개발자

0개의 댓글