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

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

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

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

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

  • データの入力
  • メニュー項目の選択
  • ボタンをクリックする
  • クリックするか、 double エントリをクリックする

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

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

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

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

レポートプログラム:

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

ダイアログプログラム:

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

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

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

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

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

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

トランザクションコード

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

パーテーション類

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

GUIのステータス

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

ABAPプログラム

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

画面フローロジック

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

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

ディンプロ

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

ABAPモジュールプール

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

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

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

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

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