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 회사는 조회되지 않는다.

 

반응형