non-programmers salesforce 小ネタブログ

Apexやvisualforceなどプログラミングの力を使わずにどこまでやれるか小ネタを投稿します。

リストビューで一括削除するボタンをほぼノンプログラミングで作る【Salesforce】

リストビューで一括更新するボタンの応用編です。

non-prog-sf.hatenablog.com

 

こちらもvisualwork flowで作ってみます。今回は細かい端折るので、詳しいことは前回のものを参考にしてください。また、ケースオブジェクトにて行います。

まずフローの完成イメージです。

f:id:non-prog-sf:20161004175633p:plain

ループは前回と同じです。ループ対象にSオブジェクトコレクション変数、ループ変数にSオブジェクト変数を設定します。

f:id:non-prog-sf:20160928170026p:plain

 

Sオブジェクトコレクション変数は入力/出力種別を入力のみにて設定してください。

f:id:non-prog-sf:20160928170104p:plain

Sオブジェクト変数は非公開で大丈夫です。

f:id:non-prog-sf:20161004163119p:plain

割り当ては変数にSオブジェクトコレクション変数を新規作成したもので設定します。値はSオブジェクト変数です。

f:id:non-prog-sf:20161004180311p:plain

Sオブジェクトコレクション変数は非公開で大丈夫です。

f:id:non-prog-sf:20161004164614p:plain

 

高速削除の設定をします。変数には割り当てで使ったSオブジェクトコレクション変数を当ててください。

f:id:non-prog-sf:20161004180607p:plain

 

フローをつなげます。ループと割り当ては双方向で繋いで、ループの終了を高速削除につなぎます。

f:id:non-prog-sf:20161004175633p:plain

 

次に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ページを選択します。

f:id:non-prog-sf:20161004180921p:plain

 

次で最後です。検索レイアウトからボタンをリストビューに表示させます。検索レイアウトを開いて、リストビューで編集を押します。

f:id:non-prog-sf:20161004172804p:plain

カスタムボタン欄に先ほど作ったものがあるので、それを選択します。以上で完了です。

f:id:non-prog-sf:20161004181021p:plain

半分ぐらい前のコピペでしたね。

 

テストです。チェックボックスにチェックを入れて、一括削除ボタンを押します。

f:id:non-prog-sf:20161004181127p:plain

 

無事削除されました。

f:id:non-prog-sf:20161004181223p:plain