リストビューで選択したレコードを引数にFlowを実行

リストビューで選択したレコードを引数にFlowを実行

概要

本記事では、Salesforceのオブジェクトのレコードを一覧表示する標準機能のリストビューにて選択したレコードを引数にしてFlowを実行する方法を記載します。リストビューで選択したレコードに対してアクションではできないような少し複雑なロジックをFlowで実装したい場合に利用できるかと思います。

実装方法

Flowを呼び出すVisualforceを作成

事前に呼び出したいFlowは事前に作成しておきます。
起点となるリストビューのオブジェクトに対応する標準リストコントーラを定義したVisualforceページを作成します。当該VFページから<flow:interview>タグでフローを呼び出します。finishLocationでは、Flowで完了ボタン押下後の戻り先のURLを指定します。
Accoutオブジェクトのサンプルは、以下となります。

<apex:page standardController="Account" recordSetVar="Accounts"> 
	<flow:interview name="CreateBatchCase" finishLocation="{!URLFOR('/001?')}">
		<apex:param name="AccountList" value="{!Selected}"/>
	</flow:interview>
</apex:page>

カスタムリストボタンを作成

対象のオブジェクトの設定画面で新規ボタンから表示の種類として「リストボタン」-「チェックボックスの表示」を選択します。内容のソースで上記で作成したVisualforceページを選択します。

まとめ

一覧画面で選択したレコードに対してなんらかの処理をしたいという場合のソリューションとして、極力開発する箇所を少なくするための手法として利用できるかと思います。

参考

Visualforce ページへの標準リストコントローラの関連付け
https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_controller_sosc_associate.htm

Visualforce ページへのフローの埋め込み
https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_flows_adding.htm

フローの finishLocation 属性の設定
https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_flows_finishlocation.htm

標準リストコントローラを使用したカスタムリストボタンの追加
https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_controller_sosc_custom_button.htm