Salesforceフローでレコードの一括削除
フローを使ってのレコードの一括削除の仕方について詳しい方法を解説していきたいと思います。
テスト作成したデータを一括で削除したい時などに便利です。
やりたい事
今回やりたい事としては、リストビュー画面で選択したレコードを一括で削除することです。
どのように実現するか?
フローを作り、リストビューボタンを配置するだけの簡単な方法をとりたいと思います。
フロー作成
「自動起動フロー」を選択
レコードIDを受け取るための変数を作成
リストビューで選択されている複数レコードのIDを、フローで受け取るための変数を作ります。
・リソース種別「変数」
・API参照名は必ず「ids」
・データ型「テキスト」
・複数の値を許可にチェック
・入力で使用可能にチェック
レコード取得要素を追加
今回はリードオブジェクトのレコードを一括削除したいので、リードレコードを取得します。
「レコードを絞り込み」条件を追加します。
・項目「Id」
・演算子「次に含まれる」
・値「ids」(上で作成したもの)
・保存するレコード数「すべてのレコード」
上記の条件でレコードを取得します。これによりリストビューで選択されているレコードのみが取得されるようになります。
取得したレコードは、レコードコレクション変数(レコード取得要素のAPI参照名が変数になる。今回の場合「GetAllRecords」変数)へ格納されます。
レコード削除要素の追加
・削除するレコードを検索する方法「レコード変数またはレコードコレクション変数に保存されたIDを使用」
・削除するレコードを選択、取得したレコードが格納されている変数(今回であれば、GetAllRecords変数)を選択。
カスタムボタンの作成
対象オブジェクトにカスタムボタンを作成します。
今回は「一括削除」ボタンとして作成。
・表示種別「リストボタン」
・コンテンツソース「URL」
・下の入力欄にフローURLを入力(フロー詳細のURLの所。下のキャプチャ参照)
カスタムボタンをリストビューレイアウトに追加
オブジェクトマネージャーの、「リストビューボタンレイアウト」に作成したカスタムボタンを追加します。
これでリストビュー画面にボタンが配置されます。
実際に動かしてみると上手くいきました。
選択したレコードがすべて削除されていました。
ちなみにフロー処理完了後、以下のような画面になります。。。
これでは少し不便なので、フローを起動した後に元のリストビュー画面に遷移する処理を追加したいと思います。
元の画面へ自動遷移
作成したカスタムボタンのフローURLの後ろにretURLを追加し遷移先を指定します。
retURLを使うことにより、処理完了後の遷移先を指定できる。
指定の仕方は、フローURLの後ろに「?retURL=url」を追加。
urlの部分は、https://MyDomainName.lightning.force.com/ の後に続くURLの一部。
戻りたい画面のURLをコピペすれば大丈夫です。
これでフロー処理後、元のリストビュー画面に遷移するようになりました。