Home > コンセプトペーパ > Magic xpiのエラー処理 > 追加シナリオ > 呼び出されたフローでのエラー処理

呼び出されたフローでのエラー処理

データベースエラー

以下の図にあるように、あるフロー(Flow 1)でトランザクションがオープンされており、それか他のフロー(Flow 2)を呼び出す場合、トランザクションはFlow 2全体で有効となります。従って、Flow 2でエラーが発生した場合、 Magic xpiはFlow 2をアボートし、Flow 1に戻ります。

もしデータマッパーの[DBトランザクションレベル]パラメータがマッパに設定されている場合、トランザクションはデータマッパーが開始する前にオープンされます。従って、呼び出されたフローでエラーが発生した場合、データマッパーはエラーで処理を終了します。上位レベルのステップでトランザクションがオープンされているため、[エラー動作]パラメータで終了あるいは継続に設定されても無視されます。 

非データベースエラー

ソース側でフラットファイル、送り先でフロー呼出を設定した場合、呼び出されたフローが非データベースエラー(たとえばアボート)で終了した場合、データマッパーは [エラー動作]パラメータで指定されている内容に従い、以降の処理を行います。

フラットファイルの場合は、終了継続のどちらを設定しても次レコードの処理が行われます。継続が選択された場合、データマッパーの呼び出しは、エラーで終了した各呼び出しフローに対してエラーフローを起動しません。終了が選択された場合、呼び出したデータマッパーは呼び出されたフローからエラーを返して処理を終了します。

これが Magic xpiの標準的なエラー処理動作となります。