エラー処理と監視
効果的なエラー処理により、レシピを安定して実行し、障害から復旧できます。 Workatoには、問題の検出、エラーへの対応、ダウンタイムの最小化に役立つ構造化されたツールが用意されています。
このガイドでは、レシピ内のエラーを管理するための主要な戦略について説明します。 障害を監視し、無効な操作を防止し、問題が発生したときに対象を絞ったアラートを送信する方法について説明します。 これらのアプローチを使用して、エラーを効率的に処理し、レシピのダウンタイムを短縮できます。
概要
- エラー監視ステップは、アクションの完了をチェックし、エラーが発生したときに再試行したり次のステップへスキップしたりできるようにします。
- 条件付きアクション(
IF条件ステップ)を使用すると、入力データを検証してエラーを防止できます。 - 停止アクションは、問題が発生したときにレシピを停止し、不要な操作を削減します。
- カスタムエラーメールは、わかりやすいファイル名の添付ファイルや関連するジョブおよびレシピのURLを含むエラー詳細の通知を送信します。
エラータイプ
Workatoは、エラーの発生元とレシピによる対応方法に基づいてエラーを分類します。 これらのカテゴリを理解すると、障害を効率的に処理し、ジョブの中断を最小限に抑えるレシピを構築できます。
ユーザーエラー
ユーザーエラーは、レシピ内の設定ミス、無効な入力、または不足しているデータが原因で発生します。 Workatoは、レシピエディター内または実行中に、これらの問題をエラーメッセージで強調表示します。 一般的な例は次のとおりです。
- 不足しているフィールド
- 無効なデータピルまたは値
- 認証エラー
- オンプレミスエージェントの設定ミスまたはコネクションエラー
レシピは、監視ブロックでこれらのエラーを捕捉して対応できます。 アクションを再試行、スキップ、または代替ステップを実行してワークフローを継続できます。
プラットフォーム側エラー
これらのエラーはWorkatoプラットフォームから発生し、サービスの中断、内部例外、またはタイムアウトの問題が含まれる場合があります。 Workatoは、これらのエラーについて詳細なメッセージを表示しない場合があります。 代わりに、サポート用の参照IDを含む内部エラーとして表示されることがよくあります。
構造化されたエラー識別子
ジョブエラーには、ユーザーエラーとプラットフォームエラーにわたって一貫した自動処理を行うための安定したフィールドerror_type_idが含まれます。 詳細はエラータイプIDを参照してください。
Workatoのエラー処理ツール
Workatoには、レシピエラーの特定、管理、復旧に役立つツールが用意されています。 入力を検証し、データが無効な場合にジョブを停止し、障害が発生したときにレシピがどのように対応するかを定義できます。 次の方法を使用して、信頼性を向上させ、ダウンタイムを短縮し、予期しない状況に対処します。
エラー処理ステップ
重要なアクションを監視し、障害発生時のフォールバックロジックを定義します。 エラーが発生したときに、ステップを再試行したり、問題をログに記録したり、代替パスを実行したりできます。 詳細はこちら。
条件付きアクション
入力を検証し、エラーの原因となる前に無効な操作を防止します。 IF、ELSE IF、ELSEを使用して、特定の条件に基づいてロジックを分岐します。 詳細はこちら。
ジョブの停止
無効なデータまたは復旧不可能な問題を示す条件がある場合、ジョブを早期に終了します。 このステップを使用して、不要な処理を回避し、エラーを明確に表示します。 詳細はこちら。
エラーデータピル
エラーデータピルを使用して、失敗したステップ、エラーメッセージ、再試行回数などの詳細をログに記録またはレポートします。 詳細はこちら。
カスタムエラーアラート
ジョブコンテキストとエラーデータを含むメールを送信して、チームに障害を通知します。 レシピ内またはレシピOpsを使用してワークスペースレベルでアラートをトリガーできます。 詳細はこちら。
レシピOpsトリガー
Job failedトリガーとRecipe stopped by Workatoトリガーを使用して、レシピ全体の失敗を監視します。 詳細はこちら。
エラーのログ記録とレポート
活動監査ログを使用して、実行履歴を追跡し、繰り返し発生する障害を特定し、問題を調査します。 詳細はこちら。
ジョブ履歴とデバッグ
エラーの追跡と障害のデバッグには、ジョブレポートを使用します。 ジョブデバッグトレースにはHTTPリクエストとレスポンスの詳細が表示され、根本原因の特定に役立ちます。 詳細はこちら。
エラー処理ステップによるエラーの監視
エラー処理ステップを使用すると、アクションのグループでエラーを監視できます。 監視対象のステップが失敗すると、Workatoは別のエラー処理ブロックを実行します。 このステップを使用すると、失敗したアクションを再試行して、一時的なネットワークタイムアウトなどの問題から復旧できます。 再試行してもエラーが解決しない場合は、ログ記録、ユーザーへの通知、部分的なレコードの削除などの修正ステップを定義できます。
エラー処理ステップ
エラー処理ステップには2つのブロックがあります。
- エラーのアクションを監視:障害を監視する予定のステップを追加します。 これらのステップが成功すると、Workatoはエラー処理ブロックをスキップします。
- エラー時:障害発生時に実行するステップを追加します。 再試行回数と再試行間の待機時間を設定して、再試行の動作を構成することもできます。 再試行が失敗すると、Workatoはこのブロックの残りのステップを実行します。
エラー処理ステップの追加と構成
レシピにエラー処理ステップを追加して構成するには、次の手順を実行します。
+ステップを追加をクリックし、エラー処理を選択します。
エラー処理ステップを追加
監視する予定のアクションをエラーのアクションを監視ブロック内に追加します。
エラーを監視するアクションを追加
エラー時ブロックをクリックして、その構成パネルを開きます。
エラーステップを構成
Workatoがエラーを処理する方法を構成します。 デフォルトでは、Workatoは失敗したアクションを再試行せず、エラーが発生するとすぐにエラー時ステップを実行します。 再試行を有効にしてその動作を定義するには、次の設定を使用します。
Monitorブロック内のアクションを再試行しますかフィールドで、失敗したアクションを再試行する回数を指定します。 Workatoでは最大3回まで再試行できます。
エラーの処理方法を構成
再試行間の時間間隔フィールドで遅延を設定します。 1~10秒の値を選択できます。
任意です。 Retry IFトグルを有効にすると、特定の条件がtrueの場合にのみ再試行します。
指定した条件がtrueの場合にのみ再試行
監視対象のアクションが失敗したときに実行する予定のステップを、エラー時ブロックに追加します。 これには、ログ記録、アラートの送信、ジョブの停止などが含まれます。 再試行が有効な場合、Workatoはすべての再試行が失敗した後にのみ、これらのステップを実行します。 再試行が無効な場合、Workatoはこれらをすぐに実行します。
監視対象のアクションが失敗したときにエラーを処理するステップを追加
レシピは、エラー処理ステップ内のエラーのアクションを監視ブロックを常に実行します。 その後、エラーが発生せず、レシピがエラー時ブロックをトリガーしない場合でも、次のステップに進みます。
エラー時のデータピル
レシピにエラー処理ステップを追加すると、エラーが発生した場合にWorkatoがエラー関連のデータピルを生成します。 これにより、エラーの種類、レシピステップ、またはエラーの原因となったアプリに応じて、レシピがエラーを異なる方法で処理するように構成できます。
Workatoは、次のエラー時データピルを生成します。
| データピル | 説明 | API名 |
|---|---|---|
| エラータイプ | 発生したエラーのタイプ。 |
|
| エラーメッセージ | エラーを説明するメッセージ。 |
|
| 再試行回数 | Workatoがhandle errorsブロック内のアクションの再実行を試行した回数。 |
|
| エラーUUID | エラーのUniversally Unique Identifier(UUID)。 これは、エラーを識別するために使用される128ビットのラベルです。 このキーは任意であり、キーを指定した場合にのみ値が表示されます。 |
|
| エラーが発生したステップ番号 | エラーが発生したステップ。 |
|
| エラーが発生したアプリ | エラーの原因となったアプリ。 |
|
| エラーが発生したアクション | エラーが発生したアクション。 |
|
| 内部メッセージ | サードパーティサービスからの応答、またはクライアントから直接返された詳細が含まれる可能性がある未処理のエラーメッセージ。 形式および内容は予告なく変更される場合があります。 |
|
内部メッセージは不安定
内部メッセージデータピルは慎重に使用してください。 この値は、次のリスクがあるため、自動化ロジックには信頼できません。- 不安定な形式:構造と内容は予告なく変更される可能性があります。
- ソースから直接取得:外部システムから元のエラーをキャプチャします。
- サニタイズなし:Workatoはメッセージ内容を変更またはクリーンアップしません。
- 透明性重視:サードパーティのエラーメッセージのログ記録と透明性のあるレポートを目的としています。
たとえば、ログメッセージアクションを使用して、エラータイプStep 6、エラーメッセージStep 6、またはエラーが発生したアプリStep 6などのデータピルをジョブログに出力できます。 これにより、エラー追跡とテストをサポートする明確なコンテキストが提供されます。
エラー時データピルを使用してジョブエラーのコンテキストをログに記録
構造化されたエラーフィールド
Workatoは、監視対象のアクションが失敗したときにエラー時ブロックで参照できる構造化されたエラーデータを公開します。 これらのフィールドを条件または後続のステップで使用して、エラー処理ロジックを自動化します。
| フィールド | 説明 |
|---|---|
error_type_id | エラータイプの安定した識別子。 例:err.http.response.client_error.not_found。 |
error_type | エラーの表示名。 例:Not Found。 |
error_id | 特定のエラーインスタンスの一意の識別子。 |
error_message | 発生した内容の概要。 |
http_response | ステータスコード、ヘッダー、本文を含む構造化データ。 |
エラー処理のための条件付きアクション
IF条件を使用すると、さまざまな種類のエラーに対してレシピがどのように対応するかを制御できます。 エラーの種類または原因に基づいて対応するために、エラー時ブロック内またはレシピ内の他の場所に追加できます。 例:
- エラーが発生したアプリがNetSuiteの場合、財務チームに通知し、問題をログに記録します。
- エラーメッセージに
Authentication failedが含まれる場合、ITチームまたはセキュリティチームに通知します。 - 再試行回数が
1を超える場合、サポートチケットを作成してジョブを停止します。
宛先システムにデータを送信する前に必須入力フィールドが空かどうかを確認するなど、条件を使用してエラーを防止することもできます。 フィールドが空白の場合は、ジョブを停止し、問題をログに記録して、無効なデータの処理を回避します。
例:条件チェックによるエラーの防止
IF条件を使用して、さらにアクションを実行する前に入力を検証できます。 これにより、データの不足や無効なデータによって発生する障害を防ぐことができます。
次の例では、Zendeskチケットを更新したりコメントを追加したりする前に、Zendeskチケットに件名が含まれているかどうかを確認する方法を示します。
+ステップを追加をクリックし、IF条件を選択します。
IF条件
チケットの件名Step 1データピルなどのデータピルをデータフィールドにマッピングします。
IF条件を設定
フィールドに値が含まれていることを確認するには、条件フィールドでis present条件を選択します。
チケットを更新ステップをはいパスに追加します。 これにより、件名が存在する場合にのみ更新が実行されます。
入力が不足しているときにレシピを停止するには、いいえパスにジョブを停止ステップを追加します。 これにより、不要なステップを防ぎ、問題を早期に表示できます。 詳細はジョブを停止セクションを参照してください。
ジョブを停止ステップを追加
追加の条件を処理するために、ELSE IF分岐とELSE分岐を使用することもできます。
ジョブを停止
無効なデータまたは重大なエラーの条件が満たされたときにレシピを早期に終了するには、ジョブを停止ステップを使用します。 このアクションは、追加のステップを実行する前にジョブを終了し、ジョブレポートに障害を表示します。
必須フィールドが空の場合やすべての再試行が失敗した場合など、特定の条件が満たされたときにジョブを終了するために、条件分岐内にジョブを停止ステップを追加できます。
ジョブを停止ステップ
障害コンテキストの追加
メッセージを含めたり、データピルを使用したりして、詳細な障害情報を提供できます。 エラー処理ロジックでジョブを停止するときに、エラーの種類、メッセージ、影響を受けるアプリなどの詳細をレポートするには、エラー時データピルを使用します。 例:
データピルを使用して詳細な障害メッセージを表示
例:必須レコードが不足している場合にジョブを停止
次のレシピは、組織の検索後にZendesk組織IDが存在するかどうかを確認します。 IDが見つからない場合、レシピはアラートを送信し、ジョブを停止します。
メールを送信してジョブを終了するためにジョブを停止ステップを使用するレシピ。 レシピの例
各ジョブは、次の2つのパスのいずれかに従います。
- Zendesk組織IDが見つからない場合、レシピはメール通知を送信し、ジョブを停止します。
- Zendesk組織IDが見つかった場合、レシピはZendeskの組織を更新します。
このレシピは、エラーのあるジョブにマークを付けて、レシピ所有者にアラートを送信します。 これにより、レシピ所有者は必要に応じて失敗したジョブを確認して再試行できます。
停止ステップのエラーメッセージの構成。 レシピの例
カスタムエラーアラートの送信
エラーが発生したときにチームへ通知するには、メール by Workato - メールを送信アクションを使用します。 アラートのルーティング方法に応じて、このステップをエラー時ブロック内またはレシピ内の後続の位置に追加できます。
カスタムエラーメールを設定
エラーの種類、メッセージ、アプリ、再試行回数などのコンテキストを追加するには、エラー時データピルを含めます。 これらの詳細により、チームは障害をすばやく理解して対応できます。
失敗したジョブに直接リンクするために、レシピURLProperties、ジョブURLProperties、ジョブ作成日時Propertiesのデータピルも含めることができます。 レシピデータメニューを展開し、プロパティデータツリーを開いてこれらのフィールドにアクセスします。
重要なエラー関連の詳細を表示するためにデータピルをメールメッセージにマッピング
この設定により、各アラートでチームが対応可能なコンテキストを得られます。 メッセージにはジョブのメタデータと特定のエラー詳細が表示されるため、受信者は問題を効率的に調査して解決できます。
エラー通知メール
Workatoは、レシピの障害や重大な問題について、プラットフォームで生成されたエラーメールも送信します。 詳細はエラー通知メールセクションを参照してください。
Last updated: