Home > コンセプトペーパ > Magic xpiのエラー処理 > 追加シナリオ > 呼び出されたフローでのエラー処理
データベースエラー
以下の図にあるように、あるフロー(Flow 1)でトランザクションがオープンされており、それか他のフロー(Flow 2)を呼び出す場合、トランザクションはFlow 2全体で有効となります。従って、Flow 2でエラーが発生した場合、 Magic xpiはFlow 2をアボートし、Flow 1に戻ります。
もしデータマッパーの[DBトランザクションレベル]パラメータがマッパに設定されている場合、トランザクションはデータマッパーが開始する前にオープンされます。従って、呼び出されたフローでエラーが発生した場合、データマッパーはエラーで処理を終了します。上位レベルのステップでトランザクションがオープンされているため、[エラー動作]パラメータで終了あるいは継続に設定されても無視されます。
非データベースエラー
ソース側でフラットファイル、送り先でフロー呼出を設定した場合、呼び出されたフローが非データベースエラー(たとえばアボート)で終了した場合、データマッパーは [エラー動作]パラメータで指定されている内容に従い、以降の処理を行います。
フラットファイルの場合は、終了、継続のどちらを設定しても次レコードの処理が行われます。継続が選択された場合、データマッパーの呼び出しは、エラーで終了した各呼び出しフローに対してエラーフローを起動しません。終了が選択された場合、呼び出したデータマッパーは呼び出されたフローからエラーを返して処理を終了します。
これが Magic xpiの標準的なエラー処理動作となります。