目次
はじめに
こんにちは。
今回は、レコードトリガーフローのエントリ条件を特定の項目の新規入力・更新時とする方法についてご紹介します。
具体的な方法として、フローのエントリ条件の設定において数式を使用し、数式内でISNEW関数や$Record__Prior グローバル変数を利用することで可能となります。
では、設定方法を以下でご紹介していきます。
レコードトリガーフローのエントリ条件を特定の項目の新規入力・更新時とする
1. 事前準備
設定方法をご紹介していくにあたって、以下のような要件のフローの作成が求められているものとします。
・不動産事業を営む会社で、カスタムオブジェクト「物件」を運用している
要件①:
「物件」の項目「基本賃料支払日」の値が項目「次回賃料支払日」の値へ転記されるようにしたい
要件②:
「次回賃料支払日」は個別に更新される場合もあるので、「基本賃料支払日」の新規入力・更新があった場合のみ転記を行いたい
* 項目のAPI参照名は以下の通りです。
「基本賃料支払日」:BasicRentPaymentDate__c
「次回賃料支払日」:NextRentPaymentDate__c
要件①を満たすフローは以下のようになります。
ただ、この設定では要件②を満たすことはできません。レコードに何らかの更新が行われるたびにフローが起動してしまう状態であり、「基本賃料支払日」以外の項目の更新を行った場合にも「次回賃料支払日」の値が更新されてしまいます。
ですので、何らかの条件を設定して要件②も満たすフローとする必要があります。その方法であるエントリ条件について、次節でご紹介します。
2. エントリ条件を設定する
1.の要件②「「基本賃料支払日」の新規入力・更新があった場合のみ転記を行いたい」という事項をエントリ条件としてフローに設定します。
エントリ条件の設定は画像①の赤枠内で行います。画像②のように、赤枠で囲んだ[条件の要件]にて[数式の評価がTrueになる]を選択します。
すると、数式エディタが表示されるので、以下の数式を挿入します。
ISNEW()
||
{!$Record__Prior.BasicRentPaymentDate__c} <> {!$Record.BasicRentPaymentDate__c}
*数式の解説ISNEW()
⇨ 新規レコードであるかを確認し、新規である場合はTrue、新規でない場合はFalseを返します。$Record__Prior.項目名
⇨ フロー実行前の項目の値$Record.項目名
⇨ フロー実行時の項目の値||
⇨ 「または」を表す演算子<>
⇨ 「不等号」を表す演算子
上記より、数式は以下のように言語化できます。
・レコードが新規作成された場合、または BasicRentPaymentDate__c
の値が更新された場合にTrueを返します。(フローが起動)
・これらのどちらの条件も満たされない場合には False を返します。(フローが起動しない)
挿入が終わったら[構文の確認]をクリック、[有効]と表示されることを確認します。
これでエントリ条件の設定は完了したので、画面右上から[保存]を押し、[有効化]でフローを有効化します。
3. エントリ条件の検証を行う
最後に、設定したエントリ条件によって、フローが要件通りに機能しているか検証を行います。
2. の数式の解説で整理したように、以下の3パターンについて確認します。
① レコードが新規作成された場合にフローが起動すること
② レコードの「基本賃料支払日」の値が更新された場合にフローが起動すること
③ 1と2に合致しないレコードの更新があった場合にはフローが起動しないこと
① レコードが新規作成された場合
レコード作成時にフローが起動し、保存後にレコードを見ると画像①のように「次回賃料支払日」の値に「基本賃料支払日」の値が転記されています。
② レコードの「基本賃料支払日」の値が更新された場合
①のレコードを用いて、引き続き検証します。画像②のように「基本賃料支払日」の日付を「2023/12/6」に変更し保存します。
画像③が保存後のレコードとなり、「次回賃料支払日」の日付が「2023/12/6」となっていることからこの場合もフローが起動しています。
③ ①と②に合致しないレコードの更新があった場合
ここでも②のレコードを用いて、引き続き検証します。画像④のように項目「次回賃料支払日」の値を「2023/12/5」に変更し保存します。
画像⑤が保存後のレコードとなり、「次回賃料支払日」の日付が「2023/12/5」のままであることから、この場合はフローは起動していないことが分かりました。
まとめ
今回は数式を使用して、レコードトリガーフローのエントリ条件を特定の項目の新規入力・更新時とする方法をご紹介しました。エントリ条件を設定することで、要件に該当する特定の条件下でのみフローを起動させることが可能になります。
また、エントリ条件を用いてフローが起動される対象や回数を制限することは、システムリソースの管理の観点からも重要です。不必要なタイミングでフローが起動されると、エラーやSalesforceの挙動の遅れが生じる可能性があるため、エントリ条件を使って起動条件を可能な限り絞り込むことは意識すると良いポイントです。
Salesforceに関するお悩みはありませんか?
今回ご紹介したフローをはじめとするSalesforceの機能活用について、
「調べるのに時間がかかる...」
「作ったはいいがバグが起こらないか心配...」
「Salesforceを活用したいけどそこまで手が回らない...」
などお悩み事はありませんか?
Air合同会社ではSalesforceエンジニアを一人雇うほどの業務は無いが、業務を任せたいというお客様へ月 数時間~40時間で柔軟にご利用頂けるSalesforce活用支援サービスを提供しています。
機能の実装や改善のご提案、社内での内製化支援まで、Salesforce認定資格保持者で構成される当社チームが貴社のSalesforceのお悩みを解決いたします。Salesforceをより活用し課題解決を行なっていくための手段としてぜひご検討ください。
Salesforce業務を他社に外注するイメージがわかない…という方に向け、外注する際のメリット・デメリットやSalesforce開発の流れを以下の記事で解説しています。ぜひご覧ください。
Salesforce運用保守を外注するメリット・デメリットとは?
Salesforceのノーコード・ローコード開発の流れを解説!
また、弊社では「サービスについて簡単に知りたい」「Salesforceの使い方について相談したい」などSalesforceに関する無料相談会も随時実施しています。
貴社の課題解決のお力になれるよう、Salesforce認定資格を持つ担当者が心を込めてサポートいたします。まずはお気軽に下記ボタンよりお問い合わせください。
Salesforceオンライン無料相談会
Air合同会社では
「サービスについて簡単に知りたい」
「Salesforceの使い方について相談したい」
など、Salesforceのお悩みに関する無料相談会を随時実施しております。
\Salesforce認定資格を持つ担当者が対応!/
無料相談のご予約はこちら