!--a11y-->

バンドルされた更新の実行中に、実行時エラーが発生することがあります。このエラーはどのように処理されるのでしょうか。一般に、COMMIT WORK 処理は以下の順序で行われます。
...
1. PERFORM ON COMMIT でログに記録されたすべてのダイアログタスク FORM ルーチンが実行されます。
2. 高優先度 (V1) の更新タスク汎用モジュールがすべて実行されます。
V1 更新処理が終了すると、変更トランザクションの終了がマークされます。COMMIT WORK AND WAIT でコミット処理をトリガした場合は、制御がダイアログタスクプログラムに戻ります。
3.
低優先度 (V2)
の更新タスク汎用モジュールがすべてトリガされます。
バックグラウンドタスク汎用モジュールがすべてトリガされます。
実行時エラーは、システム自体の中で発生するか、プログラムが強制終了メッセージ ( メッセージタイプ'A') を発行したために発生する可能性があります。また、ROLLBACK WORK 命令からも自動的に実行時エラーの信号が送られます。エラーは、その発生場所に応じて処理されます。
キ FORM ルーチン内 (PERFORM ON COMMIT で呼出)
- 現在の更新トランザクションですでに実行された更新はロールバックされます。
- 他の FORM ルーチンは開始されません。
- それ以降の更新タスクまたはバックグラウンドタスク汎用モジュールは開始されません。
- エラーメッセージが画面に表示されます。
キ V1 更新タスク汎用モジュール内 (IN UPDATE TASK で依頼)
- V1 汎用モジュールですでに実行された更新はロールバックされます。
- それ以降の更新タスク依頼(V1 または V2) はすべて破棄されます。
- バックグラウンドタスク依頼はすべて破棄されます。
- PERFORM ON COMMIT で呼び出された FORM ルーチンですでに実行された更新はロールバックされません。
- エラーメッセージを送信するようにシステムが設定されていれば、エラーメッセージが表示されます。
キ V2 更新タスク汎用モジュール内 (IN UPDATE TASK で依頼)
- 現在の V2 汎用モジュールですでに実行された更新はロールバックされます。
- 実行予定の更新タスク依頼(V2) はすべて実行されます。
- 実行予定のバックグラウンドタスク依頼はすべて実行されます。
- 以前に実行された V1 または V2 汎用モジュールの更新はロールバックされません。
- 以前に FORM ルーチン (ON COMMIT で呼出) で実行された更新はロールバックされません。
- エラーメッセージを送信するようにシステムが設定されていれば、エラーメッセージが表示されます。
キ バックグラウンドタスク汎用モジュール内 (IN BACKGROUND TASK DESTINATION で依頼)
- 現在の DESTINATION ですでに実行されたバックグラウンドタスク更新はロールバックされません。
- 同じDESTINATION に対するそれ以降のバックグラウンドタスク依頼はすべて破棄されます。
- 以前に実行されたその他の更新はロールバックされます。
- エラーメッセージは表示されません。
リモート処理でエラーが発生したことがプログラムで検出された場合に、その依頼を後で再送信するかどうかをプログラムで決定することができます。
RFC 処理に関する追加情報については、リモート通信に関する文書を参照してください。