リストビューで選択したレコードを一括削除してみる(Winter’23 バージョン)

リストビューで選択したレコードを一括削除してみる(Winter’23 バージョン)

2022/02に紹介した方法では、ループ内でレコード操作を行う方法でしたがWinter’23のリリースからはループを使わずレコード操作ができるようになりました。
リストビューで選択したレコードを一括削除してみる(Winter’23 バージョン)
76
リストビューで選択したレコードを一括削除してみる(Winter’23 バージョン)
chirosuke
2022/10/03 09:30:36
リストビューから複数選択したレコードIDをノーコードでフローに渡す方法として、「リストビューで選択したレコードを一括削除してみる」を紹介しましたが、この記事の公開時にはループ外でレコード操作する方法がわかりませんでした。
こちらの記事「Winter’23 リリースノートの日本語版が公開されました!」で紹介されている、フローの新しい演算子を使用することで、ループを使用しなくても処理が可能になりましたので、今回はそちらの設定方法をご紹介いたします。

※本番環境へのリリースは10/16のWinter ’23バージョンアップまでお待ちくださいませ。



1.フローの設定

今回紹介するフローではループを使用しないので、リストビューで選択可能な上限の200件を選択しても、エラーなく処理が可能になります。

1.[設定] から、[クイック検索] で「フロー」を検索し、[フロー]をクリックし[新規フロー]ボタンをクリックします。


2.「画面フロー」を選択、[作成]ボタンをクリックします。Flow Builderが開いたら、左上のアイコン「ツールボックスを切り替え」をクリックします。



3.マネージャの[新規リソース]をクリックして以下の変数を作成します。
①選択したレコードIDを受け取るテキストコレクション変数
リソース種別:変数
API参照名ids(※大文字と小文字が区別されるため、この表記のままで入力してください)
データ型:テキスト
複数の値を許可 (コレクション):チェックあり
フロー外部での可用性:入力で使用可能にチェック


②受け取ったレコード件数を格納する変数
リソース種別:変数
API参照名:命名は自由です
データ型:数値
小数点の位置:0



4.[開始]の下の⊕から[割り当て]を追加し以下のとおり設定します。

変数

演算子

Count(3.②で作成した変数)

次の数と一致する

ids(3.①で作成した変数)




5.[割り当て]の下の⊕から[決定]を追加し以下のように設定します。
表示ラベル:0件
結果を実行する条件の要件:すべての条件に一致 (AND)

リソース

演算子

Count(3.②で作成した変数)

次の文字列と一致する

0




6.[決定]要素のコネクタの「0件」の下の⊕から[画面]を追加し以下のように設定します。
コンポーネントから[表示テキスト]をクリックし、選択件数0件のユーザ宛てのメッセージを入力します。
サンプルではレコードの選択件数が0件はフローを終了させますので、[カスタム表示ラベルを使用]で完了ボタンの表示ラベルを「終了」にします。(フッターの設定は任意です)


7.[決定]要素のコネクタの「デフォルトの結果」の下の⊕から[画面]を追加し以下のように設定します。
コンポーネントから[表示テキスト]をクリックし、選択件数1件以上のユーザ宛てのメッセージを入力します。サンプルでは選択したレコード件数の確認メッセージとキャンセルする場合のメッセージを表示させます。
[表示テキスト]にリソースから3.②の変数を挿入してメッセージを入力します。


8.7.で設定した[画面]の下の⊕から[レコードを削除]を追加し以下のように設定します。
削除するレコードを検索する方法 :条件を指定
オブジェクト:商談(削除するレコードのオブジェクト)
レコードを絞り込み:[条件の要件] すべての条件に一致(AND)

項目

演算子

Id

次に含まれる

ids (3.①で作成したコレクション変数)




9.[レコードを削除]の下の⊕から[画面]を追加し、削除完了メッセージ用の画面を以下のとおり設定します。
コンポーネントから[表示テキスト]をクリックし、削除が完了したメッセージを入力します。サンプルでは削除したレコード件数のメッセージを表示させ、[一時停止]と[前へ]ボタンを非表示にします。


10.最後にフローを[保存]し、 [有効化]にします。




2.カスタムボタンの作成、配置

こちらは前回の記事と同じ内容です。

1.削除するレコードのオブジェクトマネージャから「ボタン、リンク、およびアクション」にアクセスし、[新規ボタンまたはリンク]をクリックします。


2.[表示ラベル][名前]を入力し、以下のように設定します。
・表示の種類:リストボタン
・チェックボックスの表示 (複数レコード選択用):チェックあり
・動作:現在のウィンドウにサイドバーおよびヘッダーなしで表示
・内容のソース:URL
・数式入力欄:/flow/Record_Delete_OPP?retURL=006/o


<数式入力欄の解説>

フローの API 参照名:フローの「プロパティ」や、「詳細とバージョンの表示」から確認することができます。

戻り値:設定しないとフロー完了ボタンを押した後も初期画面に戻りエンドレスになり、削除実行された場合はエラーとなりますので何かしらの設定が必要です。
今回のサンプルでは商談のホーム画面に戻るようにしています(006は商談のオブジェクトPrefix)
他のオブジェクトのオブジェクトPrefixを確認したい場合はレコード画面を開いてアドレスバーからレコードIDの先頭の3桁を確認してください。

その他のフローの完了時のカスタマイズについてはヘルプを参照してください。


3.削除するレコードのオブジェクトマネージャから「リストビューボタンレイアウト」にアクセスし、[リストビュー]の🔽から[編集]をクリックします。


4.カスタムボタンの[利用可能なボタン]から2.で作成したボタンを移動させ[保存]をクリックします。





【結果確認】

選択件数を0件にして配置したボタンをクリックすると、ちゃんと設定したメッセージが表示され、[終了]ボタンを押すと商談のホーム画面に戻りました。



次に上限の200件を選択して一括削除ボタンをクリックすると、こちらもちゃんと設定したメッセージが表示されました。[次へ]ボタンをクリックして進みます。


設定したとおりの削除完了のメッセージが表示されました。完了をクリックすると商談のホーム画面に戻りました。

ごみ箱にも削除した200件の商談レコードがちゃんとあり削除が実行されました。
(検証のため事前にごみ箱は空にしておきました)




最後に

こちらは前回の記事でもお伝えしてますが、リストビューにフロー起動ボタンを配置しているため、表示されるユーザの制御ができません。もし、実行できるユーザを制御したい場合は、フローの開始直後に実行ユーザのプロファイルやユーザ情報等で分岐させる方法で制御してください。
gilde tech(for Salesforce)」に入会しませんか?
登録すると、「gilde tech」に掲載されているSalesforceのノウハウを全部閲覧できるだけでなく、自分が知っている知識を発信し、他の会員と交流することもできます。
またSalesforceの知識習得に役立つイベント情報も得ることができます。
是非ここで得た知識を業務に活かしてください!
76
コメント