개발을 하다보면 처음 화면으로 돌아왔는데 alv 리스트가 refresh가 되지 않거나 하는 이유로 user_command를 강제로 넣고 싶을 때가 있습니다. 이때 사용할 수 있는 SAPGUI_SET_FUNCTIONCODE를 소개해보겠습니다.
기능설명
SAP GUI 스크립트 기능 중 하나로, SAP GUI 화면에서 Function Code를 실행할 수 있도록 해줍니다. 사용자가 화면상의 메뉴를 클릭하거나 특정 버튼을 누를 때 발생하는 기능 코드를 수동으로 호출하여 작업을 자동화하는데 유용합니다. 주로SAP GUI에서 사용자가 특정 작업을 수행하는 버튼을 눌러야 하는 상황에서, 스크립트를 통해 그 과정을 자동으로 실행하고자 할 때 활용됩니다.
Signature
예시코드
WHEN ’SAVE’."저장 버튼
CLEAR gs_change.
MOVE-CORRESPONDING zssmm_01 TO gs_change.
PERFORM change_matnr.
CLEAR gs_alv.
CLEAR zssmm_01.
PERFORM matnr_init.
* Search Funciton code 다시 불러옴
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
functioncode = 'SEARCH'
EXCEPTIONS
function_not_supported = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
MESSAGE i015(zmsg01).
ENDIF.
CALL SCREEN 100.
실행 화면
현재 상황은 200번 Screen에서 SAVE버튼을 눌러 100 Screen으로 넘어갔을 때 ALV List에 저장된 정보가 반영이 되지 않는 문제가 있었습니다. 따라서 해당 코드를 200번 Screen의 PAI 'SAVE' User-Command에 코드를 추가하였습니다.
해당 200번에서 100번으로 넘어오면서 SEARCH Function Code를 강제로 실행하여 수정한 내용이 ALV에 반영된 것을 확인할 수 있습니다.
주의 사항
- SET_FUNCTIONCODE에 전달되는 기능 코드가 정확해야 합니다.
- SET_FUNCTIONCODE는 수동 입력 대신 자동화로 명령을 실행하기 때문에 오류 발생 시 오류 처리를 위한 로직을 추가하는 것이 좋습니다.
'ABAP Standard Function' 카테고리의 다른 글
[ABAP] WEEK_GET_FIRST_DAY / 해당 주차의 월요일 날짜 가져오기 (0) | 2025.01.13 |
---|---|
[ABAP] SAPGUI_PROGRESS_INDICATOR / 진행 상황 및 로딩 중 표시하기 (0) | 2025.01.10 |
[ABAP] REUSE_ALV_GRID_DISPLAY / 빠르고 쉽게 ALV 출력하기 (0) | 2025.01.09 |
[ABAP] POPUP_TO_GET_ONE_VALUE / 입력 값 받는 POPUP 출력하기 (0) | 2025.01.08 |
[ABAP] POPUP_TO_DISPLAY_TEXT / Text POPUP 출력하기 (0) | 2025.01.07 |