ロールバック

Magic uniPaaSには、処理中にタスク内で発生する可能性がある状況に従ってトランザクションを強制的にロールバックする機能があります。この機能は、Rollback関数として提供されます。Rollback関数を使用すると、指定されたネストレベルまでトランザクションをロールバックしたり、トランザクションを完全にアボートしたりすることができます。

Rollback関数は、ロールバックするネストレベル数をパラメータとして受け取ります。この数値は、オープンされたネストトランザクション数の範囲内でなければなりません。Rollback関数でパラメータ値が「0」である場合は、トランザクション全体が最初のレベルトランザクションまでロールバックされます。ロールバックが行われた後は、レベルがロールバックされた[エラー発生時]パラメータの設定に従って処理が再開されます。

Rollback関数では、エンドユーザに確認ダイアログを表示してから実際のロールバック操作を開始するかどうかを指定することができます。

ブラウザベースプログラムでのロールバックの動作

ブラウザベースプログラムでロールバック実行されると、トランザクション内にオープンしている全てのタスクは、トランザクションをオープンしたタスクを除いて終了されます。ネストされたタスクは影響しません。

例えば、異なるトランザクション内のタスクがロールバックし、親のトランザクションをオープンした場合、子タスクは、オープンし続け影響されません。

例外は、子プログラムが上位のレベルからのトリガによるハンドラで起動された時です。

子プログラムは、自分のレベルのトランザクションをオープンします。子プログラムが複数ある場合、全て新しいトランザクション内にあり最初に起動されたプログラムによって管理されます。

[コール]処理コマンドで起動される場合は、タスク内の子プログラムは閉じていなければなりません。