リストビューでチェックを付けたレコードを全てフローに渡す方法

リストビューtoフロー フロー/LWC

※Salesforceで公式にドキュメント化されてない方法(Salseforceのサポート対象外)です。

メジャーアップデートの度に機能追加されているフローですが、

リストビューから複数レコードを一括で操作する方法は需要が高いです。

ドキュメント化された方法ではないですが、リストボタンで一括操作する方法を記載します。

(2023年4月時点追記)
フローで新登場しているDatatableコンポーネントを使うことで、Salseforce公式の方法で似た挙動を実現できるようになりました。(Salseforceのサポート対象)

結論

・フロー内変数で”ids”を作成

・リストボタンでフローを呼び出す

簡潔に書くとこの2点でだけで実現可能です。

ポイントはidsがすべて小文字である点です。

フロー作成

フロー内でテキスト型のコレクションとして入力で使用可能なids変数を作成します。

API 参照名は必ずすべて小文字とします。

フローで作業項目のIDを保存する際にrecordIdというAPI参照名を使用するのと同じですね。

大文字小文字含め決められたAPI参照名通りでないと機能しません。

Help And Training Community

変数を編集

フローに渡された値を確認できるように今回は画面要素を作成しておきます。

フロー要素
画面要素の編集

リストボタン作成

今回のフローは”listview_toFlow”という名前で保存します。

バージョンのプロパティを編集

リストビューで起動したいオブジェクトでカスタムボタンを作成します。

URLは”/flow/” + 先ほど保存したフローのAPI参照名とします。

今回は”/flow/listview_toFlow”です。

カスタムボタン

 

 

Salesforce Classicの検索レイアウトリストビューの編集を選択します。

リストビューボタン

 

 

カスタムボタンで先ほど作成したフロー起動というボタンを”選択したボタン”に移動します。

ボタンの配置

 

 

取引先のリストビューで対象のレコードにチェックを付け、

作成したフロー起動ボタンを押します。

ボタンの起動

リストビューで選択した取引先2レコード分のSalesforceIDがフローに渡せていることが

分かります。

起動後の画面

 

 

リストビューからフローに渡すことが出来るのはSalesforceIDだけのため、

実際に取引先レコード自体を取得するにはこのSalesforceIDを使ってレコード取得する必要があります。

レコード削除であれば今回取得したSalesforceIDのコレクション変数であるidsを使って削除要素を使用するだけで実現可能です。

最後に

ids変数を使った今回の方法はSalesforceで公式にドキュメント化されているものではありません。

既に広く知られた方法のようですが下記のようにideaExchangeで2018年から要望が出ています。

ideaexchange
Support using 'standard' flow parameters
Salesforce widely supports starting Flow interviews from detail page buttons and list buttons, and shows how to set custom parameters using the flow URL. But mo...

 

 

コメント

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