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