こんにちは、DX攻略部のヘナトンです。
Salesforceフローでコレクション変数を使用していますか?
コレクション変数の中身の数をカウントしたいなぁと思っていませんか?
数をカウントするためだけにループ要素を使用していませんか?
コレクション変数としてリスト化された変数を使用することは多いと思います。
リストの中に要素がいくつあるのかを確認したいシーンに便利な要素数を取得する方法を事例を用いて解説していきます。
そもそもフローとは?という方はこちらの記事で概要解説していますのでご覧ください。
こんにちは、DX攻略部のヘナトンです。 Salesforceの自動化ツールであるフローは、ビジネスプロセスを自動化するための強力なツールです。 Salesforceの自動化ツールとしてワークフロールールやプロセスビルダーもありま[…]
商談数を確認!(目標確認)
今回は事例として取引先に紐づいた商談数を確認する画面フローを作成しますが、まずは目標確認します。
取引先レコード詳細ページに配置された画面フローコンポーネントに「AAA株式会社の商談数は3です。」と表示されていますね。
AAA株式会社と行われた商談の件数が「3」と取得に成功しています。
- 取引先情報の取得
- 取得した取引先に紐づいた商談レコードをリストで取得
- 取得した商談の数をカウントし数値型変数に格納
- 画面に数値型変数の表示
この1〜4の処理がそれぞれの取引先レコード詳細ページが開かれるたびに行われています。
商談数を確認!(設定方法)
取引先に紐づいた商談数を確認する画面フローの設定方法を解説します。
*当記事の本題となる要素数を取得する部分だけ詳しく解説いたします。
フロー前半で取得した商談レコードコレクション変数の要素数を格納する変数OppsNumを作成します。
データ型が「数値」であることと、複数の値を許可にチェックが入っていないことに注意してください。
割り当て要素を作成します。
左側に先ほど作成した数値型の変数を選択します。
演算子に「次の数と一致する」を選択します。
右側に要素数を取得したいコレクション変数を選択します。
これだけで数値型変数OppsNumにコレクション変数getOppsの要素数を格納することができました。
ちなみにApexで表現するとこのような感じになります。
List<Opportunity> getOpps = [SELECT Id FROM Opportunity WHERE AccountId =: input_record.id];
Integer OppsNum = getOpps.size();
/* OppsNumを使用した処理... */
つまりListクラス等のsizeメソッドをフローで実現できるのです。
簡単ですね。
あとはOppsNumを使用したい箇所に配置するだけです。
ちなみに今回のフローの全体像は以下のようになります。
まとめ
コレクション変数の要素数を取得する方法の解説は以上となります。
割り当て1行でカウントできましたね。
今回は非常にシンプルな事例を紹介しましたが、コレクション変数をカウントする手法は様々なフローで活用できると思います。
ぜひ参考になればと思います。
このようにSalesforceフローはどんどん機能が強化されています。
Apexの方でしか開発できないとすぐ判断せず、フローで開発することも検討してみてはいかがでしょうか。
最後までお読みいただきありがとうございました。