반응형

 

먼저, 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
반응형
반응형

Search Help 만드는 법 기록.

 

1. T-code : SE11

SE11 화면에서 Search Help 선택
Create 버튼 후 이름 설정 ( Z or Y ) 시작.
Search Help 만드는 화면창

 

1. Search Help의 종류

 

2. Search Help에 대한 Description (필수)

 

3. Search Help를 만들 데이터를 가져오는 원천으로 Table 또는 View가 가능.

    그 아래 Text table은  Selection method의 Text테이블이 존재하면 자동으로 가져옴.

 

4. Search help 화면을 어떻게 띄울지에 대한 선택값.

 

Dialog with value restriction  : 사용자로부터 값을 입력받아야만 리스트가 조회되는 Search Help

Display values immediately   : 즉시 리스트 조회되는 Search Help

Dialog depends in set values : 리스트 기준 100개 이상이면 Dialog with value restriction를 100개 미만이면 Display

                                                     values immediately 방식으로 조회되는 Search Help

 

5. Search help exit : Function Modules을 등록하여 개발자가 코딩을 하여 select하는 것을 제어할 때 사용

 

6. Search Help를 불러올때 화면에 보이는 값을 입력하는 곳

 

6번에 대한 Parameter 입력하는 곳

 

각 필드으 대한 설명은 다음과 같다.

 

IMP (Import)  : Search Help를 조회하기 전 Input값을 받는 파라미터

EXP (Export)  : Search Help가 조회된 후 화면에 보여주는 파라미터

LPos               : 화면에 나타나는 필드의 순서를 설정

SPos               : Input값 필드의 순서를 설정

SDis                : 활성화 / 비활성화 설정

Modified         : 체크하면 현재 제시된 Data Element를 다른것으로 변경할 필요 있을 때 사용.

Default Value : Input 필드값 초기설정 혹은 즉시 보여주는 Search Help일 경우 그 값으로 조회

 

위에 입력값에 대한 화면 (SPos 순서대로 Input 필드의 순서가 설정된다. )

 

Customer에 *를 넣고 화면을 조회 해보면,

 

조회하면 다음과 같이 LPos와 같은 순서로 필드값이 나타나고 Tax Number는

 

Exp에 체크를 해제했기 때문에 Search Help 조회 후에는 등장하지 않는다.

 

위에 조건 값에 대한 Seach Help 화면

 

다음과 같이 Parameter 값에서 Biz Site와 Legal Entity의 SDis를 체크한다면

SDis 체크
Legal Entity와 Biz Site가 비활성화 된 것을 확인

 

 

이번엔 Default Value를 설정하여 Input Field 값이 반영 되는지 확인 해보자.

KUNNR 필드에 'A30' 디폴트 값 설정

 

Customer 필드에 디폴트 값이 반영되어 Search Help가 켜진다.

 

위에서 설명했던 4번 Dialog Type을 Display with value immediatley로 변경을 해보자.

Dialog Type 변경

 

결과

 

Search Help를 열어보면 위에 처럼 Input Field가 등장하는게 아니라

 

다음과 같이 KNA1 Table에 있는 데이터를 가져와서 필드값을 바로 보여준다.

 

이렇게 Search Help 만드는 방법에 대해 알아봤다.

반응형

'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 Exit 함수 만들기 - 1편  (0) 2024.05.22

+ Recent posts