リストビューを一括で削除する方法

リストビューを一括で削除する方法

組織の大掃除のひとつ、大量のリストビューを一括で削除する手順を紹介いたします。
リストビューを一括で削除する方法
56
リストビューを一括で削除する方法
chirosuke
2024/02/15 14:24:52
300件を超えるリストビューを一括で削除できないかという相談から方法を調べてみました。
Ideaにもあり、意外と大量のリストビューの削除で困っている方は多いようでした。

以前の記事「フローの全バージョンのメタデータを取得する」で初めて使ったWorkbenchを今回も使用する方法で紹介いたします。

実際にお客様へサポートするときのような手順を記事にしましたので、長い記事となっています。
リストビューの削除のメイン作業は、以下の2~4になります。
概要だけ確認されたい方は2~4のみお読みください。

目次

1.Sandboxの作成

2.削除マニフェストファイルの作成

3.Zipファイルの作成

4.Workbenchでリストビューを削除する

5.削除後にデータを突合し、検証する

6.本番環境のリストビューを削除する





⚠️注意

・Workbench は無料で使用できますが、Salesforce.comの公式製品ではありません。
・Workbench は、Salesforce.comのサポート対象製品ではありません。
・Workbenchは正式にテストまたは文書化されていません。
・Workbench に関する質問や支援については、Workbench サポート (英語) を参照してください。
・リストビューの共有設定が「自分のみがこのリストビューを表示できる」の場合は、この方法では削除できません。



1.Sandboxの作成

Developer Sandboxを用意します。
Sandboxの作成、更新方法はSalesforceヘルプや、ネット検索で手順が沢山ありますので、こちらでは割愛させていただきます。

<参考>
・Salesforceヘルプ:Sandbox の作成、コピーまたは更新
・Trailhead:Salesforce 組織で Sandbox をセットアップする



2.削除マニフェストファイルの作成

ここでは、「destructiveChanges.xml」という削除マニフェストを作成する手順を紹介します。
参考:Ant 移行ツールガイド:Ant 移行ツールの使用 / 組織からのファイルの削除
完成はこんな感じです。


1.データローダーでListViewレコードをエクスポートします。

①[Export]をクリックし、1で作成したSandboxにログインします。


②[Show all Salesforce objects]にチェックを入れ、検索窓がある場合は“リストビュー”と入力し、「リストビュー(ListView) 」を選択します。


③[Browse...]をクリックし、エクスポート先を選択し、[Next > ]をクリックします。


④[The generated query will appear below. You may edit it before finishing.]の下枠に以下のようなクエリを入力し、[Finish]をクリックします。

Select Id, SobjectType, DeveloperName, Name, LastViewedDate FROM ListView Order by SobjectType

参考として、エクスポート時に「LastViewedDate(リストビューの最終表示日時)」を追加しています。
その他の項目については「Salesforce プラットフォームのオブジェクトリファレンス:リファレンス / 標準オブジェクト / ListView」を参照してください。


2.エクスポートしたデータを加工します。

サンプルではExcelで加工する手順を紹介します。

①エクスポートしたCSVファイルをExcelに読み込みます。


②削除するリストビューに印をつける列を追加し、削除するリストビューに共通の値を入力します。
サンプルでは「○」としました。


③2.2.②の印の列の右隣の列に以下のような数式を追加します。

destructiveChanges.xmlファイルに削除するリストビューを入力するための数式です。

="    <members>"&B2&"."&C2&"</members>"


<数式の解説>


④2.2.②の削除印の値がある行だけフィルターで抽出します。
サンプルでは、この後のエラー説明のため、68行目の共有設定が「自分のみがこのリストビューを表示できる」のリストビュー「チロスケ専用リストビュー」を入れています。


⑤メモ帳に以下のサンプルをコピーし、貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<name>ListView</name>
</types>
</Package>



⑥2.2.⑤の「<types>」と「<name>」の間に、2.2.④で抽出した行の数式の列をコピペします。


⑦任意の場所に、ファイル名「destructiveChanges.xml」で保存します。


⑧Excelファイルを任意の名前で保存します。
※この後の検証でこのファイルを使います。



3.Zipファイルの作成

1. 「package.xml」を作成します。
メモ帳に以下のサンプルをコピーか、Ant 移行ツールガイドからコピーをして貼り付けてください。

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<version>59.0</version>
</Package>



2.任意の場所に、ファイル名「package.xml」で保存します。


3. 「package.xml」と「destructiveChanges.xml」を選択し、Zipファイルにします。
画像はWindowsの場合です。



4.Workbenchでリストビューを削除する

1.Workbenchサイトにアクセスします。


2.「Environment」でProduction(本番)、またはSandboxを選択し、「I agree to terms of service」にチェックを入れて、[Login with Salesforce]ボタンをクリックします。

最初は検証のため、Sandboxを選択してください
※冒頭の注意事項と同様の内容が、英語ですが記載されています。


3.Salesforceにログインします。

※すでにSalesforce組織にログインしているブラウザでWorkbenchを実行している場合は自動的に接続されます。


4.[許可]をクリックします。



5.上部の[migration]をクリックし、[Deploy]をクリックします。



6.[ファイルを選択]をクリックし、3.3で作成したZipファイルを選択します。



7.「Rollback On Error」と「Single Package」にチェックを入れ、[Next]をクリックします。



8. [Deploy]をクリックします。

※件数が多いと時間がかかります。


9.完了すると、ステータスが確認できます。

エラーとなっている場合は、Resultsの「componentFailures」を展開してエラーの内容を確認します。


このエラーは、削除できない共有設定「自分のみがこのリストビューを表示できる」のリストビューが「destructiveChanges.xml」に入っていました。
エラーの場合は、ほかのリストビューも削除は実行されません。


自分のみがこのリストビューを表示できる」のリストビューを取り除いて、再度Deployし、成功した画面です。


Salesforce組織の画面上でも確認してみます。
「取引先」の削除したいリストビューが消えています。


「カスタムのオブジェクト」の削除したいリストビューも消えています。



5.削除後にデータを突合し、検証する

正しく削除が行われたか、最初にエクスポートしたリストビューのデータと、削除後にエクスポートしたデータを突合させ検証します。
ここで紹介する方法は一例です。ほかの方法でも問題ありません。

1.データローダーで「リストビュー(ListView)」のデータをエクスポートします。

手順は、「2.削除マニフェストファイルの作成の1」と同じです。


2.削除前後のリストビューのレコードIDで突合します。

①「2.削除マニフェストファイルの作成の2」のExcelファイルを開き、先ほどエクスポートした5.1の削除後のCSVファイルを読み込みます。


②削除前にエクスポートしたデータを読み込んだシートの列に、以下のような数式を最終行まで入力します。


※太字の箇所は5.2.①で読み込んだシート名です。

=ISERROR(VLOOKUP([@ID],ListView_削除後!A:A,1,0))



③フィルターをかけて、削除印の行と、そうでない行を表示させ、5.②の数式結果が以下のようになっていることを確認します。
・削除印あり→TRUEのみ
・削除印なし→FALSEのみ

ここで、正しくない場合は、基本的には「1.Sandboxの作成」からやり直しになります。



6.本番環境のリストビューを削除する

1.バックアップ用のSandboxを作成します。

手順は、「Sandboxの作成」と同じです。
最悪、誤ってリストビューを削除してしまっても、こちらのSandboxから変更セットでリリースできます。


2. Workbenchで本番環境にログインし、リストビューを削除する。

「4. Workbenchでリストビューを削除する」の手順と同じです。
4.2.の「Environment」でProduction(本番)を選択し、以降は同じ手順です。Zipファイルも同じものを使用します。



おわり

gilde tech(for Salesforce)」に入会しませんか?
登録すると、「gilde tech」に掲載されているSalesforceのノウハウを全部閲覧できるだけでなく、自分が知っている知識を発信し、他の会員と交流することもできます。
またSalesforceの知識習得に役立つイベント情報も得ることができます。
是非ここで得た知識を業務に活かしてください!
56
コメント