IT WORK/SAP FI and ABAP
[FI/ABAP] 스탠다드 서치헬프 EXIT (회사코드)
Bathildis
2025. 6. 27. 17:58
반응형
회사코드의 경우 나라별 Templete이 있기 때문에 스탠다드 서치헬프를 보면 쓸데없는 목록이 많이 나온다.
이런 경우 스탠다드 서치헬프에 EXIT을 걸어서 목록에 표시될 리스트를 수정할 수 있다.
FUNCTION ZFI_BUKRS_SEARCH_HELP.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" TABLES
*" SHLP_TAB TYPE SHLP_DESCT
*" RECORD_TAB STRUCTURE SEAHLPRES
*" CHANGING
*" VALUE(SHLP) TYPE SHLP_DESCR
*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
*"----------------------------------------------------------------------
IF CALLCONTROL-STEP EQ 'SELECT'.
SELECT *
FROM T001
WHERE XTEMPLT EQ @SPACE
INTO TABLE @DATA(LT_SOURCE).
IF SY-SUBRC = 0.
CALL FUNCTION 'F4UT_RESULTS_MAP'
EXPORTING
APPLY_RESTRICTIONS = SPACE
TABLES
SHLP_TAB = SHLP_TAB
RECORD_TAB = RECORD_TAB
SOURCE_TAB = LT_SOURCE
CHANGING
SHLP = SHLP
CALLCONTROL = CALLCONTROL
EXCEPTIONS
ILLEGAL_STRUCTURE = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
CALL FUNCTION 'F4UT_OPTIMIZE_COLWIDTH'
TABLES
SHLP_TAB = SHLP_TAB
RECORD_TAB = RECORD_TAB
CHANGING
SHLP = SHLP
CALLCONTROL = CALLCONTROL.
ENDIF.
CALLCONTROL-STEP = 'DISP'.
ENDIF.
ENDIF.
ENDFUNCTION.
소스코드는 위와 같다.
CALLCONTROL-STEP이 SELECT일 때, F4UT_RESULTS_MAP 펑션의 SOURCE_TAB에 원하는 값을 넣어주고,
CALLCONTROL-STEP을 바로 DISP로 변경해서 목록을 띄워주는 방식이다.
위의 EXIT을 적용하면 Templete 회사는 조회되지 않는다.
반응형