+
+

ラボ 4: (オプション) エラーハンドリング

概要

ラボ 2では、新規ユーザーを登録するフローを作成しました。 Salesforceでエラーが発生した場合は、Bad Requestの応答を受け取ります。 このエラーメッセージでは、何が問題だったのかよくわかりません。 このラボではエラーハンドリングの方法を学習します。

ステップ 1: Tryスコープの追加

Tryスコープを使用すると、Tryスコープ内で試行したコンポーネントの実行で発生しうるエラーを処理することができます。

  1. パレットで Try コンポーネントを検索してください。

  2. Try コンポーネントを、Salesforce コネクターの後ろに追加します。

  3. Validation のアイコンを Try コンポーネント内部に移動してください。

    module3 lab2 try in flow

ステップ 2: エラーのキャッチ

エラーハンドリングには2つの方法があります。

  • On Error Continue: エラーをキャッチした後、フローの実行を継続

  • On Error Propagate: エラーをキャッチすると、エラー発生を伝播しその後のフローを実行しない

エラーの種類に応じて、最終的にどちらか一方を使用できます。

このケースでは、エラーの伝播 (Propagate) を使用します。

そのためエラー・ハンドリング部分に、 On Error Propagate のハンドラーを追加します。

  1. パレットから、On Error Propagate を検索してください。コンポーネントを、エラー・ハンドリング部分にドラッグ&ドロップします。

    module3 lab2 on error propagate
  2. コンポーネントをクリックしてください。

  3. Type セクションで、右にある虫眼鏡マークをクリックします。

  4. VALIDATION:INVALID_BOOLEAN を選択してください。

    module3 lab2 on error propagate select type

ステップ 3: Salesforceからの応答のログ

このステップでは、Salesforceからの応答をログに出力します。

  1. レスポンスをログ出力するために、Logger コンポーネントを追加してください。

    module3 lab2 add logger
  2. Logger コンポーネントに `output application/json --- payload`と設定します。

    module3 lab2 add logger conf

    f(x) ボタンを押すと、フィールド内に #[] が追加されます。 これはSalesforceのレスポンスをログ出力するために dataweave 表現を使用することを意味しています。

ステップ 4: 新規エラーの発生

レスポンスをログ出力した後、新しいエラーを発生させます。

  1. パレットで Raise Error コンポーネントを検索し、Loggerの後に挿入してください。

    module3 lab2 add raise error
  2. 以下の値をコンポーネントに設定します:

    • Type: APP:CONFLICT

    • Description: #[error.description]

      最後のステップでは、APP:CONFLICT という新規エラーを発生させ、Salesforceのエラーメッセージを使用して詳細情報をユーザーに戻します。

 ステップ 5: 新規エラーのハンドリング

この例外に対するレスポンスを設定しましょう。

  1. APIKit のエラーハンドリング部分を表示します。一番下に、On Error Propagate コンポーネントを追加してください。

    module3 lab2 on error propagate apikit
  2. コンポーネントをクリックして、 Type の値に `APP:CONFLICT`と入力します。

    module3 lab2 on error configuration
  3. On Error Propagateの中にTransformコンポーネントを追加してください。

    module3 lab2 app conflict transform
  4. 以下のスクリプトを追加します。

    %dw 2.0
    output application/json
    ---
    {message: error.description}
    module3 lab2 error mapping transformation

    Raise Errorコンポーネントで設定した詳細メッセージをマッピングしています。完全なエラーオブジェクトを確認したい場合は、Transformの前にLoggerを追加できます。

    HTTPステータスコードも設定する必要があります。そのために、Transformコンポーネント内部に変数を追加します。

  5. Transformコンポーネント内の module3 lab2 transform plus button をクリックしてください。

    module3 lab2 error mapping transformation plus

    新しいウィンドウが表示されます。

  6. コンボボックスから Variable を選択し、変数名に httpStatus と入力してください。

    module3 lab2 httpStatus
  7. OK をクリックします。

  8. スクリプトを削除し、 409 と追加してください。

    module3 lab2 httpStatus 409

    全ての変更を保存してからプロジェクトを再実行し、同じユーザーを2回作成してみてください。409 応答を受け取るはずです。

まとめ

このラボでは、以下を実施しました。

  • Try スコープの追加

  • エラーのキャッチ

  • Salesforceからのレスポンスのログ出力

  • 新規エラーの発生

  • 新規エラーのハンドリング

さらに学習するには:

  • Try Scope についての詳細は、ドキュメントを確認して下さい。

  • Raise Error Component についての詳細は、ドキュメントを確認して下さい。

  • Error Handling についての詳細は、ドキュメントを確認して下さい。

おめでとうございます! ラボ4が完了しました。

モジュール 4 に進んでください。

Submit your feedback!
Share your thoughts to help us build the best workshop experience for you!
Take our latest survey!