|
この関数は、物理トランザクションモードの場合、使用するDBMSに対してトランザクションの破棄を行います。遅延トランザクションモードの場合、Magicエンジンのデータ処理内でトランザクションの破棄を行います。
ネストレベルは、遅延トランザクションの場合はネスト遅延を設定したレベルで制御できます。一方、物理トランザクションの場合は、もっとも外側のレベルのみサポートしています。
現在のプログラム外のレベルにロールバックするネストレベルは指定しないでください。
通常、「トランザクションロールバック」は、データベースエラーまたはシステムクラッシュのために用意されていますが、アプリケーションに関連する例外状況の処理にも役立ちます。
例えば、財務トランザクションを処理するバッチプログラムがあり、現在、マスターレコードの残高の更新が行われていたとします。更新時、カレントのトランザクションレコードの読込後、通常は\5,000
から\100,000 までの間にある残高が\10,000,000 を超えていました。この場合、数字が余りにも大きく、間違いである可能性もあることから、マスターレコードや関連レコードを更新しない場合があります。こういった時には、残高をチェックする条件付きの[アクション]処理コマンドでRollback関数を使用することで、このような状況に対して対処が可能になります。
リッチクライアントタスクの場合は、Rollback(FALSE'LOG,1)のみがサポートされます。これ以外の値は'FALSE'LOGまたは1と評価されます。
|