SAP 가치에 따른 처리 및 도움 요청에 대한 처리
⚡ 스마트 요약
값 요청 처리 및 도움 요청 처리는 F4 및 F1 키에 해당하는 화면 이벤트입니다. SAP ABAP. 이 페이지에서는 이벤트, 해당 이벤트를 발생시키는 FIELD 문, 그리고 설명이나 가능한 입력값을 표시하는 함수 모듈에 대해 설명합니다.

POH와 POV는 무엇인가요?
우선, 스크린 플로우 로직과 그 활용법에 대해 전혀 모른다면, SAP저희가 제공하는 튜토리얼을 확인해 보시길 권장합니다. 대화 프로그램.
POH와 POV는 사용자의 도움말 요청에 응답하는 두 가지 화면 이벤트입니다. POH는 F1 키에 반응하여 필드의 의미를 설명하고, POV는 F4 키에 반응하여 해당 필드가 허용하는 값 목록을 표시합니다. 두 이벤트 모두 PBO 및 PAI와 함께 화면의 흐름 논리에 선언됩니다.
| 기준 | POH(지원 요청 처리 과정) | POV(가치 요청 기반 프로세스) |
|---|---|---|
| 발동되다 | F1 키 | F4 키 또는 가능한 입력 버튼 |
| 목적 | 해당 분야의 의미를 설명합니다. | 해당 필드가 허용하는 값을 제공합니다. |
| 기본 소스 | ABAP 사전의 데이터 요소 문서화 | 고정값, 확인표 또는 검색 도움말 |
| 데이터 전송 | 없음, 해당 필드는 표시만 됩니다. | 선택된 값이 화면 필드에 다시 표시됩니다. |
| 일반적인 기능 모듈 | HELP_OBJECT_SHOW_FOR_FIELD | F4IF_INT_TABLE_VALUE_REQUEST |
이제 POH와 POV에 대해 자세히 살펴보겠습니다.
도움말 요청(POH) 프로세스: F1 도움말
- F1 키를 누를 때마다 지정된 데이터 요소에 대한 POH 이벤트가 실행됩니다.
- 화면의 처리 로직에 '도움 요청 시 처리' 이벤트가 없는 경우, ABAP 딕셔너리의 해당 필드 문서를 기반으로 도움말이 표시됩니다. 해당 문서조차 없는 경우에는 도움말이 표시되지 않습니다.
- 필드 도움말 문서를 표시하려면 POH 이벤트에 다음 화면 흐름 논리를 코딩해야 합니다.
PROCESS ON HELP-REQUEST FIELD <f> [MODULE <mod>] WITH <num>
- 필드에 대한 화면별 데이터 요소 문서가 있는 경우 , 번호를 지정하여 표시할 수 있습니다. .
- 수 리터럴이거나 변수일 수 있습니다. 해당 ABAP 프로그램에서 변수를 선언하고 채워야 합니다.
- FIELD 문은 화면 필드의 내용을 전송하지 않습니다. PROCESS ON HELP-REQUEST 이벤트의 ABAP 프로그램에. 도움말 문서만 표시됩니다. 그게 다야.
모듈 이 모듈은 일반 PAI 모듈처럼 ABAP 프로그램에 정의됩니다. 모듈의 처리 로직은 해당 필드에 대해 적절한 도움말이 표시되도록 해야 합니다. 텍스트 필드가 있는 추가 화면을 호출하는 대신, 다음 함수 모듈 중 하나를 사용하여 적절한 도움말을 표시해야 합니다. SAP스크립트 문서
HELP_OBJECT_SHOW_FOR_FIELD
- 이 기능 모듈은 ABAP 사전의 모든 구조 또는 데이터베이스 테이블의 구성 요소에 대한 데이터 요소 문서를 표시합니다.
- 구성요소 및 구조 또는 테이블의 이름을 가져오기 매개변수 FIELD 및 TABLE에 전달합니다.
HELP_OBJECT_SHOW
- 이 기능 모듈을 사용하여 다음을 표시합니다. SAP스크립트 문서.
- 문서 클래스(예: 일반 텍스트의 경우 TX, 데이터 요소 문서의 경우 DE)와 문서 이름을 가져오기 매개변수 DOKCLASS 및 DOKNAME에 전달해야 합니다.
- 기술적인 이유로, 행 유형이 T인 빈 내부 테이블도 함께 전달해야 합니다.LINE 함수 모듈의 tables 매개변수에.
F1은 해당 필드에 대한 설명을 제공합니다. 다음 이벤트에서는 해당 필드에 입력할 수 있는 항목들을 나열합니다.
가치 프로세스(POV): F4
- 사용자가 가능한 항목(F4) 기능을 선택하면 시스템은 개발자가 저장한 경우 필드에 대해 가능한 입력 값(값, 확인 테이블, 일치 코드)을 표시합니다.
- 사용자가 "가능한 항목"을 호출한 경우 PROCESS ON VALUE-REQUEST 이벤트가 항상 처리됩니다.
- 화면의 필드에 가능한 값을 정의하려면 화면 흐름 논리의 POV 이벤트에서 다음을 정의해야 합니다.
PROCESS ON VALUE-REQUEST FIELD field name MODULE module name
- 가능한 값의 경우 위에 정의된 모듈 내에서 일반 기능 모듈을 사용해야 합니다. HELP_VALUES_GET_WITH_TABLE ABAP Dictionary에서 가능한 값을 가져옵니다.
입력 도움말에 사용할 수 있는 다른 기능도 있습니다:
F4IF_FIELD_VALUE_REQUEST
- ABAP 사전의 입력 도움말을 동적으로 호출합니다.
- ABAP 사전의 구조 또는 데이터베이스 테이블의 구성요소 이름을 가져오기 매개변수 TABNAME 및 FIELDNAME의 함수 모듈에 전달할 수 있습니다.
- 기능 모듈은 ABAP 사전 이 구성 요소에 대한 도움말을 입력합니다. 관련된 화면 필드를 모두 읽습니다.
- 가져오기 매개변수 DYNPPROG, DYNPNR 및 DYNPROFIELD를 지정하면 사용자 선택 사항이 화면의 해당 필드로 반환됩니다.
- 테이블 매개변수 RETURN_TAB을 지정하면 선택 항목이 대신 테이블에 반환됩니다.
MODULE VALUE_CARRIER INPUT. CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' EXPORTING TABNAME = 'DEMOF4HELP' FIELDNAME = 'CARRIER1' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD= 'CARRIER'. ENDMODULE.
F4IF_INT_TABLE_VALUE_REQUEST
- 이 기능 모듈은 사용자가 생성한 값 목록을 표시합니다. ABAP 프로그램.
- 값 목록은 테이블 매개변수 VALUE_TAB로 함수 모듈에 전달됩니다.
- 가져오기 매개변수 DYNPPROG, DYNPNR 및 DYNPROFIELD를 지정하면 사용자 선택 사항이 화면의 해당 필드로 반환됩니다.
- 테이블 매개변수 RETURN_TAB을 지정하면 선택 항목이 대신 테이블에 반환됩니다.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'CONNID' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD = 'CONNECTION' VALUE_ORG = 'S' TABLES VALUE_TAB = VALUES_TAB.
이것이 POH와 POV의 전부입니다. 의심스러운 점이 있으면 의견을 남겨주세요.
내부 테이블을 사용하여 F4 도움말을 만드는 방법
ABAP 딕셔너리에 존재하지 않는 값 목록이 프로그램 내부에서 생성되어 F4IF_INT_TABLE_VALUE_REQUEST 함수에 전달됩니다. 아래 단계는 화면 필드에 대한 F4 도움말이 제대로 작동하도록 하는 방법입니다.
- 값 테이블을 선언합니다. 화면에 출력될 값을 저장하는 첫 번째 열이 있는 내부 테이블을 생성합니다. 이 테이블은 PBO 모듈 또는 값 요청 모듈 자체에서 채울 수 있습니다.
- 흐름 논리에 필드를 등록하세요: 화면에 "PROCESS ON VALUE-REQUEST"를 추가하고 필드를 "FIELD … MODULE …"와 연결하여 F4 키를 눌렀을 때 모듈이 실행되도록 합니다.
- 함수 모듈을 호출합니다. RETFIELD에는 열 이름을, DYNPROFIELD에는 화면 필드 이름을 전달하고, 목록이 구조화된 테이블로 전달되므로 VALUE_ORG = 'S'를 지정합니다.
- 값을 반환하세요: DYNPPROG와 DYNPNR은 프로그램과 화면을 식별하므로 선택된 행이 추가 코드 없이 화면 필드에 직접 기록됩니다.
- 그것을 테스트하십시오 : 화면을 활성화하고 필드에서 F4 키를 누른 다음 목록이 나타나고 선택 항목이 해당 필드에 있는지 확인하십시오.
* Flow logic of the screen PROCESS ON VALUE-REQUEST. FIELD spfli-connid MODULE f4_connid. * Module in the ABAP program MODULE f4_connid INPUT. DATA: lt_values TYPE STANDARD TABLE OF spfli. SELECT * FROM spfli INTO TABLE lt_values WHERE carrid = spfli-carrid. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'CONNID' dynpprog = sy-repid dynpnr = sy-dynnr dynprofield = 'SPFLI-CONNID' value_org = 'S' TABLES value_tab = lt_values. ENDMODULE.
💡 팁: 목록을 채우기 전에 함수 모듈 DYNP_VALUES_READ를 사용하여 다른 화면 필드의 값을 읽어오세요. 이렇게 하면 이미 입력한 항공사의 연결편과 같은 종속적인 F4 도움말을 구성할 수 있습니다.
