emptyRecycleBin()
構文
1EmptyRecycleBinResult[] = connection.emptyRecycleBin(ID[] ids);使用方法
ごみ箱では、過去 15 日間に削除したレコードを参照および復元できます。15 日保存された後、レコードは完全に削除されます。組織では、一度に 1 ライセンスあたり最大 5,000 件のレコードをごみ箱に入れることができます。たとえば、組織に 5 つのユーザーライセンスがある場合、25,000 件のレコードをごみ箱に格納できます。組織のごみ箱が上限に達すると、Salesforce によって、ごみ箱に入れられてから 2 時間以上経過しているレコードが古い方から順に自動で削除されます。
大量のレコードをごみ箱に入れ、そのレコードを undelete() で復元する必要がないとわかっている場合に、Salesforce プロセスがレコードを削除する前にごみ箱から削除できます。たとえば、テストで大量のレコードを読み込む場合、または大量の create() コールと delete() コールを続けて行う場合などにこのコールを使用できます。
ルールとガイドライン
ごみ箱を空にする際は、次のルールやガイドラインを考慮する必要があります。
- ログインユーザーは、自身のごみ箱にあるレコード、または、下位のごみ箱にあるレコードの中でクエリ可能なものはすべて削除できます。ログインユーザーが「すべてのデータの編集」権限を持っている場合、組織内のすべてのごみ箱のレコードを照会して削除できます。
- バージョン 10.0 以降で利用できます。
- レコードの最大数は 200 件です。
- カスケード削除できるレコードの ID は含めないようにしてください。エラーが発生します。
- このコールを使用してレコードを削除すると、undelete() で復元することはできません。
- このコールを使用してごみ箱からレコードを削除した後もしばらくは queryAll() を使用してクエリを実行できます。一般的には 24 時間ですが、前後することがあります。
サンプルコード — Java
このサンプルでは、ごみ箱を空にする方法を示します。ごみ箱から削除するレコードの ID を含む配列を受け取ります。emptyRecycleBin() をコールし、ID の配列を渡します。次に、結果を反復処理し、削除されたレコードの ID または失敗したレコードの最初のエラーをコンソールに書き込みます。
1public void emptyRecycleBin(String[] ids) {
2 try {
3 EmptyRecycleBinResult[] emptyRecycleBinResults = connection
4 .emptyRecycleBin(ids);
5 for (int i = 0; i < emptyRecycleBinResults.length; i++) {
6 EmptyRecycleBinResult emptyRecycleBinResult = emptyRecycleBinResults[i];
7 if (emptyRecycleBinResult.isSuccess()) {
8 System.out.println("Recycled ID: "
9 + emptyRecycleBinResult.getId());
10 } else {
11 Error[] errors = emptyRecycleBinResult.getErrors();
12 if (errors.length > 0) {
13 System.out
14 .println("Error code: " + errors[0].getStatusCode());
15 System.out
16 .println("Error message: " + errors[0].getMessage());
17 }
18 }
19 }
20 } catch (ConnectionException ce) {
21 ce.printStackTrace();
22 }
23}サンプルコード — C#
このサンプルでは、ごみ箱を空にする方法を示します。ごみ箱から削除するレコードの ID を含む配列を受け取ります。emptyRecycleBin() をコールし、ID の配列を渡します。次に、結果を反復処理し、削除されたレコードの ID または失敗したレコードの最初のエラーをコンソールに書き込みます。
1public void emptyRecycleBin(String[] ids)
2{
3 try
4 {
5 EmptyRecycleBinResult[] emptyRecycleBinResults =
6 binding.emptyRecycleBin(ids);
7 for (int i = 0; i < emptyRecycleBinResults.Length; i++)
8 {
9 EmptyRecycleBinResult emptyRecycleBinResult = emptyRecycleBinResults[i];
10 if (emptyRecycleBinResult.success)
11 {
12 Console.WriteLine("Recycled ID: "
13 + emptyRecycleBinResult.id);
14 }
15 else
16 {
17 Error[] errors = emptyRecycleBinResult.errors;
18 if (errors.Length > 0)
19 {
20 Console.WriteLine("Error code: " + errors[0].statusCode);
21 Console.WriteLine("Error message: " + errors[0].message);
22 }
23 }
24 }
25 }
26 catch (SoapException e)
27 {
28 Console.WriteLine("An unexpected error has occurred: " +
29 e.Message + "\n" + e.StackTrace);
30 }
31}