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

公開日: 最終更新日:

20241204_001.png

この記事でわかること

  • Salesforceフローにおけるカスタムエラー機能の概要
  • カスタムエラー機能を利用してエラーメッセージを表示させる実装手順
  • 応用的なフロー構築を通じた実践的なSalesforce設定ノウハウ

目次

はじめに

前回の記事では、Salesforceフローの要素のひとつである「カスタムエラー」について、概要と基本的な使い方をご紹介しました。
前回の記事では【商談が失注した場合、必ず失注理由の詳細を入力させる】という要件を実装しましたが、数式や関数の理解は必要になるものの、入力規則でも対応が可能でしたね。
 
しかし、フローのカスタムエラーは、「入力規則よりも複雑なリクエストに対応しうる」というメリットがあります。今回は、入力規則で対応ができないような複雑なシナリオでフローのカスタムエラーを実装していきたいと思います!
 
■今回のシナリオについて
まず、Salesforceの重複ルールという機能をご存じでしょうか。
これは名前の通り、データの重複を防ぐために設定できるルールのことです。
しかしながら、重複ルールは特定のオブジェクト(取引先・取引先責任者・リード・個人取引先・カスタムオブジェクト)でしか作成することができません。
フローのカスタムエラーであれば、上記以外のオブジェクトでもデータ重複を防ぐことが可能です。
今回は商談オブジェクトに対して、データ重複を防ぐカスタムエラーを実装していきます!
 

フローの要件定義から実装までお任せしたい方には、テラテクのエンジニア派遣がおすすめ!
資料ダウンロードはこちら
→https://www.terrasky-tech.co.jp/document/about
 

 

実装手順

1.設定画面から、【フロー】を検索し、フロー設定画面に遷移します。画面右上の【新規フロー】ボタンを選択します。
 
2.はじめから実装していくため、【最初から開始】をクリックし、種別の選択では【レコードトリガフロー】を選択します。
 
3.【開始を設定】では下記の通り、設定していきます。
・オブジェクト:商談
・トリガーを設定:レコードが作成または更新された
・エントリ条件:なし
・フローを最適化:高速項目更新

20241204_002.png

4.左サイドバーの【開始】の下にある【+】ボタンをクリックし、<要素を追加>から【レコードを取得】をクリックします。
このアクションで、組織に保存されている商談名が一致する商談レコードを取得していきます。
ここでは、下記のように設定をしていきます。

・表示ラベル、API参照名は任意で設定
・このオブジェクトのレコードを取得:商談
・商談レコードを絞り込み:すべての条件に一致(AND)
  条件①商談ID(Id) 次の文字列と一致しない {!$Record.Id}
  条件②商談名(Name) 次の文字列と一致する {!$Record.Name}
・商談レコードを並び替え:並び替えなし
・保存するレコード数:最初のレコードのみ ※1件でも存在した場合重複と判定したいため
・レコードデータの保存方法:すべての項目を自動的に保存
 

20241204_003.png

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

Salesforceにはグローバル変数と呼ばれる、リソースを作成しなくても使用できるSalesforceが提供している変数が存在します。$Recordもそのうちの一つです。
$Recordは、トリガレコード(フローを起動するきっかけになったレコードのこと)の情報を参照することが可能です。
今回{!$Record.Name}を指定しましたが、こちらはトリガ商談レコードの商談名を参照しています。

 

5.続けて【+】ボタンをクリックし、<要素を追加>から【決定】をクリック。 
先ほどのレコード取得要素で重複商談レコードが取得された場合、カスタムエラーを発生させるという分岐を作成します。 
入力内容は、下記の画像を参照ください。

20241204_004.png

※リソースでは、一つ前に作成した<レコードを取得>要素を選択します。
<レコードを取得> 演算子:null 値:False
→こちらを指定することで、レコードを取得要素が空でない=重複レコードが存在するということを示しています。

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

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

20241204_005.png

表示ラベルと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が変更されます。

 

 

 

20241204_006.png

これで、フローの作成は完了です!
全体図は以下のようになります。

20241204_007.png

7.作成できたら、【保存】→【有効化】
※有効化を忘れずに!

 

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

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

20241204_008.png

エラーメッセージについても、想定通り重複レコードのURLが返ってきています。
以上の設定で、商談オブジェクトに対して疑似的に重複ルールを作成することができました!

 

さいごに

今回もお疲れ様でした!

フローのカスタムエラーは、特定の条件を満たす場合にユーザーに対して適切なエラーメッセージを表示することで、データの整合性を保つ強力な手段です。
今回の商談オブジェクトに対する重複チェックの実装は、フローの柔軟性を活かした具体的な例です。

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

 

著者プロフィール

M.I(Salesforce研修講師)

🏅保持資格
・Salesforce 認定 Sales Cloud コンサルタント
・Salesforce 認定 Service Cloud コンサルタント
・Salesforce 認定 Experience Cloud コンサルタント
・Salesforce 認定 Agentforce スペシャリスト
・Salesforce 認定 Platform デベロッパー  等

約3年間社内のSalesforce研修講師として、管理者から開発者向けまで多岐にわたるトレーニングを担当してきました。
得意とするSales Cloud・Service Cloud分野を中心に、基礎から実践まで網羅した多彩なトレーニングプログラムを作成し、社内に展開してきました。