MENU
Abo
某SIer勤務。
ITエンジニアです。
日々の学びをつらつらと書いています。
保有資格:
Salesforce認定アドミニストレーター  
Salesforce認定Platformデベロッパー
Salesforce認定上級Platformデベロッパー
カテゴリー
アーカイブ

【Apex】getDeleted()を使用して削除されたレコードのリストを取得

getDeleted()を使用すると削除されたレコードのリストを取得できるということを知りましたので、使い方をさらっと共有。

目次

getDeleted()の概要

getDeleted()は、getDeletedResultオブジェクトを取得し、このオブジェクトに含まれるDeletedRecordオブジェクトの配列には、削除された各レコードの ID と、削除された日時 (協定世界時 (UTC) タイムゾーン) が入っています。

つまりどういうことかというと、getDeleted()で取得できる情報は以下ということです。

getDeleted()で取得できる情報
  • 削除されたレコードの ID
  • 削除された日時 (協定世界時 (UTC) タイムゾーン)

削除レコードの各項目値がとれるわけではないので、ログと監査が大きな役割ですかね。

あとは、商談チームメンバーなど削除されてもゴミ箱にはいらないデータも取得できるってのはGoodポイント。

getDeleted()の使い方

getDeleted()は次のような構文で使用します。

Database.getDeleted(string sObjectType, dateTime startDate, dateTime EndDate);

startDate は、endDateの値より1分以上過去の日時でなければなりません。また、startDate は、endDate以降の値にすることはできません。

// 検索対象のオブジェクトタイプ
String objectType = 'Opportunity';

// 開始日時と終了日時
Datetime startDate = Datetime.now().addDays(-3);  // 3日前からの削除レコードを対象とする例
Datetime endDate = Datetime.now();                 // 現在までの削除レコードを対象とする例

// 削除されたレコードを取得する
Database.GetDeletedResult deletedRecords = Database.getDeleted(objectType, startDate, endDate);

// 削除されたレコードの処理
if (deletedRecords != null && deletedRecords.getDeletedRecords() != null) {
    for (Database.DeletedRecord record : deletedRecords.getDeletedRecords()) {
        System.debug('Deleted Record Id: ' + record.getId());
        System.debug('Deleted Date: ' + record.getDeletedDate());
    }
}

おまけ

ごみ箱内にある削除レコードの取得にはSOQLのALL ROWSを使いましょ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某SIer勤務。
Salesforceエンジニアです。
日々の学びをつらつらと書いています。
Certified Administrator
Certified Platform DeveloperⅠ
Certified Platform DeveloperⅡ
Certified Sales Cloud Consultant

コメント

コメントする

CAPTCHA


目次