開発コンソールでデータを一括削除するには?
Salesforceでは「開発者コンソール」機能をつかってデータの検索とそれにより抽出した結果に対する項目の更新や削除をおこなうことができます。
これにより必要ではなくなった実績データなどに対して条件を指定してデータの一括削除をおこなうことができます。
今回手順を説明するにあたり
Synergy!LEADの「配信実績オブジェクト」にあるデータに対して、ある「件名」に一致した実績を一括で削除するする例を考えます。
「開発者コンソール」を開くと下記のようなウィンドウがポップアップで表示されます。
「Debug」から「Open Execute Anonymous Windw」を選びます。
「開発者コンソール」の中でさらに新しいウィンドウが表示されます。
表示されたウィンドウに以下のプログラム(コード)を貼り付けてください。
List <SynergyLead__SendResultLead__c> lst = [SELECT Id FROM SynergyLead__SendResultLead__c WHERE Name = '{削除したい配信実績の件名}' LIMIT 100] ; if (lst.size() > 0 ) { delete lst; system.debug('★' + lst.size()+ '件 削除しました★'); } else { system.debug('★該当データなし★'); }
このコードはリード配信実績から件名(Name)が「{削除したい配信実績件名}」を最大100件まで抽出してそれらを一括で削除しています。
※ データの削除をともないます。実施の際は十分に注意してください。
これにより件名に一致するリード配信実績レコードが削除されます。
今回はりつけたコードは「リード配信実績」オブジェクトを削除するものです。
その他のオブジェクトを対象にしたい場合は上記のコードのうち角括弧内([])の内容を差し替えます。
- 取引先責任者配信実績にたいして特定の「件名」のデータを指定する
SELECT Id FROM SynergyLead__SendResultContact__c WHERE Name = '{削除したい配信実績件名}'
- 取引先責任者配信実績にたいして150日よりも前に配信したデータを指定する
SELECT Id FROM SynergyLead__SendResultContact__c WHERE SynergyLead__SendDate__c < N_DAYS_AGO:150
- 独自のオブジェクト配信実績にたいして直近90日の間に配信したデータを指定する
SELECT Id FROM {独自のオブジェクト配信実績のAPI参照名} WHERE SendDate__c >= N_DAYS_AGO:90
- キャンペーンに対して 直近3日間よりも前に更新したデータを指定する
SELECT Id FROM Campaign WHERE LastModifiedDate < N_DAYS_AGO:3
ここで指定している「N_DAYS_AGO:n」(n は任意の数値)は、Salesforceにおける特殊な日付指定のひとつです。
ほかにもいろいろな指定ができます。くわしくは こちらのサイトをご参照ください。
貼り付けたあとに「Excecute」ボタンをクリックします。
プログラムが実行され結果が「ログ」として表示されます。
「DEBUG|★XX件 削除しました★」というログが出ていれば、削除に成功しています。
「ログ」は他の情報も表示されますので、「DEBUG|…」が見つけにくいかもしれません。
その場合は「Debug Only」にチェックをいれてください。「DEBUG|…」のログのみが表示され、結果の確認がわかりやすくなります。
↓
データの削除時はSalesforceのガバナ制限回避するため、100件ずつ処理をおこなっています。
対象データが101件以上ある場合は「DUBUG|★該当データなし★」が表示されるまで何度か繰り返し実行してください。
以上が開発コンソールでデータを一括削除する方法です。
データの削除を行うため十分な注意が必要ですが、うまく利用すると業務を効率的にすすめることができます。
是非参考にしてください。