!--a11y-->

Dynpro 制御ロジック の主な仕事は、ABAP プログラム内のダイアログモジュールを呼び出すことです。この呼出には MODULE 命令を使用できます。この命令は Dynpro 制御ロジックの使用可能な 4 つのイベントブロックでプログラミングすることができます。PBO イベントでは、次にように定義された ABAP プログラム内の任意のダイアログモジュールを、MODULE 命令を使って呼び出すことができます。
MODULE <mod> OUTPUT.
...
ENDMODULE.
PAI 、POH 、および POV イベントでは、次のように定義された ABAP プログラム内の任意のダイアログモジュールを、MODULE 命令を使って呼び出すことができます。
MODULE <mod> [INPUT].
...
ENDMODULE.
OUTPUT を使って定義したものと INPUT を使って定義したものの、同名の 2 つのダイアログモジュールを 1 つのプログラムに組み込むことは技術的に可能です。ただし、これは推奨しません。
ABAP プログラムのダイアログモジュールは複数の Dynpro から呼び出せるため、複数のDynpro で必要とする機能を単一のモジュールで集中してプログラミングすることができます。たとえば、通常、OK-code 項目の内容を補助変数にコピーしたあと、すべての PAI イベントの項目がリセットされます。このタスクを単一のモジュールでプログラミングし、このモジュールをあらゆる Dynpro の PAI イベントから呼び出せるようにすることができます。
1 つのダイアログモジュール内の Dynpro 番号を区別する必要がある場合は、システム項目 SY-DYNNR を使用することができます。この項目には常に現在の Dynpro の番号が格納されます。それによって、たとえば、機能コードを単一の PAI モジュールで分析し、その後、Dynpro 番号と機能コードにもとづいて残りのプログラムフローを制御することができます。
実際の Dynpro 順序は次のようになります。
Dynpro の表示は PBO イベントで準備されます。制御ロジックによって対応する ABAP ダイアログモジュールが呼び出されます。その後、Dynpro が表示されます。この表示が行われると、アプリケーションサーバから SAP GUI に制御が渡されます。Dynpro はユーザが PAI イベントをトリガするまで、ユーザの入力を受け入れます。ユーザが PAI イベントをトリガすると、制御がアプリケーションサーバに戻ります。対応する ABAP ダイアログモジュールを呼び出すことによって、プログラムによりユーザの入力が処理されます。PAI 処理が完了すると、次の Dynpro の PBO 処理が開始されます。次画面の PAI 処理と PBO 処理は、アプリケーションサーバ上で単一のダイアログステップを形成します。現在の Dynpro は、次の Dynpro の PBO が完了するまで継続して表示されますが、入力は受け入れません。
制御ロジックでダイアログモジュールを呼び出す方法はいろいろあります。制御ロジックの構文では、ダイアログモジュールを条件付で呼び出し、Dynpro と ABAP プログラム間のデータ転送を制御することができます。