Winter'25 フローの「変換」で同じ取引先の商談金額の平均を出してみた(シンプルバージョン)
中央値と偏差値をフローで出したいなと思って試しているところです
Admin
2024/09/12 15:32:42
フローの要素「変換」と親しくなりたくて、隙を見てはあれこれいじっております。
ループと完全に置き換えられるものではないですが、部分的に代用可能であり、コレクションの処理が前よりちょっと気軽になる感じです。
コレクションの特定の値を合計したいときに便利なので、今日はその例をご紹介します。
積み上げ集計項目では平均の項目がないため、フローで計算して項目に挿入する。
※積み上げ集計項目×2、数式項目×1で対応可であるが、項目をできるだけ増やさないようにしたい。


作成したフロー
全体図です。

各要素の設定内容を書いていきます。
表示ラベル、API参照名などの項目は省きます。
オブジェクト
商談
トリガーを設定
レコードが作成された
エントリ条件を設定>条件の要件
なし
フローを最適化
アクションと関連レコード
計算に含める商談レコードに条件を付けたい場合は、条件を細かく設定しますが、今回はシンプルに生きます。
このオブジェクトのレコードを取得>オブジェクト
商談
商談レコードを絞り込み>条件の要件
すべての条件に一致(AND)
AccountId(取引先ID)|次の文字列と一致する|$Record >取引先ID>取引先ID
商談レコードを並び替え>並び替え順
並び替えなし
保存するレコード数
すべてのレコード
レコードデータの保存方法
すべての項目を自動的に保存
ソースデータ
②で取得したレコードコレクション変数を選択
対象データ
通貨型のリソースを作成
ソースデータのコレクションと対象データをつなげます。
※商談コレクションの金額と対象データを直接つなげることはできません。一度コレクションと接続します。
接続後、集計のアイコンをクリックして、集計の設定を行います。

ここで商談金額を合計します。
集計の種別
合計
変換する項目
Amount(金額)
④割り当て:レコード件数を割り当て
変数値を設定
件数を格納する単一変数|次の文字列と一致する|②で取得したコレクション変数
変数の内容です↓
------------------------------------------------------------
件数を格納する単一変数
データ型
数値
小数点の位置
0
複数の値を許可(コレクション)
チェックなし
デフォルト値
なし
フロー外部での可用性
両方ともチェックなし
------------------------------------------------------------
平均金額の値は数式を使って計算し、取引先の項目をその値で更新します。
更新するレコードを検索してその値を設定する方法
フローをトリガーした商談レコードに関連するレコードを更新
関連レコードを選択
トリガー Opportunity >取引先 ID
※フローをトリガーした商談レコードが参照する取引先レコードを選択します。
検索条件を設定
なしーすべての関連レコードを更新
取引先の項目値をレコードに設定
AverageAmount__c
(商談の平均金額)←平均を計算する数式
数式の内容です↓
------------------------------------------------------------
平均を計算する数式
データ型
通貨
小数点の位置
2
※お好みで
数式
③の変換要素で出した商談金額合計/④で作成した件数を格納している変数
------------------------------------------------------------
これにてフローは完了です。
商談を新規作成します。
取引先はEdge Communicationsさん。すでにいくつか商談レコードが作成されています。

金額を入力して保存……


取引先レコード詳細画面を確認すると、値が挿入されています。

一応レポートでも計算があっているか確認。
大丈夫そうです。

ループを使わなくていいのなら使わない方向で行きたいので、取引先の積み上げ集計に平均を追加したい場合はなかなかいい手段だと思います。ただし、実装の際は開始条件やレコード取得の条件はしっかり設定してくださいね。
なお、フローで実装する積み上げ集計は、チロスケさんが書いてくださった「フローで積み上げ集計(その1)」「フローで積み上げ集計(その2)」が参考になりますので、こちらをご参照ください。合計、平均、最大、最小をひとつのフローにまとめる方法の概要も書かれていますので、参照関係で積み上げ集計をされたい場合は特に参考になると思います。記事にも書かれていますが、削除の場合は別でフローを作る必要がありますのでご注意ください。
ただ確認したいならこれで事足りるっちゃ足りるかもしれない。

Winter'25のプレリリース組織が取得できますよ!
Winter'25のリリースノート(英語版)が公開されました
Winter'25 フロー 「データの変換」要素でコレクション件数(レコード件数)をカウントする
Winter'25 フローの「メールを送信」アクションでCC、BCCが可能&受信者上限が150に
Winter'25 動的強調表示パネルの登場でついにページ全体を動的に表示できるように
Winter'25 フロー「変換」要素でレコードコレクションからテキストコレクション(ID)に変換
Winter'25 カスタムレポートタイプの編集画面が Lightningらしくなります。
Winter'25 ユーザー選択およびデフォルトの No-Reply アドレスを確認
フローで積み上げ集計(その2)最小/最大
ループと完全に置き換えられるものではないですが、部分的に代用可能であり、コレクションの処理が前よりちょっと気軽になる感じです。
コレクションの特定の値を合計したいときに便利なので、今日はその例をご紹介します。
やりたいこと
その取引先に紐づくすべての商談の商談金額の平均を取引先レコードに表示したい。積み上げ集計項目では平均の項目がないため、フローで計算して項目に挿入する。
※積み上げ集計項目×2、数式項目×1で対応可であるが、項目をできるだけ増やさないようにしたい。
事前準備
取引先オブジェクトに、「商談の平均金額」というカスタム通貨項目を作成しておきます。実は合計、最大、最小も試してます
作成したフロー
全体図です。各要素の設定内容を書いていきます。
表示ラベル、API参照名などの項目は省きます。
①開始
今回は一番シンプルな例なので「レコードが作成された」タイミングでトリガーしていますが、状況に応じ、更新のパターンも考慮する必要がありますので、ご注意ください。商談
トリガーを設定
レコードが作成された
エントリ条件を設定>条件の要件
なし
フローを最適化
アクションと関連レコード
②レコードを取得:商談レコードを取得
計算に含める商談レコードに条件を付けたい場合は、条件を細かく設定しますが、今回はシンプルに生きます。
商談
商談レコードを絞り込み>条件の要件
すべての条件に一致(AND)
AccountId(取引先ID)|次の文字列と一致する|$Record >取引先ID>取引先ID
商談レコードを並び替え>並び替え順
並び替えなし
保存するレコード数
すべてのレコード
レコードデータの保存方法
すべての項目を自動的に保存
③変換:商談金額を合計
②で取得したレコードコレクション変数を選択
対象データ
通貨型のリソースを作成
ソースデータのコレクションと対象データをつなげます。
※商談コレクションの金額と対象データを直接つなげることはできません。一度コレクションと接続します。
接続後、集計のアイコンをクリックして、集計の設定を行います。
ここで商談金額を合計します。
合計
変換する項目
Amount(金額)
④割り当て:レコード件数を割り当て
件数を格納する単一変数|次の文字列と一致する|②で取得したコレクション変数
変数の内容です↓
------------------------------------------------------------
件数を格納する単一変数
数値
小数点の位置
0
複数の値を許可(コレクション)
チェックなし
デフォルト値
なし
フロー外部での可用性
両方ともチェックなし
------------------------------------------------------------
⑤レコードを更新:取引先を更新
平均金額の値は数式を使って計算し、取引先の項目をその値で更新します。
フローをトリガーした商談レコードに関連するレコードを更新
関連レコードを選択
トリガー Opportunity >取引先 ID
※フローをトリガーした商談レコードが参照する取引先レコードを選択します。
検索条件を設定
なしーすべての関連レコードを更新
取引先の項目値をレコードに設定
AverageAmount__c
(商談の平均金額)←平均を計算する数式
数式の内容です↓
------------------------------------------------------------
平均を計算する数式
通貨
小数点の位置
2
※お好みで
数式
③の変換要素で出した商談金額合計/④で作成した件数を格納している変数
------------------------------------------------------------
これにてフローは完了です。
試してみます
商談を新規作成します。
取引先はEdge Communicationsさん。すでにいくつか商談レコードが作成されています。
金額を入力して保存……
取引先レコード詳細画面を確認すると、値が挿入されています。
一応レポートでも計算があっているか確認。
大丈夫そうです。
ひとこと
関連するレコードの集計情報、レポートで確認できるけれども「レコード詳細画面で見たい」というお話は昔から聞きましたし、まぁいろいろな都合で項目の値として持っておきたいときもあるだろうということで今回は積み上げ集計には用意されていない平均をフロー×変換で出してみました。ループを使わなくていいのなら使わない方向で行きたいので、取引先の積み上げ集計に平均を追加したい場合はなかなかいい手段だと思います。ただし、実装の際は開始条件やレコード取得の条件はしっかり設定してくださいね。
なお、フローで実装する積み上げ集計は、チロスケさんが書いてくださった「フローで積み上げ集計(その1)」「フローで積み上げ集計(その2)」が参考になりますので、こちらをご参照ください。合計、平均、最大、最小をひとつのフローにまとめる方法の概要も書かれていますので、参照関係で積み上げ集計をされたい場合は特に参考になると思います。記事にも書かれていますが、削除の場合は別でフローを作る必要がありますのでご注意ください。
おまけ
フローの計算結果確認用にレポートグラフを久しぶりにレコードに配置しました。ただ確認したいならこれで事足りるっちゃ足りるかもしれない。
Winter'25関連の記事
Winter'25のスケジュールが出ました!Winter'25のプレリリース組織が取得できますよ!
Winter'25のリリースノート(英語版)が公開されました
Winter'25 フロー 「データの変換」要素でコレクション件数(レコード件数)をカウントする
Winter'25 フローの「メールを送信」アクションでCC、BCCが可能&受信者上限が150に
Winter'25 動的強調表示パネルの登場でついにページ全体を動的に表示できるように
Winter'25 フロー「変換」要素でレコードコレクションからテキストコレクション(ID)に変換
Winter'25 カスタムレポートタイプの編集画面が Lightningらしくなります。
Winter'25 ユーザー選択およびデフォルトの No-Reply アドレスを確認
フローで積み上げ集計してみたい方へ
フローで積み上げ集計(その1)件数/合計/平均フローで積み上げ集計(その2)最小/最大
コメント