ダイアログプログラミングチュートリアル: モジュールプール SAP ABAP

SAP-ABAP は、レポート プログラムとダイアログ プログラムの 2 種類のプログラムをサポートしています。

ABAP プログラムがユーザー入力を要求する場合は、ダイアログ プログラミングが使用されます。

このチュートリアルでは次のことを学びます:

ユーザーダイアログとは、ユーザーとプログラム間の対話の形式であり、次のいずれかになります。

  • データの入力
  • メニュー項目の選択
  • ボタンをクリックする
  • エントリをクリックまたはダブルクリックする

ダイアログ プログラムは、画面間を行き来する必要がある場合にも使用されます。

ダイアログ プログラムは、タイプを「M」(モジュール プール)として作成されます。 これらは独立して実行することはできず、第一画面を指定する少なくとも XNUMX つのトランザクション コードに添付する必要があります。

レポート プログラムとダイアログ プログラムの違い

レポート プログラムとダイアログ プログラムの違い

レポートプログラム:

レポートは、通常、データベース テーブル内のデータを変更せずに読み取り、分析するプログラムです。 データベース.

ダイアログプログラム:

ダイアログ プログラムを使用すると、システムと対話的に作業し、データベース テーブルの内容を変更できます。 各ダイアログ プログラムには、システムによって次々に処理される特定の画面シーケンスがあります。

ダイアログ プログラミングのサンプル トランザクション処理

A サンプルトランザクション処理

ダイアログプログラムのコンポーネント

取消 レポート 通常、他のオブジェクトから独立して実行できる 1 つの自律プログラムの作成を伴いますが、ダイアログ プログラム開発では、単独では実行できない複数のオブジェクトの開発を伴います。 代わりに、すべてのオブジェクトはメインプログラムに階層的にリンクされ、ダイアログメインプログラムによって指示された順序で実行されます。.

ダイアログ プログラムのコンポーネントは次のとおりです。

トランザクションコード

  • トランザクション コードによって画面シーケンスが開始されます。
  • トランザクション コードは、ABAP ワークベンチのリポジトリ ブラウザで作成するか、トランザクション SE93 を使用して作成します。
  • トランザクションコードは、ABAP プログラムおよび第一画面にリンクされています。
  • CALL SCREEN ステートメントを使用すると、任意の ABAP プログラムから画面シーケンスを開始できます。

パーテーション類

  • 各ダイアログ SAP システムは 1 つ以上の画面によって制御されます。
  • Screen を使用して画面を作成します。 Painter トランザクション SE51 を通じて ABAP ワークベンチで
  • 各画面は ABAPプログラム.
  • これらの画面は、「画面マスク」または「レイアウト」とそのフロー ロジックで構成されます。画面には、入力/出力フィールドや、チェックボックスやラジオ ボタンなどのその他のグラフィック要素の位置を決定するレイアウトがあります。フロー ロジックは、画面内の論理処理を決定します。

GUIのステータス

  • 各画面には、プログラムの独立したコンポーネントである GUI ステータスがあります。
  • これは、ユーザーがアプリケーションの機能を選択できるメニュー バー、標準ツールバー、アプリケーション ツールバーを制御します。
  • ABAP ワークベンチでメニューを使用して作成します。 Painter.

ABAPプログラム

  • R/3 システムの各画面および GUI ステータスは、XNUMX つの ABAP プログラムに属します。
  • ABAP プログラムには、画面フロー ロジックによって呼び出されるダイアログ モジュールが含まれており、GUI ステータスからのユーザー入力も処理します。
  • 画面を使用する ABAP プログラムは、ダイアログ プログラムとも呼ばれます。
  • モジュール プール内 (タイプ M プログラム); 呼び出される最初の処理ブロックは常にダイアログ モジュールです。 ただし、実行可能プログラムや汎用モジュールなど、他の ABAP プログラムで画面を使用することもできます。 最初の処理ブロックは別の方法で呼び出されます。 たとえば、ランタイム環境やプロシージャ呼び出しによって行われます。 次に、CALL SCREEN ステートメントを使用して画面シーケンスが開始されます。

画面フローロジック

画面フローロジックは主に 4 つのコンポーネントに分かれています。

  • 出力前の処理 (PBO) イベント: 画面が表示される前に処理される
  • 入力後の処理(PAI) イベント: 画面上のユーザーアクションの後に処理されます。
  • ヘルプリクエスト時のプロセス (P.O.H.): F1 キーが押されたときに処理されます。
  • 値リクエストの処理 (ハメ撮り):F4 が押されたときに処理されます

ディンプロ

  • 画面とそのフロー ロジックは Dynpro と呼ばれます (画面フロー ロジックがプログラム フローに影響を与えるため、「動的プログラム」)
  • 各 Dynpro は、ダイアログ プログラムの XNUMX つのステップを正確に制御します。
  • プログラムに属する画面は次のとおりです。 数の。 スクリーン フロー シーケンスは、直線的または周期的のいずれかになります。 スクリーン チェーン内から別のスクリーン チェーンを呼び出し、処理後に元のチェーンに戻ることもできます。 ABAP プログラムのダイアログ モジュール内から、静的に定義された次の画面をオーバーライドすることもできます。

ABAPモジュールプール

  • PBO または PAI イベントで、Dynpro は ABAP ダイアログプログラムを呼び出します。 このようなプログラムの集合をABAPモジュールプールと呼びます。
  • たとえば、PAI イベントで呼び出されるモジュールは、ユーザー入力を確認し、更新タスクなどの適切なダイアログ ステップをトリガーするために使用されます。
  • すべての Dynpro は内部から呼び出されます XNUMXつ トランザクションとは、共通モジュール プールを指します。

ダイアログプログラムの構造

ダイアログプログラムの構造

ダイアログプログラムの処理フロー

ダイアログプログラムの処理フロー