リストビューで一括削除するボタンをほぼノンプログラミングで作る【Salesforce】
リストビューで一括更新するボタンの応用編です。
こちらもvisualwork flowで作ってみます。今回は細かい端折るので、詳しいことは前回のものを参考にしてください。また、ケースオブジェクトにて行います。
まずフローの完成イメージです。
ループは前回と同じです。ループ対象にSオブジェクトコレクション変数、ループ変数にSオブジェクト変数を設定します。
Sオブジェクトコレクション変数は入力/出力種別を入力のみにて設定してください。
Sオブジェクト変数は非公開で大丈夫です。
割り当ては変数にSオブジェクトコレクション変数を新規作成したもので設定します。値はSオブジェクト変数です。
Sオブジェクトコレクション変数は非公開で大丈夫です。
高速削除の設定をします。変数には割り当てで使ったSオブジェクトコレクション変数を当ててください。
フローをつなげます。ループと割り当ては双方向で繋いで、ループの終了を高速削除につなぎます。
次にVisualforceです。
-----------------------------------
<apex:page standardController="Case" recordSetVar="Cases">
<flow:interview name="ListDeleteCase"
finishLocation="{!URLFOR('/500?')}">
<apex:param name="SOCCase1" value="{!Selected}"/>
</flow:interview>
</apex:page>
-----------------------------------
順に説明します。
standardController="Case"
ここの赤字は対象のオブジェクトを設定します。
recordSetVar="Cases"
というrecordSetVarというところがあるのですが、
ここは何か任意の文字列を入れていればいいようです。
<flow:interview name="ListDeleteCase"
finishLocation="{!URLFOR('/500?')}">
紫色のところにフロー名を、水色のところに完了後にランディングさせたいページリンクを入れます。通常、元のリストビューに戻って欲しいので、リストビューのURLを入れると思います。
<apex:param name="SOCCase1" value="{!Selected}"/>
緑色にフローの変数を、茶色のvalueに値を入れます。フロー作成時にSオブジェクトコレクション変数を入力のみに設定しましたが、これには{!Selected}を割り当てます。これはリストビューでチェックされたレコードのIDを持ってきてくれるようです。
次にカスタムボタンの設定です。
該当オブジェクトのボタン、リンク、及びアクションで新規ボタンまたはリンクをクリックします。表示の種類をリストボタンにして、チェックボックスの表示にもチェックを入れます。動作は「現在のウィンドウにサイドバー及びヘッダーなしで表示」を選び、内容のソースはVisualforceページにして、先ほど作ったVisualforceページを選択します。
次で最後です。検索レイアウトからボタンをリストビューに表示させます。検索レイアウトを開いて、リストビューで編集を押します。
カスタムボタン欄に先ほど作ったものがあるので、それを選択します。以上で完了です。
半分ぐらい前のコピペでしたね。
テストです。チェックボックスにチェックを入れて、一括削除ボタンを押します。
無事削除されました。