SAP 스탠다드에서 제공하는 Secrch Help 펑션 F4IF_INT_TABLE_VALUE_REQUEST 에 대해 알아보겠습니다.
Function parameter에 대해서 설명드리겠습니다.(많이 사용하는 parameter)
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = Search help pupup창에 뜨는 필드중 value 값을 읽어올 필드
( Name of return field in FIELD_TAB )
dynpprog = export 파라미터를 내보낼 프로그램 (보통 SY-REPID)
dynpnr = export 파라미터를 내보낼 프로그램의 스크린 번호 (보통 SY-DYNNR)
dynprofield = export 파라미터를 내보낼 프로그램의 스크린 필드 (EX. PA_MATNR)
window_title = 팝업창 타이틀
value_org = ' C' 인지 'S'인지에 따라 사용하는 파라미터들이 다름
TABLES
value_tab = Popup창에 보여줄 search help 데이터
( value_org가 S일때와 C일때가 구성형태가 다름)
field_tab = value_org가 C일때만 사용하는 POPUP 필드 카탈로그
( TYPE DFIES)
return_tab = popup에서 선택했을때 리턴되는 데이터
(TYPE DDSHRETVAL )
dynpfld_mapping = POPUP에서 어떤 데이터들을 리턴값에 넣어줄지 설정하는 테이블
value_org가 C일때만 사용 (TYPE DSELC)
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
** 일반적으로 F4펑션을 사용하기전에 화면에 어떠한 데이터를 읽어와서
해당 데이터로 다른 테이블을 조회하거나 가공한 후 펑션을 사용하여 F4 데이터를 보여주고/
POPUP창에서 데이터를 선택하여 화면에 업데이트합니다.
화면의 데이터를 읽어오고 / 화면에 데이터를 업데이트하는 펑션은 아래 URL을 참고하시면 됩니다.
**화면 읽어오기
**화면 업데이트
파라미터 value_org 가 ' C' 인지 'S'인지에 따라 사용법이 다르기 때문에 구분해서 알아보겠습니다.
(용이한 설명을 위해 조회화면(screen1000)에서의 구현으로 예시를 들겠습니다.)
1. value_org = 'S'
장점: 구현이 용이하다.
단점: popup 창에서 한 라인의 하나의 필드만 return값으로 돌려줄수있다.
< 파라미터 >
value_tab : 일반적인 인터널 테이블
(TYPE 에 따라서 팝업창에 보여주는 헤더명이등 속성이 결정된다)
return_tab : TYPE DDSHRETVAL 으로 선언한 테이블
<예제>
YYTEST라는 테이블에서 SO_MANTR 을 조건으로 데이터를 조회하여 search help를 보여준 후
PA_MATKL의 데이터를 업데이트한다.
<popup>
<gt_return>
GT_RETURN 값을 살펴보면 RETFIELD값 에 PA_MATKL이 있으므로 POPUP 데이터 클릭시,
PA_MATKL에 데이터가 들어갑니다.
그런데 펑션 사용시 < dynprofield > 가 PA_MATKL로 설정되어있지 않으면 (필수값이 아님)
GT_RETURN-RETFIELD 가 비어있으므로 GT_RETURN의 FIELDVAL을 READ TABLE하여
직접 화면에 데이터를 업데이트해야 합니다.
2. value_org = 'C'
장점: 여러개의 CELL을 리턴값으로 받아 사용할 수 있다.
단점: 구현이 다소 복잡하다.
< 파라미터 >
value_tab = CHAR으로 선언된 데이터 테이블
field_tab = value_org가 C일때만 사용하는 POPUP 필드정보 정의 테이블
return_tab = popup에서 선택했을때 리턴되는 데이터
dynpfld_mapping = POPUP에서 어떤 데이터들을 어떤 리턴값에 넣어줄지 설정하는 테이블
<예제>
YYTEST라는 테이블에서 SO_MANTR 을 조건으로 데이터를 조회하여 search help를 보여준 후
PA_MATKL, SO_MATNR-LOW 의 데이터를 업데이트한다.
** GT_FIELD에 다른 속성들도 있으니 필요시 사용
** 필드속성을 하나씩 정의할 수 도 있지만 펑션 <DDIF_FIELDINFO_GET> 을 사용하여 정의할 수도 있습니다.
GT_RETURN값에 있는 데이터를 GT_UPDATE (LIKE DYNPREAD ) 테이블에 담아, DYNP_VALUES_UPDATE 로
화면을 업데이트한다.
'Function' 카테고리의 다른 글
DYNP_VALUES_READ (0) | 2021.07.07 |
---|---|
DDIF_FIELDINFO_GET (0) | 2021.07.07 |
DYNP_VALUES_UPDATE (0) | 2021.07.07 |
POPUP_TO_SELECT_MONTH (0) | 2021.06.22 |
세금 계산 함수: CALCULATE_TAX_FROM_NET_AMOUNT (0) | 2021.06.15 |