目次
はじめに
前回の記事では、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参照名は任意で設定し、エラーメッセージを下記のように設定します。
重複レコードが存在します。下記レコードをご確認ください。 |
※「mogipro5-dev-ed.develop.lightning.force.com」部分はSalesforce環境により異なりますので、ご注意ください
上記URLは重複レコードのURLを表しています。商談レコードURLにおいて、{!get_duplicateOppRec.Id}と表記されている部分には、通常商談のレコードIDが設定されます。この部分を、<レコードを取得>要素で取得された重複レコードIDの変数に置き換えることで、動的にURLが変更されます。
これで、フローの作成は完了です!
全体図は以下のようになります。
7.作成できたら、【保存】→【有効化】
※有効化を忘れずに!
フローのカスタムエラーが実装できましたら、挙動を画面上で確認してみましょう。
ここでは、あえて商談名が重複するデータを保存してみます。
エラーメッセージについても、想定通り重複レコードのURLが返ってきています。
以上の設定で、商談オブジェクトに対して疑似的に重複ルールを作成することができました!
さいごに
今回もお疲れ様でした!
フローのカスタムエラーは、特定の条件を満たす場合にユーザーに対して適切なエラーメッセージを表示することで、データの整合性を保つ強力な手段です。
今回の商談オブジェクトに対する重複チェックの実装は、フローの柔軟性を活かした具体的な例です。
他にも、商品が関連している商談レコードを削除した時に「商品が登録されている商談は削除できません」とエラーを発生させるフローなど、様々な場面でフローのカスタムエラーを活用できるかと思います。
皆さまも是非、フローを積極的にご活用いただければ幸いです。
フローの要件定義から実装までお任せしたい方には、テラテクのエンジニア派遣がおすすめ!
資料ダウンロードはこちら