menu
%}

条件付きの積み上げ集計 ~難題をフローで解決!~

 2022.12.27 support_service_staff

こんにちは!アドミニストレーターのRです。

以前、当ブログ内で契約期間が終了した契約の件数を取引先に表示したいという要望を、ワークフロールールを使用して設定するという内容をご紹介しました。

Salesforceでは、将来的にワークフロールールやプロセスビルダーからフローへの移行を進めていく予定となっています。

参考:「ワークフロールールのフローへの移行について|Salesforce サクセスナビ

そこで今回は、ワークフロールールで行っていた内容をフローのスケジュール済みパスを使用して設定してみたいと思います。

 

契約期間が終了した契約の件数だけを、取引先に表示させたい

 

まずは、以前の記事でもご紹介した要望のおさらいです。
アストロ社では、『取引先』の下に『契約管理』オブジェクトを作って金額や契約期間などを管理しています。 そして、契約管理の合計金額や合計契約数を「積み上げ集計」機能を使って、取引先画面に表示しています。

新たに「契約期間が終わった契約の合計件数を、別途取引先に表示したい」という依頼があったため、『契約終了日が今日より前』という条件で「積み上げ集計項目」を作ろうと考えました。しかし、『今日(TODAY)などの動的な関数を含む数式項目は、積み上げ集計項目の検索条件で使用できない』という制限がありました。どうしましょう……
画像1-Dec-05-2022-03-55-09-9571-AM大丈夫、そのお悩み、フローで解決できます!

 

解決内容

まずは、「契約期間が終わった契約の合計件数を表示」=「契約期間が終わったらチェックをつけ、そのチェックがついているレコードの合計件数を表示」と考えてみます。

そこで、契約期間が終了したら自動的にチェックが付く項目を作り、チェックが入っている契約管理レコードの件数を積み上げる「積み上げ集計項目」の設定をします。

この自動でチェックを付ける処理を、フローで設定してみます。

チェックボックス項目の作成

まずは、『契約管理』にチェックボックス項目を作成します。

「設定」-「オブジェクトマネージャ」-「契約管理」-「項目とリレーション」から、「新規」をクリックします。


②「データ型の選択」画面で「チェックボックス」を選択、「次へ」をクリックします。「詳細を入力」画面が表示されるので、入力します。ここで、「チェックなし」にがついていることを必ず確認してください。

③続いて アクセス権を設定して「保存」します。

 

フローの作成

次に、自動的にチェックを入れる機能をフローで作成します。

「設定」-「ホーム」-「プロセスの自動化」-「フロー」から、「新規フロー」をクリック、
または、設定のホームの「作成」から、「フロー」をクリックします。


②「レコードトリガーフロー」を選択し、「作成」をクリックします。
画像4-1


③「開始を設定」画面で、以下のように設定し、他の設定はそのままで「完了」をクリックします。
[オブジェクトを選択]:『契約管理』 を選択
[トリガを設定] ― [フローをトリガする条件]:「レコードが作成されたまたは更新された」を選択
画像5-Dec-05-2022-09-34-39-3242-AM

[エントリ条件を設定] - [条件の要件]:すべての条件に一致(AND) を選択
[項目]:契約終了日 を選択
[演算子]null を選択
[値]$GlobalConstant.False を選択
[更新されたレコードでフローを実行するタイミング]:条件の要件に一致するようにレコードを更新したときのみ を選択
画像6-3[フローを最適化]:アクションと関連レコード を選択

以上で、契約終了日に値が入ったときにフローを開始するという開始条件の設定が完了しました。

④次は、「+ スケジュール済みパスを追加(省略可能)」をクリックし、スケジュール済みパスを追加します。
画像7-3


⑤「スケジュール済みパスを設定」画面で、表示ラベルとAPI参照名を入力し、以下のように設定し「完了」をクリックします。
[時間取得元]:『契約管理』オブジェクトの「契約終了日」項目 を選択
[オフセット数]1 を入力
[オフセットオプション]:日後 を選択
画像8-3

以上で、「契約終了」=契約終了日を過ぎたらこれ以降の処理を行うようにスケジュールを設定することができました。

次は、チェックボックス項目に自動的にチェックを入れる処理を追加します。


⑥先ほど設定したスケジュール済みパスの下の「+」をクリックし、「レコードを更新」要素を追加します。
画像9-4


⑦「新規のレコードの更新」画面が開くので、「レコードを更新」要素の表示ラベルとAPI参照名を入力します。
画像10-3

以下の通り設定を行い、「完了」をクリックします。
[更新するレコードを検索してその値を設定する方法]:フローをトリガした 契約管理 レコードを使用 を選択
[検索条件を設定] - [ レコードを更新する条件の要件]:なし―常にレコードを更新 を選択
[契約管理 の項目値を レコード に設定] ― [項目]:契約終了フラグ(事前に作成したチェックボックス項目) を選択
[値]$GlobalConstant.True を選択
画像11-2


⑧画面右上の「保存」ボタンをクリックし、フローの表示ラベル名、API参照名を入力します。画像12-3


⑨「有効化」をクリックし、フローの作成は完了です。
「デバッグ」でのテストやSandbox環境でのテストを行ってフローが問題なく動くか確認することをお忘れなく。

 

作成したフローのスケジュール確認

実際に、契約終了日を過ぎたらチェックボックス項目にチェックを入れるスケジュールが設定されるか確認してみましょう。

契約管理を作成し、契約終了日に日付を入れて保存します。
画像13-4


次に、スケジュール設定されたかを確認するため、[設定] - [環境] - [監視] - [時間ベースのワークフロー]に移動します。
「検索」ボタンを押すと、作成したレコードに対して、契約終了日の翌日にスケジュール済みパスがスケジュールされていることが確認できました。
画像14-Dec-05-2022-09-39-40-9296-AM

 

積み上げ集計項目の作成

最後に、チェックが入っている契約管理レコードの件数を積み上げる積み上げ集計項目を設定します。

「設定」-「オブジェクトマネージャ」-「取引先」-「項目とリレーション」から、「新規」をクリックします。
画像15-Dec-05-2022-09-40-10-9453-AM

②項目のデータ型「積み上げ集計」を選択し、「次へ」をクリックします。項目の表示名と項目名を入力し、「次へ」をクリックします。
画像16-3

③積み上げ集計の詳細を入力します。
集計対象オブジェクトは『契約管理』を選び、種別は「件数」を選択します。
ここで、検索条件として「一定の条件を満たすレコードのみを計算に含める」を選択すると検索の条件を入力できます。

フローで自動更新されるように設定した「チェックボックス項目の値が True のレコードのみ集計する」という条件を入力します。
画像17-4

 

設定内容の確認

ページレイアウトを整えると、『取引先』画面に「契約終了となった契約のレコード」の合計件数が表示されるようになりました!画像18-4

 

さいごに

いかがだったでしょうか?意外と短時間で簡単に設定できたのではないでしょうか。
フローを使えるようになると実現できることが増え、とても便利です。苦手意識がある方も、まずは記事に沿って設定してみてください。
慣れてきたらフローでいろいろなことを試して、業務改善につなげていきましょう!

「設定で長時間悩んでしまう」「効果的に利用できているのかわからない」「運用を任せられる人がいない」など、Salesforceをうまく活用できていないと感じることはありませんか?

サークレイス社の運用保守サービスは、日々のSalesforce運用を力強くサポートします。
Salesforce認定アドミニストレーターが、ちょっとしたお問い合わせ対応から運用を丸ごと任せたいというご要望まで、幅広くお応えいたします。お気軽にお問い合わせください。

Salesforce内製化LP画像