フロー演算子「最初を削除」でコレクション変数の中身をユニークに!
フロー演算子「最初を削除」を使って、コレクション変数の中身をユニークにする方法をご紹介します。
nagamin
2023/12/26 09:14:14
何でもできるはず!と 日々フローと格闘しています。
今回は、割り当て要素のフロー演算子を使って、コレクション変数の重複削除に成功したので共有します。
~課題~
子レコードの所有者は重複もありうるが、一人につき1通のみ
(例)Aさん、Bさん、Cさんに1通ずつメールを送信したい!
単純に子レコードの所有者をコレクションすると、Bさんに2通メールを送信してしまいます。コレクション変数の中身をユニークにできないかな。。。
こちらが、今回サンプルで作成したフローの全体像です。
※1回のメールを送信するアクションでは、受信者が5人以下に限られているため、実際に設定される際はご注意ください。(実装時には、コレクションしたメールアドレスをループして、ループ内でメールを送信しました。)

(下図)①で取得されたレコードコレクション変数を②でループ
メールアドレスをコレクションするための 変数:varEmailを用意します 。
③の設定
前に同じ値があれば一旦削除して、値を追加しています。
・varEmail 「最初を削除」 loopの現在の項目>所有者>メールアドレス
・varEmail 「追加」 loopの現在の項目>所有者>メールアドレス

[コレクション変数の様子]
ユニークなコレクション変数の取得に成功しました♪
(参考)Salesforceヘルプ 割り当て要素のフロー演算子
お役に立てれば幸いです!
※追記
実装時には、上の例でいうと4回目終了時に削除した部分にカンマ(,)が残り、後続の処理でエラーがでてしまったので
要素:コレクション検索条件 を使ってnull以外に絞り込んで設定を行いました。この記事を書くにあたり、検証したところ現在は不要のようです。。。

今回は、割り当て要素のフロー演算子を使って、コレクション変数の重複削除に成功したので共有します。
■実現したいこと
画面フローを使って、親レコードに紐づく 子レコードの所有者宛にメールを送信したい。~課題~
子レコードの所有者は重複もありうるが、一人につき1通のみ
(例)Aさん、Bさん、Cさんに1通ずつメールを送信したい!
■実装内容
Point!割り当て要素のフロー演算子:最初を削除こちらが、今回サンプルで作成したフローの全体像です。
※1回のメールを送信するアクションでは、受信者が5人以下に限られているため、実際に設定される際はご注意ください。(実装時には、コレクションしたメールアドレスをループして、ループ内でメールを送信しました。)
(下図)①で取得されたレコードコレクション変数を②でループ
メールアドレスをコレクションするための 変数:varEmailを用意します 。
前に同じ値があれば一旦削除して、値を追加しています。
・varEmail 「最初を削除」 loopの現在の項目>所有者>メールアドレス
・varEmail 「追加」 loopの現在の項目>所有者>メールアドレス
[コレクション変数の様子]
(参考)Salesforceヘルプ 割り当て要素のフロー演算子
この不可解な名前の演算子は何だろう、、、と思って調べていたところ辿り着きました。「すべて削除」でも対応できそうですね。
最初を削除 [値] の最初のインスタンスが [変数] のコレクションから削除されます。 同じデータ型またはオブジェクト型のコレクション
テキストコレクションの場合のみ:
- 複数選択リスト
- 選択リスト
$Flow.CurrentRecord
お役に立てれば幸いです!
※追記
実装時には、上の例でいうと4回目終了時に削除した部分にカンマ(,)が残り、後続の処理でエラーがでてしまったので
コメント