반응형

 

먼저, Search Help EXP 파라미터를 기준으로 RECORD TAB에 담겨줄 DATA를 선언한다.

 

그리고 IMP 파라미터 값을 가져오기 위해서는 RANGES 변수로 선언한다.

Data 타입 선언

 

Elementary Search Help를 만들기 때문에 다음과 같이

Step이 SELECT와 DISP가 아니면 EXIT. 처리를 하여 속도 향상하는 코드를 넣어줌.

단계 설정

 

EXIT인 순간 그 단계는 종료되고 다음 단계로 넘어간다.

즉, SELONE / PRESEL은 바로 Skip하고 바로 SELECT 나 DISP단계로 진행

 

 

SELECT단계에서는 먼저 IMP 파라미터 값을 RANGES변수에 넣어줍니다.

RANGES로 넣어주는 이유는 Search Help에서 Multi Select를 해서 검색할 때

SELECT문에서 IN을 이용해서 다중 검색을 하기 위해

 

import 파라미터 설정

 

shlp-selopt에 어떤값이 들어오는지 확인하기 위해 

 

KUNNR 필드에 'A30'을 넣고 Debugging을 태워보면 다음과 같은 결과를 얻을 수 있다.

 

Search Help의 이름과 입력한 Input 파라미터 필드이름 그리고 Ranges 변수로

Sign = I / Option = EQ / LOW(값) = A30 이 들어온다.

여러개 선택해서 넣으면 SHLP-SELOPT의 Row가 넣은만큼 들어온다.

LOOP를 통하여 이 값을 선언한 RANGES변수에 넣어준다.

 

변수가 비어있으면 Error Message를 띄우려면 다음과 같이 하면 된다.

Error 처리 방법

 

빈값이면 검색안되는 Error Message를 만들었는데,

 

CALLCONTROL-STEP을 EXIT단계로 안바꿔 주고 EXIT.을 하면

 

현재 단계인 SELECT단계에서 다음단계인 DISP로 변경되면서 종료가 바로 되지 않는다.

 

EXIT단계로 강제 이동 후 EXIT을 해줘야 바로 Search Help가 종료된다.

 

IMP 파라미터를 가지고 SELECT문을 이제 사용자화 하는 코드를 작성해준다.

Search Help 띄워줄 Select 쿼리문

 

받은 파라미터들을 Where절에 IN으로 해주고 추가로 더 필요한 정보들은 Where절에 추가해서

Search Help에 띄워줄 데이터를 가공하면 된다.

 최대 999건 조회되도록 하기 위해 UP To 999 Rows. 구문을 사용했다.

 

SELECT가 완료되면 1편에서 설명했던 스탠다드 Function Module 'F4UT_RESULT_MAP'을

호출하여 source_tab에 히트 리스트에 출력하기 위해 만들었던 Internal Table을 할당한다.

F4UT_RESULTS_MAP 사용방법

 

할당 후 CALLCONTROL-STEP을 disp로 넘겨줘서 SELECT를 끝내고 DISP단계로 넘어가면서

Seacrh Help를 띄워주게 된다.

 

[ABAP] Search Help Exit 함수 만들기 - 1편 :: 학습 일지 (tistory.com)

 

CALLCONTROL-NO_MAXDISP의 기능은 INPUT AREA에 기본적으로 나오는

Maximum No. of Hits를 보여주냐 안보여주냐를 설정하는 기능이다.

Search Help input Area 화면

 

CALLCONTROL-NO_MAXDISP = abap_true. 로 설정해주면

위에 빨간 박스된 Maximum No. Of Hits 가 사라진다.

 

원하지 않으면 위에 코드처럼 abap_true설정하여 삭제 하면 된다.

 

Search Help Exit 만들기 완료!

반응형

'SAP > ABAP' 카테고리의 다른 글

[ABAP] Search Help 초기 필드값 세팅  (0) 2024.05.28
[ABAP] Table 생성  (0) 2024.05.25
[ABAP] Class Method 정리  (0) 2024.05.23
[ABAP] Search Help Exit 함수 만들기 - 1편  (0) 2024.05.22
[ABAP] Search Help 만들기  (0) 2024.05.21
반응형

 

Exit 함수를 이용하여 사용자가 생성한 데이터를 보여주는 Search Help를 만드는 방법

 

Naming룰은 기본적으로 Search Help 이름_Exit으로 작성 se80 or se37에서 Function Module 생성

Search Help Exit 함수 만드는 창

 

 Exit Function Module은 Chaning 파라미터 2개와 Table 파라미터 2개를 필수로 입력해야 한다.

Changing Parameter

 

SHLP_DESCR 은 Description of Search Help을 나타내는 Structure

 

DDSHF4CTRL은 Control Structure for F4 Process with Search Help Exit로 Search Help를 컨트롤하는 Structure

 

Tables Parameter

 

SHLP_DESCT라는 Table을 참조하는데 이 Table은 위에 Chainging의 SHLP_DESCR 스트럭쳐로 구성되어 있는 테이블

 

SEAHLPRES는 Search help result structure를 나타내는 하나의 테이블

 

4개 파라미터는 이름까지 스탠다드와 동일하게 설정을 해주어야 한다 다르면 Error 발생

 

Search Help가 작동하게 되면 위에 Chaning parameter에 넣어둔  시스템 스트럭처인

 

CALLCONTROL의 STEP(현재 단계)를 할당.

 

또한, 코드를 작성할때 CALLCONTROL-STEP에 원하는 단계를 할당하면 단계를 건너뛰고 해당단계로 넘어갈 수 있음.

 

CALLCONTROL-STEP 단계는 SELONE → PRESEL → SELECT → DISP → RETURN → EXIT 순서로 진행

 

1. SELONE

Collective Seacrh Help에서만 호출 됨.

Elementary Search Help에서도 호출은 돼어 CALLCONTROL-STEP에 담기지만

이 단계에서는 다른 단계로 건너뛰지 않는다면 바로 다음단계로 넘어가게 된다.

Elementary Search Help를 주로 만들고 다루기 때문에 잘 사용은 안함.

 

2. PRESEL

SELECT단계 바로 직전 단계로 Function Module을 이용하여 시스팀 Structure인

SHLP의 컴포넌트 SELOPT를 수정한다.

 

SHLP_DESCR의 SELOPT이 Table형태로 들어가 있다.

반응형

SELECT 단계에서 SHLP-INTDESCR 이용하여 Field text 명을 변경할 있다.

SELECT 단계에서 필드값 설정

 

SHLP-INTDESCR-TITLE 상단에서 변경해주면 Search Help Title 설정이 가능하다.

Search Help의 Title 설정방법

 

3. SELECT

Hit List를 구성할 데이터를 Select하는 단계로function module 'F4UT_RESULTS_MAP' 을 이용하여

RECORD_TAP에 데이터를 받습니다.

 

F4UT_RESULTS_MAP Function

 

4. DISP

Disp는 말그대로 Search Help에 Hit List가 표시되는 단계입니다.

 

 

5. RETURN

Return단계는 Hit List의 값을 스크린으로 전달합니다.

 

 

6. EXIT

EXIT단계는 Search Help를 닫는 단계입니다.

 

 

다음편엔 Search Help 페이지에서 만든 Input Area를 받아와서 SELECT를 수정하여 Search Help Exit 코드를 작성해보자.

반응형

'SAP > ABAP' 카테고리의 다른 글

[ABAP] Search Help 초기 필드값 세팅  (0) 2024.05.28
[ABAP] Table 생성  (0) 2024.05.25
[ABAP] Class Method 정리  (0) 2024.05.23
[ABAP] Search Help Exit 함수 만들기 - 2편  (0) 2024.05.22
[ABAP] Search Help 만들기  (0) 2024.05.21

+ Recent posts