エラー処理

エラー処理

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Qntrl Circuitでは、サーキットの作成時にエラー処理を設定できます。ステート定義のエラーは、サーキットを保存する前に検出されます。サーキットを保存するとコンパイルチェックが実行され、ステートの設定、ロジックフロー、設計に関するエラーが一覧表示されます。これにより、実行前にサーキットの設計と設定のエラーを確認して修正できます。


FunctionWebhookCircuitなどの機能ステートでのみ実行時エラーが発生するため、エラー処理は機能ステートでのみサポートされています。機能ステートを追加すると、右側のパネルの[設定]の下に[エラー処理]オプションが表示されます。


実行時エラーのシナリオ

実行時エラーは4つのシナリオに分類され、それぞれに[再試行][フォールバック]のエラー処理オプションがあります。
  • タイムアウト時

  • 認証失敗時

  • 実行失敗時

  • カスタムエラー



タイムアウト時

機能ステートの実行が想定時間を超えると、タイムアウトエラーが発生します。このオプションはFunction Webhookで利用できます。コードビューでタイムアウトエラーを処理する場合、項目値'errorType': 'Error.TimeOut' が追加されます。

認証失敗時

指定したコードにアクセスする権限が不足しているためにステートが失敗した場合、そのエラーは認証失敗として処理されます。このオプションはWebhook ステートでのみ利用できます。コードビューでは、名前の値 'errorType': 'Error.AuthorizationFailure'が追加されます。

実行失敗時

処理できない例外によってステートの実行が失敗した場合、実行失敗として処理できます。コードビューでは、名前の値 'errorType': 'Error.ExecutionFailure' が追加されます。


カスタムエラー

再試行とフォールバックのオプションに加えて、エラーコードまたはエラーメッセージを使用して関数内の例外を処理できます。カスタムエラーを設定するには、カスタムエラーのセクションを参照してください。

エラー処理オプション

いずれかのエラー処理オプションを選択すると、すべてのエラー処理オプションで共通の[再試行]項目と[フォールバック]項目を含むポップアップが表示されます。


再試行

失敗したステートを、事前に定義した間隔で指定した回数だけ再試行できます。

再試行は3つの項目で構成されます。

  • [遅延]:失敗後にステートを再試行するまでの時間を秒単位で設定します。

  • [試行回数]再試行の回数を設定します。

  • [ステップ遅延]:設定したステップ遅延の数値を遅延時間に掛けて、試行ごとに遅延時間を増やします。

たとえば、[遅延]を5秒、[試行回数]を3、[ステップ遅延]を2に設定した場合:                         
新しい遅延時間 = 遅延 * ステップ遅延 ^ (試行回数 - 1)
  1. 1回目の試行 --> 5秒 * (2^0) = 5秒
  2. 2回目の試行 --> 5秒 * (2^1) = 10秒
  3. 3回目の試行 --> 5秒 * (2^2) = 20秒
最初の再試行は5秒後、2回目は10秒後、3回目は20秒後に実行されます。

フォールバック

失敗またはエラーが発生した場合、失敗したステートを別のステートにフォールバックして実行を継続できます。フォールバックを設定するには、次の2つの項目を設定します。
  • [次へ]:失敗したステートの入力とエラー出力を渡す先のステート名を設定します。
  • [結果]:エラーの詳細を取得する項目名を設定します。
  • [エラーパス]:失敗時のエラーレスポンスをマッピングし、次のステートへの入力を指定します。
  • [エラーセレクター]:前のステートの入力と統合してフォールバックステートに遷移できるエラーレスポンスを設定します。
[エラーセレクター][エラーパス]の詳細については、こちらのセクションを参照してください


カスタムエラー 

カスタムエラー処理では、[例外の種類][例外値]を設定する必要があります。
  1. [エラー処理]の下にある[+カスタムエラーを追加]オプションをクリックします。ポップアップが表示されます。
  2. [例外]で、エラー処理に使用する[エラーコード/エラーメッセージ]をドロップダウンから選択します。
  3. 次の項目に、ステート出力でエラーコードまたはエラーメッセージを受け取るパス/値を入力します。

Notes初期設定では、カスタムエラー名は、設定されているカスタムエラーの数に応じてエラー1エラー2、またはエラー3に設定されます。デフォルト名を変更するには、編集アイコンをクリックして名前を指定します。

コードビューのカスタムエラーでは、名前の値として'errorType': 'Error.Custom'が追加されます。次のサンプルの状態では、タイムアウト時カスタムエラーをコードビューで処理する例を以下に示します。

{
'Function for stock status': {
'type': 'function',
'next': 'End',
'start': true,
'function_id': 'updatestockstatus_71',
'on_error': [
{
'error_type': 'timeout_error',
'retry': {
'delay': 3,
'attempt': 3,
'step_delay': 1
},
'fallback': {
'next': 'End',
'error_path': '$.error3'
}
},
{
'error_type': 'custom_error',
'error_name': 'Error 1',
'error_code': '101',
'retry': {
'delay': 3,
'attempt': 3,
'step_delay': 1
},
'fallback': {
'next': 'End',
'error_path': '$.Error'
}
}
]
}
}





    • Related Articles

    • タスクエンジン

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 CircuitのTask Engine状態は、閉域環境から他のアプリケーションに接続し、APIにアクセスするために使用します。プライベートネットワークからデータを取得するには、必要な条件に応じて、ローカルマシンのネットワークから対象のAPIにアクセスする必要があります。 前提条件 ...
    • DBエンジン

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 この状態では、プライベートネットワークまたはローカルネットワーク上でホストされているデータベースに接続し、データベースで定義済みのSQLクエリを実行できます。 前提条件 有効なBridgeエージェント。こちらを参照して、Bridgeをインストールして設定してください。 DB ...
    • 回路

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 ...
    • Webhook

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 Webhookにより、Circuitとサードパーティアプリケーション間の連携が促進されます。Webhookでは、ビジネス要件に応じて事前定義された処理が実行されたときに、API呼び出しを行い、通知をトリガーできます。 前提条件 ...
    • 関数

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 関数は、サーバーレスのシンプルなプログラムスクリプトで、さまざまなタスクを処理し、他のツールと連携して強力な自動ワークフローを作成できます。関数はPython、Node.js、Java、Zoho ...