Magic xpiトレーニングテキスト
18. エラー処理

18.1 エラー変数とエラーコード

【エラー変数(C.sys.Error ~)】

  • Magic xpi はフロー内の各ステップが実行されるたびに、その実行結果をエラー変数(定義済みコンテキスト変数)に格納します。
変数名 説明
C.sys.ErrorCode 現在のエラーコードです。ステップ動作中にエラーが発生した場合に値が入力されます。

0:正常 / 0以外:エラー

各アダプタ毎にエラーコード(P.6参照)が設定されています。

C.sys.ErrorDescription エラーの説明です。ステップ動作中にエラーが発生した場合に値が入力されます。

 

【エラー変数(C.sys.LastError ~)】

  • 最後に発生したエラー情報は「C.sys.LastError」から始まるエラー変数に格納されます。
変数名 説明
C.sys.LastErrorCode 最後に発生したエラーコード。
C.sys.LastErrorDescription 最後に発生したエラーの内容
C.sys.LastErrorFlowName 最後にエラーが発生したフローの名称
C.sys.LastErrorStepName 最後にエラーが発生したステップの名称
C.sys.LastErrorInfo 最後に発生したエラーに関する付随情報

コンポーネントによっては、設定されない場合もあります。

 

【C.sys.ErrorとC.sys.LastErrorの違い】

  • 「C.sys.Error」から始まるエラー変数は、次ステップの開始時に値がクリアされるので、次ステップの実行条件でのみ使用することができます。
  • 「C.sys.LastError」から始まるエラー変数は、次のエラーが発生するまでは値が保持されるので、次ステップの中で前ステップのエラー内容を参照する場合に使用します。

C.sys.ErrorとC.sys.LastErrorの違い

 

【エラーコードの確認】

  • ソリューションエクスプローラのエラーリポジトリで、エラーコードとエラー内容を確認できます。

エラーコードの確認

18.2 エラー処理フローの呼び出し

  • Magic xpi では、フローでエラーが発生した際の共通エラー処理フローを作成し、それを各フローから呼び出すことができます。
  • エラーフローの呼び出し方には次の3つの方法があります。

 ① フローの特性で指定する。

 ② データマッパーのデータベース特性で指定する。

 ③ 「フロー呼出」コンポーネントで呼び出す。

 

【① フローの特性で指定する】

  • フローのプロパティ「エラー処理フロー」に、エラーを処理するためのフローを指定します。
  • このプロパティを設定したフローの処理中にエラーが発生した場合、指定したフローが自動的に呼び出されます。

フローの特性で指定す

 

【② データマッパーのデータベース特性で指定する】

  • データマッパーの送り先に指定したDataBaseエントリのプロパティ「エラー処理フロー」に、エラーを処理するためのフローを指定します。

データマッパーのデータベース特性で指定する

 

【③ 「フロー呼出」コンポーネントで呼び出す】

  • フロー内で変数「C.sys.ErrorCode」が0か否かを判断し、0以外(=エラー)の場合に「フロー呼出」コンポーネントを使用してエラーを処理するためのフローを呼び出します。

「フロー呼出」コンポーネントで呼び出す

 

【設定例】

  • ①フロー特性のエラー処理フローと、②データベース特性のエラー処理フロー両方を指定した場合、②データベース特性のエラー処理フローが優先的に呼び出されます。

設定例

 

図のように設定した場合、データマッパーでエラーが発生したときは「エラー処理A」が呼び出され、ファイル管理でエラーが発生した場合は「エラー処理B」が呼び出されます。

18.3 エラー処理フローの作成

  • エラー処理フローでは、エラー通知メールを送信したり、ログファイルを出力します。
  • エラー通知メールを送信するには、Emailコンポーネントの「Quick Send」メソッドを使用します。

エラー処理フローの作成

 

「Quick Send」 = 「Connect Send」 + 「Send」 + 「Disconnect」
メールを1通送信する場合は「Quick Send」メソッドを使用し、複数送信する場合は「Connect Send」で接続後、「Send」メソッドを複数回呼び出し、「Disconnect」で切断します。

18.4 エラーポリシーの設定

  • エラー処理の方法として、エラー処理フローを呼び出すほか、エラーポリシーを設定できます。
  • エラーポリシーではエラーが起こった際の動作(アボート/無視/フロー再起動/リトライ/ジャンプ)を設定します。
  • エラーポリシーはフローごと、コンポーネントごと、エラーコードごとに設定します。

 

【設定例】

  • ソリューションエクスプローラでエラーポリシーを設定するフロー下の「エラーポリシー」をダブルクリックし、エラーポリシーを設定します。

設定例

 

ファイル管理コンポーネントのエラーコード(200~216)に対してエラーポリシー「ジャンプ」(「ステップ3:処理終了」)を設定。
また、通知として「電子メール」を選択。

 

  • ファイル管理コンポーネントでエラーが発生すると、「ステップ3:処理終了」へジャンプします。
  • また、プロジェクトのプロパティで設定したエラーメール送信先にエラーメールが送信されます。

ファイル管理コンポーネントでエラーが発生

 

【エラー処理フローとエラーポリシーの優先順位】

  • エラー処理フローとエラーポリシー両方を設定した場合、エラー処理フローのみが実行されます。
  • エラー処理フローの実行後、エラーポリシーを実行したい場合は、エラー処理フローの最後のステップでエラーコードを更新する必要があります。

エラー処理フローとエラーポリシーの優先順位