グループレベルの実際の流れ

Magicエンジン > エンジン実行レベル > グループレベル

ロジックユニットの実行順序は以下の通りです。

Magic エンジンがバッチタスクの実行を開始すると、最初に[タスク前]を実行します。次に、最初のレコードに対して、全てのグループレベルの[グループ前]を、上位のグループレベルから下位のグループレベルの順で実行していきます。その後、エンジンは、メインソースから1レコードづつフェッチしてレコード処理を進めていきます。

レコードをフェッチした時に、いずれかのグループ項目の値に変化を検出すると、[レコード後]の後に、最下位のグループレベルから、変化があったグループ項目のグループレベルまで、[グループ後]が全て実行されます。[グループ後]は、この時点で処理済みのレコードに対して実行されます。この後、グループ項目に変化があったグループレベルから、最下位にあるグループレベルまで、[グループ前]が全て実行されます。この[グループ前]も、この時点での処理済みのレコードに対して実行されます。

続いて、次のグループの最初のレコードがレコードレベルで処理されます。その後も引き続きグループ項目の値がチェックされ、変化があった時には同様の処理が繰り返されます。最後に、レコードが全て処理し終わった時、あるいは[タスク終了条件]特性の式が「True」に評価された時には、レコードの処理が終了し、最下位のグループレベルから最上位のグループレベルまで、グループ後が実行されます。この処理は、最後に処理されたレコードに対して実行されます。その後[タスク後]が実行され、タスクが終了します。

参照