top of page

【応用編】Salesforceフローのカスタムエラー機能で、エラーメッセージを表示させてみよう


目次




   はじめに


前回の記事では、Salesforceフローの要素のひとつである「カスタムエラー」について、概要と基本的な使い方をご紹介しました。

前回の記事では【商談が失注した場合、必ず失注理由の詳細を入力させる】という要件を実装しましたが、数式や関数の理解は必要になるものの、入力規則でも対応が可能でしたね。


しかし、フローのカスタムエラーは、「入力規則よりも複雑なリクエストに対応しうる」というメリットがあります。今回は、入力規則で対応ができないような複雑なシナリオでフローのカスタムエラーを実装していきたいと思います!


■今回のシナリオについて

まず、Salesforceの重複ルールという機能をご存じでしょうか。

これは名前の通り、データの重複を防ぐために設定できるルールのことです。

しかしながら、重複ルールは特定のオブジェクト(取引先・取引先責任者・リード・個人取引先・カスタムオブジェクト)でしか作成することができません。

フローのカスタムエラーであれば、上記以外のオブジェクトでもデータ重複を防ぐことが可能です。

今回は商談オブジェクトに対して、データ重複を防ぐカスタムエラーを実装していきます!


 

フローの要件定義から実装までお任せしたい方には、テラテクのエンジニア派遣がおすすめ!

資料ダウンロードはこちら



   実装手順


1.設定画面から、【フロー】を検索し、フロー設定画面に遷移します。画面右上の【新規フロー】ボタンを選択します。


2.はじめから実装していくため、【最初から開始】をクリックし、種別の選択では【レコードトリガフロー】を選択します。


3.【開始を設定】では下記の通り、設定していきます。

  • オブジェクト:商談

  • トリガーを設定:レコードが作成または更新された

  • エントリ条件:なし

  • フローを最適化:高速項目更新


4.左サイドバーの【開始】の下にある【+】ボタンをクリックし、<要素を追加>から【レコードを取得】をクリックします。

このアクションで、組織に保存されている商談名が一致する商談レコードを取得していきます。

ここでは、下記のように設定をしていきます。


  • 表示ラベル、API参照名は任意で設定

  • このオブジェクトのレコードを取得:商談

  • 商談レコードを絞り込み:すべての条件に一致(AND)

    • 条件①商談ID(Id) 次の文字列と一致しない {!$Record.Id}

    • 条件②商談名(Name) 次の文字列と一致する {!$Record.Name}

  • 商談レコードを並び替え:並び替えなし

  • 保存するレコード数:最初のレコードのみ ※1件でも存在した場合重複と判定したいため

  • レコードデータの保存方法:すべての項目を自動的に保存

💡解説:$Recordってなに…?グローバル変数について

Salesforceにはグローバル変数と呼ばれる、リソースを作成しなくても使用できるSalesforceが提供している変数が存在します。$Recordもそのうちの一つです。

$Recordは、トリガレコード(フローを起動するきっかけになったレコードのこと)の情報を参照することが可能です。

今回{!$Record.Name}を指定しましたが、こちらはトリガ商談レコードの商談名を参照しています。


5.続けて【+】ボタンをクリックし、<要素を追加>から【決定】をクリック。

先ほどのレコード取得要素で重複商談レコードが取得された場合、カスタムエラーを発生させるという分岐を作成します。

入力内容は、下記の画像を参照ください。


※リソースでは、一つ前に作成した<レコードを取得>要素を選択します。

<レコードを取得> 演算子:null 値:False

→こちらを指定することで、レコードを取得要素が空でない=重複レコードが存在するということを示しています。


「結果の順序」でもともと<デフォルトの結果>となっていた部分は、分かりやすく表記を「重複レコードが存在しない」と変更しました。


6.<重複レコードが存在>の分岐に対して、【カスタムエラー】要素を追加していきます。


表示ラベルとAPI参照名は任意で設定し、エラーメッセージを下記のように設定します。


重複レコードが存在します。下記レコードをご確認ください。


https://mogipro5-dev-ed.develop.lightning.force.com/lightning/r/Opportunity/{!get_duplicateOppRec.Id}/view

※「mogipro5-dev-ed.develop.lightning.force.com」部分はSalesforce環境により異なりますので、ご注意ください


上記URLは重複レコードのURLを表しています。商談レコードURLにおいて、{!get_duplicateOppRec.Id}と表記されている部分には、通常商談のレコードIDが設定されます。この部分を、<レコードを取得>要素で取得された重複レコードIDの変数に置き換えることで、動的にURLが変更されます。


これで、フローの作成は完了です!

全体図は以下のようになります。


7.作成できたら、【保存】→【有効化】

※有効化を忘れずに!



 

フローのカスタムエラーが実装できましたら、挙動を画面上で確認してみましょう。


ここでは、あえて商談名が重複するデータを保存してみます。



エラーメッセージについても、想定通り重複レコードのURLが返ってきています。

以上の設定で、商談オブジェクトに対して疑似的に重複ルールを作成することができました!



   さいごに


今回もお疲れ様でした!


フローのカスタムエラーは、特定の条件を満たす場合にユーザーに対して適切なエラーメッセージを表示することで、データの整合性を保つ強力な手段です。

今回の商談オブジェクトに対する重複チェックの実装は、フローの柔軟性を活かした具体的な例です。


他にも、商品が関連している商談レコードを削除した時に「商品が登録されている商談は削除できません」とエラーを発生させるフローなど、様々な場面でフローのカスタムエラーを活用できるかと思います。

皆さまも是非、フローを積極的にご活用いただければ幸いです。


 

フローの要件定義から実装までお任せしたい方には、テラテクのエンジニア派遣がおすすめ!

資料ダウンロードはこちら




bottom of page