フロー:コレクション変数に更にフィルターをかけ要素数をカウントする

コレクション変数に更にフィルター フロー/LWC

フロー要素の1つである「コレクション検索条件」の使用例を見ていきます。

すでに取得済みのコレクション変数に対して更にフィルターをかけ、コレクション変数内のレコード数を絞り別コレクション変数に格納することができます。

完成形

今回は下記のようなフローを作成してみます。「コレクション検索条件」要素を使うことで、既存コレクション変数に更にフィルターをかけることが出来ます。

完成形フロー
完成形フロー

コレクション変数内の要素数カウントパターン2つ

パターン① 条件に合致するレコードをコレクション変数として取得し、その要素数をカウントする

私が運営する別ブログで紹介していますが、単純にコレクション変数内の要素数をカウントすることは簡単にできます。

 例:Salesforce環境に登録されている全取引先責任者のうち、取引先Aに紐づく取引先責任者数だけをカウントする

→ただその中でも更に別条件に合致する要素だけをカウントする、ということはできません。

パターン➁ ①で実現できなかった”更に別条件に合致する要素だけをカウント”する

一度ある条件で取得したレコードコレクション変数から更に別条件でフィルターをかけ、その要素数をカウントすることで取得できます。

 例:①で取得した取引先責任者から、更に役職が”課長”となっている取引先責任者数をカウントする

レコードコレクション変数から更にフィルターしその要素数をカウントしてみる

上記のパターン➁でみたように、すでに作成されたコレクション変数Aに更に別フィルターをかけた際の要素数をカウントしてみます。

カウントに使用する取引先と取引先責任者は下記のレコードです。

対象取引先、取引先責任者
対象取引先、取引先責任者

①”ABC企業”に紐づく取引先責任者数をカウント=3つを取得する

まず取引先責任者の作成編集時に、その取引先に紐づく全取引先責任者を取得します。

レコード取得
レコード取得

次に割り当て要素にて取得したコレクション変数の要素数を数値変数”contacts_num”に割り当てます。

"contacts_num"
“contacts_num”
CountNum
CountNum

これで”ABC企業”に紐づく取引先責任者数をカウント=3つを取得できました。

次は更にフィルターをかけ、その結果の要素数をカウントする例として下記を進めてみます。

➁”ABC企業”に紐づく取引先責任者のうち役職が”課長”のレコード数をカウント=2つを取得する

先ほど作成した取引先責任者コレクション変数”getContacts”内で役職が課長のレコードだけを別のコレクション変数”getContacts_titleFilter”に格納します。

今回のメイン、コレクション検索条件を使用します。

コレクション検索条件
コレクション検索条件

そしてこのコレクション変数”getContacts_titleFilter”の要素数をカウントします。

数値変数の”Contacts_num_titleFilter”に数を格納するします。

”Contacts_num_titleFilter
”Contacts_num_titleFilter
CountNum_titleFilter
CountNum_titleFilter

“ABC企業”に紐づく取引先責任者のうち役職が”課長”のレコード数をカウント=2つを取得することができました。

まとめ

今回は下記シンプルな例で確認したため「コレクション検索条件」要素のすごさが伝わり辛かったかもしれません。

・ABC企業に紐づく全取引先責任者数を取得

・上記から役職が課長のレコード数のみを取得

本当はいきなり「ABC企業に紐づく役職が課長」の取引先責任者を一発で取得することは可能です。

ただ、フロー内で新規作成したレコードをコレクション変数に格納して、

そのコレクション変数を更に別条件でフィルターするなど一発で取得できない場合は「コレクション検索条件」は有効な手段です。

コメント

タイトルとURLをコピーしました