queryAll()
削除されているかどうかに関わらず、指定されたオブジェクトからデータを検索します。
構文
1QueryResult = connection.queryAll(string queryString);使用方法
queryAll を使用して、マージまたは削除によって削除されたレコードを識別します。queryAll ���は、項目 isDeleted への参照のみアクセス権があります。それ以外は query() と同じです。
1SELECT id, isDeleted, masterRecordId FROM Account WHERE masterRecordId='100000000000Abc'アーカイブされているかどうかにかかわらず、すべての ToDo と 行動 のレコード上では、queryAll() でクエリを実行できます。また、アーカイブ済みのオブジェクトのみを探すために、isArchived 項目をで絞り込みを行うことが可能です。query() は、isArchived が true に設定されている場合、すべてのレコードを自動的に除外するため、query() は使用できません。アーカイブ済みのレコードの更新や削除は可能ですが、isArchived 項目を更新することはできません。API を使用して下記に示す条件を満たす活動を挿入すると、アーカイブのバックグラウンドプロセスを次に実行するときに活動がアーカイブされます。
Salesforce では外部データへの変更を追跡しないため、queryAll() コールの動作は、外部オブジェクトに対する query() とまったく同じです。
queryAll の使用についての詳細は、「query()」 を参照してください。
サンプルコード —Java
このサンプルでは、クエリを実行して、取引先が削除されているかどうかに関わらず、すべての取引先を取得します。カスタムバッチサイズを 250 レコードに設定します。最初に queryAll()、次に queryMore() をコールしてレコードのすべてのバッチを取得します。すべての返された取引先の名前および isDeleted 項目の値をコンソールに書き込みます。
1swfobject.registerObject("clippy.codeblock-2", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public void queryAllRecords() {
18 // Setting custom batch size
19 connection.setQueryOptions(250);
20
21 try {
22 String soqlQuery = "SELECT Name, IsDeleted FROM Account";
23 QueryResult qr = connection.queryAll(soqlQuery);
24 boolean done = false;
25 if (qr.getSize() > 0) {
26 System.out.println("Logged-in user can see a total of "
27 + qr.getSize()
28 + " contact records (including deleted records).");
29 while (!done) {
30 SObject[] records = qr.getRecords();
31 for (int i = 0; i < records.length; i++) {
32 Account account = (Account) records[i];
33 boolean isDel = account.getIsDeleted();
34 System.out.println("Account " + (i + 1) + ": "
35 + account.getName() + " isDeleted = "
36 + account.getIsDeleted());
37 }
38 if (qr.isDone()) {
39 done = true;
40 } else {
41 qr = connection.queryMore(qr.getQueryLocator());
42 }
43 }
44 } else {
45 System.out.println("No records found.");
46 }
47 } catch (ConnectionException ce) {
48 ce.printStackTrace();
49 }
50}サンプルコード —C#
このサンプルでは、クエリを実行して、取引先が削除されているかどうかに関わらず、すべての取引先を取得します。カスタムバッチサイズを 250 レコードに設定します。最初に queryAll()、次に queryMore() をコールしてレコードのすべてのバッチを取得します。すべての返された取引先の名前および isDeleted 項目の値をコンソールに書き込みます。
1swfobject.registerObject("clippy.codeblock-3", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public void queryAllRecords()
18{
19 // Setting custom batch size
20 QueryOptions qo = new QueryOptions();
21 qo.batchSize = 250;
22 qo.batchSizeSpecified = true;
23 binding.QueryOptionsValue = qo;
24
25 try
26 {
27 String soqlQuery = "SELECT Name, IsDeleted FROM Account";
28 QueryResult qr = binding.queryAll(soqlQuery);
29 Boolean done = false;
30 if (qr.size > 0)
31 {
32 Console.WriteLine("Logged-in user can see a total of "
33 + qr.size
34 + " contact records (including deleted records).");
35 while (!done)
36 {
37 sObject[] records = qr.records;
38 for (int i = 0; i < records.Length; i++)
39 {
40 Account account = (Account)records[i];
41 Boolean isDel = (Boolean)account.IsDeleted;
42 Console.WriteLine("Account " + (i + 1) + ": "
43 + account.Name + " isDeleted = "
44 + account.IsDeleted);
45 }
46 if (qr.done)
47 {
48 done = true;
49 }
50 else
51 {
52 qr = binding.queryMore(qr.queryLocator);
53 }
54 }
55 }
56 else
57 {
58 Console.WriteLine("No records found.");
59 }
60 }
61 catch (SoapException e)
62 {
63 Console.WriteLine("An unexpected error has occurred: " +
64 e.Message + "\n" + e.StackTrace);
65 }
66}引数
| 名前 | 型 | 説明 |
|---|---|---|
| queryString | string | クエリの対象となるオブジェクト、受け取る項目、およびクエリに特定のオブジェクトを含む任意の条件を指定するクエリ文字列。詳細は、『Salesforce SOQL および SOSL リファレンスガイド』を参照してください。 |