ASTERIA Warp便利機能②：運用保守も安心！柔軟なエラーハンドリング設計

こんにちは、[SCSK株式会社](https://www.scsk.jp/product/common/asteria/)です！

ASTERIA Warpは簡単にデータ連携を実現できるEAIツールですが、「データ連携」と言う重要な役割を担うからこそ、エラーが発生した場合の対応は非常に重要です。
そこで今回は、ASTERIA Warpで行える「<font color="red">エラーハンドリング</font>」についてご紹介させていただきます。

https://www.scsk.jp/product/common/asteria/

# エラーハンドリングとは
<font color="red">エラーハンドリング</font>とは、エラーの発生を検出して予め決められた手順を実施するなど、<font color="blue">エラーを適切に対処するための仕組み</font>です。
例えば、エラーが発生したことをリアルタイムでメール通知したり、原因の特定を手助けするための情報を出力しておくことで、迅速にエラーに対応することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919043/0f46e1c4-7a3a-4fe7-9a44-806c5459d907.png)

# ASTERIA Warpのエラーハンドリング

## ASTERIA Warpの汎用エラー処理
ASTERIA Warpの「<font color="red">汎用エラー処理</font>」機能は、フロー全体で発生するエラーをまとめてハンドリングできる機能です。

「汎用エラー処理」機能では事前に準備しておいたエラー処理フローを、他フローで発生した場合に自動的に呼び出すことができます。
また、この機能を使用することで、どのフローからでも共通のエラー処理フローを呼び出すことが可能となります。
これにより、統一されたフォーマットでエラーを把握できるため<font color="blue">運用面でも役立つ</font>ほか、エラー処理を改修する際にも対象範囲を小さくできるため<font color="blue">工数の削減</font>も期待できます。

## ASTERIA Warpのエラーハンドリング設定範囲
ASTERIA Warpのエラーハンドリングでは、「汎用エラー処理」でフロー全体に対するエラーハンドリングを設定することもできますが、個別の機能を提供している<font color="red">アイコン単位</font>でもアイコンごとの「エラー処理」でエラーハンドリングを設定できます。
また、それぞれのアイコンの機能に沿った「エラー処理」の設定もございますため、細かなエラーハンドリングが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919043/ec3727f2-f44b-4206-9d28-9fe00c9532b5.png)

## ASTERIA Warpのエラーハンドリング種類
ASTERIA Warpでのエラーハンドリングとして、以下のような対応が可能です。

・<font color="red">ASTERIA Warpの特定のフローをエラー処理として実行</font>
ASTERIA Warpではエラーハンドリング範囲を柔軟に設定できるため、フロー全体のエラー処理フローを設定しつつ、特定アイコンのエラーでは別のエラー処理フローを実行することが可能となります。
また、エラー処理として実行したフローでは、ASTERIA Warpで準備されているエラー発生箇所の特定に便利な値(エラー処理の「システム変数」)を参照することもできますので、<font color="blue">エラー状況の詳細</font>を把握することも可能です。

・<font color="red">エラーを無視して後続の処理を継続</font>
エラー発生時でも後続の処理を継続したい場合、「<font color="blue">エラーを無視する</font>」に設定することが可能です。
また、<font color="blue">エラー内容によって処理を分岐</font>させる機能を持ったアイコンもありますので、エラーを無視した先でエラー内容ごとに定められた処理を継続させることも可能です。

・<font color="red">処理を終了</font>
「汎用エラー処理」やアイコンの機能に沿った「エラー処理」を使用することで、特定フローのエラー時や特定のエラーが発生した場合のみ「<font color="blue">リクエストを終了する</font>」「<font color="blue">フローを終了する</font>」に設定することが可能です。
また、<font color="blue">サブフロー機能</font>を使用して「フローを終了する」に設定することで、メインフローから呼び出されたサブフロー内の処理だけを終了して、メインフローの処理は継続させることも可能となります。

※サブフロー機能の利用可否はご契約のエディション（プラン）によって異なります。
エディションごとの機能をまとめた記事がございますので、詳細は下記をご参照ください。

[これで迷わない！ASTERIA Warp最適プランの選び方](https://qiita.com/SCSK_EAI_Solution/items/644838aa26282c242c27)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919043/b171bbb7-76b4-48b5-b24e-08c6bf95df69.png)

これらの設定を組み合わせ、エラーごとに適切なハンドリングを行うことにより、安心なデータ連携を運用することが可能です。

# エラーハンドリングの使用例
ここからは上記でご説明したASTERIA Warpのエラーハンドリングの具体的な使用例をご紹介していきたいと思います。

## 特定の処理を実行する
ASTERIA Warpにはメール送信ができる機能を持ったアイコンがあり、メール本文も動的に設定が可能です。
先ほどエラー発生箇所の特定に便利な値(エラー処理の「システム変数」)を参照できるとご紹介しましたが、例えばエラーが発生した「呼び出し元のフロー名」や「エラーが発生したコンポーネント(アイコン)名」など様々な値があり、この値を使用してメールの本文を設定することができます。
このような値を組み込んだメールを送信することで、<font color="blue">エラー発生時のリアルタイム通知＋原因特定につながる情報の出力</font>が一度に可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919043/21a12a8c-37d2-4e09-895a-a250c3d1470a.png)

## エラーを無視して後続の処理を継続する
先ほどエラー内容によって処理が分岐できる機能を持ったアイコンがあるとご紹介しましたが、このアイコンにはエラーメッセージを「正規表現」で判定する機能もあります。
例えば、一度エラーを無視した後、<font color="blue">特定のエラーメッセージが出力されている場合にのみ意図的にエラー発生</font>、それ以外は処理を継続させるような処理を組むことができます。
ちなみに上記のように意図的にエラーを発生させる場合には、任意のエラーメッセージを設定したり、「汎用エラー処理」のフローを実行させることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919043/37b8803c-01cc-4c74-bcde-4761edeef326.png)

## 処理を終了する
先ほど、個別の機能を提供しているアイコンに沿ったエラー設定があるとご紹介しましたが、このエラー内容で「<font color="blue">リクエストを終了する</font>」「<font color="blue">フローを終了する</font>」を設定できます。
例えば、ファイルをコピーするアイコンでは「コピー元が存在しない」エラーと、「コピー先が既に存在する」エラー、「汎用」エラーで分かれています。
そのため、ファイルコピー時に「コピー先が既に存在する」以外のエラーを簡単に「フローを終了する」に設定が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919043/226711e3-16cb-4afb-a6a7-bba6eb8f35e9.png)

# おわりに
今回はASTERIA Warpのエラーハンドリングをご紹介しました。
ASTERIA Warpでは様々な実装や幅広い運用が可能の他、<font color="blue">エラーハンドリングを共通化</font>することも可能ですので、よりお客様のご要望に沿った処理が実現できるかと思います。

最後にASTERIA Warpのエラーハンドリングとして実績が多いものをご紹介します。

・エラー発生時に担当者へメール送信
・サードパーティー製の監視製品が監視しているファイルへのエラーログ出力
・サードパーティー製のジョブ製品にエラーとなるリターンコードを返却

また、「AWSのSNS経由による携帯電話（ショートメッセージ）への通知」や「incoming webhook with Workflowsを使用してTeamsにメッセージを送信」など多種多様なエラーハンドリングが可能ですので、少しでも興味を持ってくださったらぜひSCSKまでお気軽にお問い合わせください。

最後までご覧いただきありがとうございました！
次回更新もお楽しみに！！！


<font color="Blue">※SCSK株式会社はASTERIA Warpのマスターパートナーです。15年以上の販売実績および、様々な業種・業務での構築ノウハウによりお客様をサポート致します。
※SCSK株式会社では、EAIの導入支援や最適なソリューションの提供を通じて、企業のIT環境をサポートいたします。EAIに関するご相談や詳細については、ぜひお気軽にお問い合わせください。</font>

https://www.scsk.jp/product/common/asteria/

※アステリア社が運用しているコミュニティサイト「Asteria Park」や、トレーニングサイト「NoCode Gate」もございます。ぜひご活用ください！

https://asteria-park.commmune.com/view/home
https://nocodegate.asteria.com/