トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

ABAP/イベントブロック の変更点

Top/ABAP/イベントブロック

ABAPプログラムの実行順序をコントロールする要素。

* 概要 [#r259ae84]
ABAPランタイムシステムというものがあり、そこで規定された順序で呼び出され、基本的にはプログラム上で明記しなければならない。((全く指定しないと、デフォルトでSTART-OF-SELECTION))

下記の通り、上から順に呼び出される。

+[[LOAD-OF-PROGRAM>ABAP/LOAD-OF-PROGRAM]]([[INITIALIZATION>ABAP/INITIALIZATION]])
+[[LOAD-OF-PROGRAM>ABAP/LOAD-OF-PROGRAM]]、[[INITIALIZATION>ABAP/INITIALIZATION]]
+[[AT SELECTION-SCREEN>ABAP/AT SELECTION-SCREEN]]
+[[START-OF-SELECTION>ABAP/START-OF-SELECTION]]
+[[GET>ABAP/GET]]
+[[TOP-OF-PAGE>ABAP/TOP-OF-PAGE]]
+[[END-OF-PAGE>ABAP/END-OF-PAGE]]
+[[END-OF-SELECTION>ABAP/END-OF-SELECTION]]
+[[AT LINE-SELECTION>ABAP/AT LINE-SELECTION]]

** ヘルプからの引用 [#hb0194e5]
*** 概要 [#g0c66216]
 イベントブロックは、イベントキーワードを使用して開始され、次の処理ブロックによって終了されます。
 終了命令がないため、イベントブロックの最後はコメント行で示すことをお奨めします。
 
 イベントブロック内では、 ローカルなデータ型もデータオブジェクトも宣言できません。
 イベントブロック内のすべての宣言命令はABAP プログラムに属し、後続のすべての処理ブロックで可視となります。(つまりグローバル変数になる)
 
 イベントブロックは、フレームプログラムのグローバルなデータ型とデータオブジェクトを扱います。
 そのため、ベントブロック自体には宣言を記述することができません。
 (例外:イベントブロック AT SELECTION-SCREEN ... と GET ... は内部でプロシージャとして実装されるため、ローカルデータをもつことができます)。
 
 データのカプセル化を考慮して、イベントブロック内で実装する機能は少数にしておき、代わりにプロシージャを呼び出すことをお奨めします。
 
 以下のイベントが存在します。
 -プログラムコンストラクタイベント
 このイベントは、すべてのプログラムタイプで発生します。
 -レポートイベント
 レポートイベントは、実行可能プログラムだけで発生します。
 
 選択画面イベントと一覧イベントは、選択画面の処理または一覧処理で発生します。
 両イベント については、これらの処理の説明を参照してください。
 
 注記
 -各イベントブロックの実行が完了すると、 NEW-LINE 命令が実行されます。
 -AT SELECTION-SCREEN ... および GET ... を例外として、1つのプログラムの中でイベントブロックを複数回使用することができます。
 イベントブロック START-OF-SELECTION を暗黙的 に複数回使用することもできます。
 イベントの発生時には、常に関連するすべてのイベントブロックが、出現する順序で実行されます。
 イベントブロックが暗黙的に複数回使用される場合には、拡張プログラムチェックによって警告が発行されます。

*** [[LOAD-OF-PROGRAM>ABAP/LOAD-OF-PROGRAM]]と[[INITIALIZATION>ABAP/INITIALIZATION]]について [#m013f666]
 実行可能プログラム、モジュールプール、汎用モジュール、またはサブルーチンが内部セッションにロードされた時に、ABAP実行時環境によってイベントがトリガされるイベントブロックを定義します。
 
 プログラムをSUBMITまたはトランザクションコードを使用して呼び出すと、内部セッションが新規に開始され、呼出ごとに1度イベントブロックが実行されます。
 
 イベントLOAD-Of-PROGRAMは主として、外部プロシージャまたはトランザクションを呼び出す際のグローバルデータの初期化に使用してください。
 
 実行可能プログラムをSUBMITによって呼び出す場合は、イベントINITIALIZATIONを使用することをお奨めします。
 
 なぜなら、パラメータと選択基準の開始値は、LOAD-OF-PROGRAMの後に設定されるからです(SUBMIT後のプログラムフローを参照)。
 
→ プログラムコンストラクタイベントであるLOAD-OF-PROGRAMが先、レポートイベントであるINITIALIZATIONが後。

~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)