処理フロー: オンラインタスクの基本フロー

オンラインタスクの基本フロー図

図はオンラインタスクの基本フローです。
タスク前処理とタスク後処理は、そのタスクの開始時と終了時に必ず1回ずつ実行されます。
レコード処理は、タスク特性のメインテーブルに指定されたデータを1レコードずつ読み取り、
レコード前処理→レコードメイン→レコード後処理の順に実行されます。
レコードループ(順次読み込み)はタスク特性のインデックスに従って、自動的に行われます。

オンラインタスクの特徴は、レコード後処理です。
通る場合と、通らない場合とがあります。
また、データはレコード後処理が実行されたときだけ書き込まれます。
ということで、どういう条件のときにレコード後処理を通るのかを知っておくことが非常に重要となります。
これについては、オンラインタスクでレコード後処理を通る条件を見てください。

次に、レコード後処理を通る回数について考えてみましょう。
1レコードにつき、レコード後処理を通る回数は、通常0回(通らない)か1回です。
しかし、ユーザの入力によっては2回通ることがあります。
修正モードのタスクで、1度何か入力(データ修正)した後、レコード削除したときです。
このときは、修正モードで1回、削除モードで1回、合計2回連続でレコード後処理を通過します。
そのため、開発者の意図しないところで、子タスクが2回コールされてしまった、ということもあり得ます。
これを回避するには、Stat関数を使います。
コマンドの条件に「Stat(0,'M'MODE)」とか「Stat(0,'D'MODE)」というような式を入れておきます。
('M'MODEは修正モード、'D'MODEは削除モードという意味です。)