Salesforce活用記事 レコードトリガーフロー

Salesforce: 複数の日付項目の中から最新の値を抽出し別の日付項目へ転記する方法

  1. HOME >
  2. Salesforce活用記事 >
  3. レコードトリガーフロー >

Salesforce: 複数の日付項目の中から最新の値を抽出し別の日付項目へ転記する方法

はじめに

こんにちは。
今回は、複数の日付項目の中から最新の値を抽出し別の日付項目へ転記する方法についてご紹介します。
フロー内で日付項目の値について比較する処理を行うことによって実現可能です。

では設定方法をご紹介していきます。

複数の日付項目の中から最新の値を抽出し別の日付項目へ転記する

1. 事前準備

今回設定方法をご紹介するにあたって、以下の日付項目が「リード」オブジェクトに作成されているものとします。

項目:
「資料①ダウンロード日」(API参照名:Document1_DownloadDate__c)
項目:
「資料②ダウンロード日」(API参照名:Document2_DownloadDate__c)
項目:
「資料③ダウンロード日」(API参照名:Document3_DownloadDate__c)
項目:
「最新アクション日」(API参照名:LatestActionDate__c)

以上の4項目について、「資料①ダウンロード日」〜「資料③ダウンロード日」項目が更新された際に、その中から最新の日付を「最新アクション日」に自動で転記するフローを作成していきます。
なお、作成するフローの全体像は画像①となり、おおよその流れとしては「資料①ダウンロード日」〜「資料③ダウンロード日」項目が更新された際にフローが実行されるよう設定し、フロー内ではそれらの日付項目の値を比較して最新の日付を決定、最後に「最新アクション日」をその日付で更新していくこととなります。

画像①

2. フローを作成する

① レコードトリガーフローの作成を開始する

レコードトリガーフローでフローを作成していきます。[設定] > [フロー] > [新規フロー] を選択し、画像①の画面で[レコードトリガーフロー]を選択し[作成]をクリックします。

画像①

② フローの開始要素を設定する

[作成]をクリックすると、フローの開始要素の設定画面が画像②のように画面右側に表示されるので以下のように設定を行います。

オブジェクト: リード
フローをトリガーする条件: レコードが更新された
条件の要件: 
いずれかの条件に一致(OR) ⇨ これによって、「資料①ダウンロード日」〜「資料③ダウンロード日」項目が更新された際のみフローが起動します。
 [項目]Document1_DownloadDate__c [演算子]変更済み [値]True
 [項目]Document2_DownloadDate__c [演算子]変更済み [値]True
 [項目]Document3_DownloadDate__c [演算子]変更済み [値]True
更新されたレコードでフローを実行するタイミング: レコードを更新し、条件の要件に一致するたび
フローを最適化: アクションと関連レコード
画像②

③ 2つの日付項目を比較する

最初の処理として3つの日付項目のうち2つの日付項目を比較し、どちらがより新しい日付であるか決定します。ここでは「資料①ダウンロード日」と「資料②ダウンロード日」について比較を行い、それぞれの日付の方が新しい場合の処理を設定していきます。この処理には[決定]というフロー要素を使用します。

画像③のように②で設定した[開始]の下の+ボタンを押し、[決定]を選択し設定を行っていきます。

画像③

[決定]を選択すると、画像④の画面が表示されます。初めに任意の[表示ラベル]と[API参照名]を入力します。

画像④

次に「資料①ダウンロード日」の日付がより新しい場合の設定を行います。画像⑤のように[結果]の[新しい結果]タブで以下のように設定を行います。

表示ラベル: 「資料①ダウンロード日」がより新しい日付の場合 (任意)
API参照名: Newer_Document1_DownloadDate (任意)
結果を実行する条件の要件: 
すべての条件に一致(AND) ⇨ トリガーレコードの「資料①ダウンロード日」が「資料①ダウンロード日」より新しい日付の場合、こちらの分岐に進むこととなります。
 [リソース]{!$Record.Document1_DownloadDate__c} [演算子]より大きい [値]{!$Record.Document2_DownloadDate__c}
結果を実行するタイミング: 条件の要件を満たす場合
画像⑤

次に「資料②ダウンロード日」の日付がより新しい場合の設定を行います。画像⑥のように[結果]の[デフォルトの結果]タブで表示ラベルを分かりやすい名前とし、[完了]をクリックします。

画像⑥
A. 「資料①ダウンロード日」がより新しい値である場合

[決定]要素で比較を行い、[結果]の「「資料①ダウンロード日」がより新しい日付の場合」に進んだ場合について行う処理を設定していきます。具体的には「資料①ダウンロード日」の値を変数に割り当てる処理を行なっていきます。変数に最新の日付を割り当てることで、最後に最新の日付で「最新アクション日」を更新することが可能となります。
画像⑦のように[結果]の下の+ボタンを押し、[割り当て]を選択し設定を行っていきます。

画像⑦

[割り当て]を選択すると、画像⑧の画面が表示されます。初めに任意の[表示ラベル]と[API参照名]を入力します。次に画像⑨のように[変数値を設定]の[変数]の入力欄をクリックし、表示される[ + 新規リソース]をクリックし変数を作成します。

画像⑧
画像⑨

クリックすると画像⑩の画面が表示されるので、以下のように入力を行い[完了]をクリックします。

リソース種別: 数式
API参照名: LatestDate (任意)
データ型: 日付
画像⑩

[完了]をクリックすると元の画面に戻り、[変数値を設定]の[変数]に作成した変数が入力されています。[値]へは画像⑪のようにトリガーレコードの「資料①ダウンロード日」の値となる {!$Record.Document1_DownloadDate__c} を入力します。

画像⑪
B. 「資料②ダウンロード日」がより新しい値である場合

[決定]要素で比較を行い、[結果]の「「資料②ダウンロード日」がより新しい日付の場合」に進んだ場合について行う処理を設定していきます。こちらではAとは逆に「資料②ダウンロード日」の値を変数に割り当てる処理を行なっていきます。Aと同様の手順で画像⑫のように設定します。

画像⑫

④ ③で比較した日付項目と3つ目の日付項目を比較する

③で作成した変数が持つ日付と「資料③ダウンロード日」について、③と同様に[決定]を使用して、どちらがより新しい日付であるか決定します。③の同様の手順で[決定]の設定を行っていきます。

初めに任意の[表示ラベル]と[API参照名]を入力し、次に「資料③ダウンロード日」の日付がより新しい場合の設定を行います。画像⑬のように[結果]の[新しい結果]タブで以下のように設定を行います。

表示ラベル: 「資料③ダウンロード日」がより新しい日付の場合 (任意)
API参照名: Newer_Document3_DownloadDate (任意)
結果を実行する条件の要件: 
すべての条件に一致(AND) 
 [リソース]{!$Record.Document3_DownloadDate__c} [演算子]より大きい [値]{!LatestDate}
結果を実行するタイミング: 条件の要件を満たす場合
画像⑬

次に変数が持つ日付がより新しい場合、つまり「資料①ダウンロード日」または「資料②ダウンロード日」の日付がより新しい場合の設定を行います。画像⑭のように[結果]の[デフォルトの結果]タブで表示ラベルを分かりやすい名前とし、[完了]をクリックします。

画像⑭
A. 「資料③ダウンロード日」が最新の値である場合

[決定]要素で比較を行い、[結果]の「「資料③ダウンロード日」がより新しい日付の場合」に進んだ場合について行う処理を設定していきます。変数に「資料③ダウンロード日」の値を割り当てる処理を行います。③のA,Bと同様の手順で画像⑮のように設定します。

画像⑮
B. 「資料①ダウンロード日」または「資料②ダウンロード日」が最新の値である場合

[決定]要素で比較を行い、[結果]の「「資料①ダウンロード日」または「資料②ダウンロード日」の日付がより新しい場合」に進んだ場合、③で変数に割り当てた日付の値が最新の日付となるので、何か処理を行う必要はありません。何も設定を行わず次に進みます。

⑤ 最新の日付を「日付項目④」に転記する

③・④で比較を行った結果、変数には3つの日付項目の内、最新の日付が値として割り当てられました。この値を使ってレコードの「最新アクション日」の値を更新します。④で作成した要素の下にある[ + ]をクリックし、画像⑯のように[レコードの更新]を選択します。その後表示される画像⑰の画面では、以下のように値を入力します。
以上で「資料①ダウンロード日」〜「資料③ダウンロード日」項目が更新された際に、その中から最新の日付を「最新アクション日」に自動で転記するフローの作成は完了です。[保存] をクリックして、[有効化] をクリックします。

表示ラベル: 変数の値で「最新アクション日」の値を更新 (任意)
API参照名: UpdateLatestActionDate_VarLatestDate (任意)
更新するレコードを検索してその値を設定する方法: フローをトリガーした リード レコードを使用
レコード を更新する条件の要件: なし ー 常にレコードを更新
リード の項目値を レコード に設定(項目 ← 値):
LatestActionDate__c ← {!LatestDate}
画像⑯
画像⑰

3. 作成したフローを確認する

最後に以上で作成したフローによって、実際にユーザーが「リード」レコードを編集し「資料①ダウンロード日」〜「資料③ダウンロード日」項目が更新された際に、その中から最新の日付を「最新アクション日」に自動で転記されるのか確認していきます。

確認には画像①の「リード」レコードを使用します。

画像①

① 「資料①ダウンロード日」を最新の日付に更新する

まず、「資料①ダウンロード日」の値を最新の日付になるようレコードを更新していきます。画像②の赤枠内の項目の値を更新すると、画像③の赤枠内のように「最新アクション日」が最新の日付に更新されていることが確認できました。

画像②
画像③

② 「資料②ダウンロード日」を最新の日付に更新する

次に、「資料②ダウンロード日」の値を最新の日付になるようレコードを更新していきます。画像④の赤枠内の項目の値を更新すると、画像⑤の赤枠内のように「最新アクション日」が最新の日付に更新されていることがこちらも確認できました。

画像④
画像⑤

③ 「資料③ダウンロード日」を最新の日付に更新する

次に、「資料③ダウンロード日」の値を最新の日付になるようレコードを更新していきます。画像⑥の赤枠内の項目の値を更新すると、画像⑦の赤枠内のように「最新アクション日」が最新の日付に更新されていることがこの場合でも確認できました。

画像⑥
画像⑦

まとめ

今回は、フローを使用して複数の日付項目の中から最新の値を抽出し別の日付項目へ転記する方法についてご紹介しました。
フローの決定要素や変数を活用することで複数の値について比較を行うことが可能となります。

Salesforceに関するお悩みはありませんか?

今回ご紹介したフローをはじめとするSalesforceの機能活用について、

「調べるのに時間がかかる...」
「作ったはいいがバグが起こらないか心配...」
「Salesforceを活用したいけどそこまで手が回らない...」

などお悩み事はありませんか?

Air合同会社ではSalesforceエンジニアを一人雇うほどの業務は無いが、業務を任せたいというお客様へ月 数時間~40時間で柔軟にご利用頂けるSalesforce活用支援サービスを提供しています。
機能の実装や改善のご提案、社内での内製化支援まで、Salesforce認定資格保持者で構成される当社チームが貴社のSalesforceのお悩みを解決いたします。Salesforceをより活用し課題解決を行なっていくための手段としてぜひご検討ください。

Salesforce業務を他社に外注するイメージがわかない…という方に向け、外注する際のメリット・デメリットやSalesforce開発の流れを以下の記事で解説しています。ぜひご覧ください。
Salesforce運用保守を外注するメリット・デメリットとは?
Salesforceのノーコード・ローコード開発の流れを解説!

また、弊社では「サービスについて簡単に知りたい」「Salesforceの使い方について相談したい」などSalesforceに関する無料相談会も随時実施しています。
貴社の課題解決のお力になれるよう、Salesforce認定資格を持つ担当者が心を込めてサポートいたします。まずはお気軽に下記ボタンよりお問い合わせください。

Salesforceオンライン無料相談会​​

Air合同会社では
「サービスについて簡単に知りたい」
「Salesforceの使い方について相談したい」

など、Salesforceのお悩みに関する無料相談会を随時実施しております。

\Salesforce認定資格を持つ担当者が対応!/

無料相談のご予約はこちら ×
  • この記事を書いた人
アバター画像

Suzuki

Salesforceの認定資格「Salesforce認定アドミニストレーター」を保有しています。 IT業務経験ゼロからSalesforceに関する実務に携わってきた経験をもとに、初心者の目線に立って各種機能の活用方法や設定手順をステップバイステップでわかりやすくご紹介します。

-Salesforce活用記事, レコードトリガーフロー
-,