SAP 価値に関するプロセスとヘルプ要求に関するプロセス
⚡ スマートサマリー
Process On Value-Request と Process On Help-Request は、F4 と F1 の背後にある画面イベントです。 SAP ABAP。このページでは、イベント、それらをトリガーするFIELDステートメント、およびドキュメントや入力可能な値を表示する関数モジュールについて説明します。

POHとPOVとは何ですか?
まず、スクリーンフローロジックとその用途について何も知らない場合は、 SAPチュートリアルを確認することをお勧めします 対話プログラム.
POHとPOVは、ユーザーからのヘルプ要求に応答する2つの画面イベントです。POHはF1キーに反応してフィールドの意味を説明し、POVはF4キーに反応してそのフィールドが受け入れる値を一覧表示します。どちらも、PBOとPAIの横にある画面のフローロジックで宣言されています。
| 基準 | POH(ヘルプリクエスト処理) | POV(Process On Value-Request) |
|---|---|---|
| 引き起こされた | F1キー | F4キー、または「可能な入力項目」ボタン |
| 目的 | このフィールドの意味を説明します | フィールドが受け入れる値を提示します |
| デフォルトソース | ABAPディクショナリにおけるデータ要素のドキュメント | 固定値、チェックテーブル、または検索ヘルプ |
| データ転送 | いいえ、フィールドは表示されるだけです | 選択された値が画面のフィールドに書き戻されます |
| 典型的な機能モジュール | HELP_OBJECT_SHOW_FOR_FIELD | F4IF_INT_TABLE_VALUE_REQUEST |
それでは、POHとPOVについて詳しく見てみましょう
ヘルプリクエスト (POH) のプロセス: F1 ヘルプ
- F1キーが押されるたびに、指定されたデータ要素のPOHイベントが実行されます。
- 画面の処理ロジックに「PROCESS ON HELP-REQUEST」イベントが存在しない場合、ABAPディクショナリ内の該当フィールドのドキュメントが基準として参照され、表示されます。それでも存在しない場合は、ヘルプは表示されません。
- フィールド ヘルプ ドキュメントを表示するには、POH イベントで次の画面フロー ロジックをコーディングする必要があります。
PROCESS ON HELP-REQUEST FIELD <f> [MODULE <mod>] WITH <num>
- フィールドに画面固有のデータ要素ドキュメントがある場合、番号を指定して表示することができます。 。
- 人数、個数、総数リテラルまたは変数を指定できます。 変数は宣言され、対応する ABAP プログラム内で入力される必要があります。
- FIELD ステートメントは画面フィールドの内容を転送しないことに注意してください。 PROCESS ON HELP-REQUEST イベントの ABAP プログラムに追加します。 ヘルプドキュメントが表示されるだけです。 それでおしまい。
モジュールABAP プログラムでは、通常の PAI モジュールと同様に定義されます。モジュールの処理ロジックは、該当するフィールドに適切なヘルプが表示されることを保証する必要があります。テキスト フィールドを含む別の画面を呼び出す代わりに、適切なヘルプを表示するには、以下のいずれかの関数モジュールを使用する必要があります。 SAPスクリプト文書
HELP_OBJECT_SHOW_FOR_FIELD
- この汎用モジュールは、ABAP ディクショナリからの構造またはデータベーステーブルのコンポーネントのデータ要素ドキュメントを表示します。
- コンポーネントと構造またはテーブルの名前をインポート パラメーター FIELD および TABLE に渡します。
HELP_OBJECT_SHOW
- この機能モジュールを使用して、 SAPスクリプトドキュメント。
- ドキュメント クラス (たとえば、一般テキストの場合は TX、データ要素ドキュメントの場合は DE) とドキュメントの名前をインポート パラメータ DOKCLASS および DOKNAME に渡す必要があります。
- 技術的な理由により、行タイプがTの空の内部テーブルも渡す必要があります。LINE 関数モジュールのテーブルパラメータへ。
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 ディクショナリから可能な値を取得します。
入力ヘルプに使用できる関数が他にもいくつかあります。
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 ヘルプが構築されます。
