F4_HNADL_SH¶
목적
ABAP DICITIONARY에서 생성된 Search help를 별도의 변경 없이 재사용하여 해당 기능을 구현하는 방법을 설명
주요 단계¶
1. SEARCH HELP UI 설정¶
o INPUT FIELD 를 이용하여 SEARCH HELP를 설정하는 방법을 설명

<사진 1> SEARCH HELP UI 구성 예시
2. SEARCH HELP LAYOUT 및 필드 옵션 설정¶
o SEARCH HELP LAYOUT 구성 및 FIELD OPTION 설정
o ABAP SOURCE CODE 예시 (EV_F4_SH_OPEN)
METHOD EV_F4_SH_OPEN.
DATA: LV_INDEX TYPE I.
DATA: LS_LAYO TYPE /U4A/CL_F4_HNADL=>GTY_F4_CONFIG.
DATA: LS_INFO TYPE /U4A/S9997.
*-----------------------------------------------------------
"Search Help layout
LS_LAYO-MAXHITS = 450. " 조건 MAX HIT
LS_LAYO-AUTO_SEARCH = ABAP_FALSE . " 초기 팝업 OPEN 자동 조회
LS_LAYO-WIDTH = '1000px'. " F4 팝업 넓이
LS_LAYO-HEIGHT = '800px'. " F4 팝업 높이
LS_LAYO-SELMULT = ABAP_FALSE. " 선택 멀티 여부 (예:X)
LS_LAYO-STYLECLASS = ''. " CSS Class
LS_LAYO-DRAGGABLE = ABAP_TRUE. " 팝업 Draggable
" 필드 정보 탭(LS_LAYO-FIELD_INFO)
LS_INFO-SHLPNAME = 'MAT0M'. " Search Help 명
LS_INFO-SHLPFIELD = 'MATNR'. " Search Help 필드명
LS_INFO-INITVALUE = '1234'. " 필드 초기값
LS_INFO-PLACEHOLDER = 'Material Number'. " Place Holder 값
LS_INFO-WIDTH = '300px'. " 필드 넓이
LS_INFO-DISPLAY = ABAP_FALSE. " 필드 EDIT 가능 여부
APPEND LS_INFO TO LS_LAYO-FILED_INFO.
ENDMETHOD.
2.1. SEARCH HELP LAYOUT 설정 필드¶
| Name | Description |
|---|---|
| MAXHITS | 검색 결과 조회 시 최대 건수 |
| AUTO_SEARCH | SEARCH HELP DIALOG OPEN 시 자동 검색 여부 |
| WIDTH | SEARCH HELP DIALOG 가로 크기 |
| HEIGHT | SEARCH HELP DIALOG 세로 크기 |
| SELMULT | 검색 결과 다중 선택 여부 |
| STYLECLASS | CSS 스타일 클래스 설정 |
| DRAGGABLE | SEARCH HELP DIALOG 이동 가능 여부 |
| FILED_INFO | 조회 조건 필드 옵션 설정 |
2.2. 검색 조건 FIELD OPTION 설정¶
| Name | Description |
|---|---|
| SHLPNAME | SEARCH HELP 명칭 |
| SHLPFIELD | 옵션 변경 필드 명칭 |
| INITVALUE | 초기값 설정 |
| PLACEHOLDER | PLACEHOLDER 값 설정 |
| WIDTH | 필드 가로 크기 |
| DISPLAY | 필드 편집 가능 여부 |
3. SEARCH HELP DIALOG 화면¶
o SEARCH HELP DIALOG 실행 예시 제공

<사진 2> 서치헬프 구성 화면
4. 선택한 ROW의 값을 이용한 CALL BACK METHOD 설정¶
4.1. CALL BACK METHOD는 ADD EVENT METHOD 버튼을 통해 생성¶
4.2. ABAP SOURCE CODE 예시 (EV_F4_SH_OPEN)¶
" GET INDEX
CALL METHOD /U4A/CL_UTILITIES=>GET_SELECTED_INDEX
EXPORTING
I_EVENT_NAME = I_EVENT_NAME
IMPORTING
E_INDEX = LV_INDEX.
" Search Help Open
CALL METHOD /U4A/CL_F4_HNADL=>F4_SEARCH_HELP
EXPORTING
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW
I_SHLPNAME = 'MAT0M' " Search Help 명
I_ROW = LV_INDEX " 선택한 ROW
I_SEVENT_NAME = 'EV_F4_SH_SELECT' " Callback Method
IS_LAYO_CONF = LS_LAYO. " Search Help Layout 옵션
ENDMETHOD.
5. CALL BACK METHOD를 이용한 Input Field 값 설정¶
5.1. 선택한 Row Index를 I_FDATA-ROWINDEX에 적용¶
5.2. ABAP SOURCE CODE 예시 (EV_F4_SH_SELECT)¶
METHOD EV_F4_SH_SELECT.
DATA: I_VALUE TYPE C LENGTH 18.
DATA: GV_FNAME TYPE STRING.
FIELD-SYMBOLS : <FS_FDATA> TYPE DATA.
FIELD-SYMBOLS : <FS_MAT> TYPE TY_MATNR.
*-------------------------------------------------------
" Search Help Select
CALL METHOD /U4A/CL_F4_HNADL=>F4_GET_SELECT01
EXPORTING
IS_F4DATA = I_FDATA
I_FLDNM = 'MATNR'
IMPORTING
E_VALUE = I_VALUE.
" Read selected ROW values
GV_FNAME = 'I_FDATA-ROWINDEX'.
ASSIGN (GV_FNAME) TO <FS_FDATA>.
CHECK <FS_FDATA> IS ASSIGNED.
" Set the selected MATNR to INPUT VALUE
READ TABLE GT_MAT ASSIGNING <FS_MAT> INDEX <FS_FDATA>.
CHECK SY-SUBRC EQ 0.
<FS_MAT>-MATNR = I_VALUE.
UNASSIGN <FS_FDATA>.
UNASSIGN <FS_MAT>.
ENDMETHOD.
6. SEARCH HELP 실행 절차¶
6.1. 실행 후 원하는 Input Field의 Search Help 클릭¶

<사진 3> 서치헬프 호출 버튼 표시 화면
6.2. SEARCH HELP DIALOG 화면에서 검색 후 원하는 조회 결과 선택¶

<사진 4> 서치헬프 팝업창 조회 결과 화면
6.3. CALL BACK METHOD 결과 확인 (선택한 Row의 Input Field에 Material Number 반영)¶

<사진 5> 서치헬프 선택 결과 값 입력 결과 확인