retrieve()
指定した ID に基づいて 1 つ以上のレコードを取得します。
構文
1sObject[] result = connection.retrieve(string fieldList, string sObjectType, ID ids[]);使用方法
retrieve() コールを使用すると、オブジェクトから個別のレコードを取得できます。クライアントアプリケーションは、取得する項目、オブジェクト、および取得するレコード ID の配列を渡します。retrieve() コールは、削除されたレコードを返しません。
一般に、取得するレコードの ID が前もってわかっている場合に、retrieve() を使用します。ID がわかっていないか、他の選択条件を指定する場合は、代わりに query() を使用します。
クライアントアプリケーションは、retrieve() を使用してクライアント側で結合を実行できます。たとえば、クライアントアプリケーションは、query() を実行して、一連の Opportunity レコードを取得し、返された商談レコードを反復処理しながら、商談ごとに accountId を取得し、retrieve() をコールしてその accountId の Account 情報を取得できます。
特定のオブジェクトのレコードは、API からは取得できません。retrieve() コールからレコードを取得するには、そのオブジェクトが取得可能に設定されている (retrieveable が true) 必要があります。取得可能かどうかを決定するために、クライアントアプリケーションは、オブジェクトで describeSObjects() コールを呼び出すことができ、retrievable プロパティを確認することができます。
クライアントアプリケーションは、指定したオブジェクト内のレコードを取得し、指定した項目リストの項目を取得するのに十分なアクセス権限でログインする必要があります。詳細は、「データアクセスに影響する要素」を参照してください。
サンプルコード —Java
このサンプルでは、指定の取引先レコードの「ID」、「Name」、「Website」を取得します。取得したレコードの項目をコンソールに書き込みます。
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public void retrieveRecords(String[] ids) {
18 try {
19 SObject[] sObjects = connection.retrieve("ID, Name, Website",
20 "Account", ids);
21 // Verify that some objects were returned.
22 // Even though we began with valid object IDs,
23 // someone else might have deleted them in the meantime.
24 if (sObjects != null) {
25 for (int i = 0; i < sObjects.length; i++) {
26 // Cast the SObject into an Account object
27 Account retrievedAccount = (Account) sObjects[i];
28 if (retrievedAccount != null) {
29 System.out.println("Account ID: " + retrievedAccount.getId());
30 System.out.println("Account Name: " + retrievedAccount.getName());
31 System.out.println("Account Website: "
32 + retrievedAccount.getWebsite());
33 }
34 }
35 }
36 } catch (ConnectionException ce) {
37 ce.printStackTrace();
38 }
39}サンプルコード —C#
このサンプルでは、指定の取引先レコードの「ID」、「Name」、「Website」を取得します。取得したレコードの項目をコンソールに書き込みます。
1swfobject.registerObject("clippy.codeblock-2", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public void retrieveRecords(String[] ids)
18{
19 try
20 {
21 sObject[] sObjects = binding.retrieve("ID, Name, Website",
22 "Account", ids);
23 // Verify that some objects were returned.
24 // Even though we began with valid object IDs,
25 // someone else might have deleted them in the meantime.
26 if (sObjects != null)
27 {
28 for (int i = 0; i < sObjects.Length; i++)
29 {
30 // Cast the SObject into an Account object
31 Account retrievedAccount = (Account)sObjects[i];
32 if (retrievedAccount != null)
33 {
34 Console.WriteLine("Account ID: " + retrievedAccount.Id);
35 Console.WriteLine("Account Name: " + retrievedAccount.Name);
36 Console.WriteLine("Account Website: "
37 + retrievedAccount.Website);
38 }
39 }
40 }
41 }
42 catch (SoapException e)
43 {
44 Console.WriteLine("An unexpected error has occurred: " +
45 e.Message + "\n" + e.StackTrace);
46 }
47}引数
| 名前 | 型 | 説明 |
|---|---|---|
| fieldList | string | カンマで区切られた指定オブジェクトの 1 つ以上のリスト。有効な項目名を指定する必要があり、各指定項目の参照レベルの権限を持っている必要があります。fieldList は、result 内の項目の順序を定義します。 |
| sObjectType | string | データ取得元のオブジェクト。指定された値は、組織で有効なオブジェクトである必要があります。完全なオブジェクトのセットについては、「標準オブジェクト」を参照してください。 |
| ids | ID[] | 取得するオブジェクトの 1 つ以上の ID の配列。retrieve() コールには、最大 2000 個のオブジェクト ID を渡すことができます。ID についての詳細は、「ID データ型」を参照してください。 |
応答
| 名前 | 型 | 説明 |
|---|---|---|
| result | sObject[] | 指定されたオブジェクトの個別レコードを表す、1 つ以上の sObject からなる配列。配列で返される sObject の数は、retrieve() コールに渡す ID の数と同じになります。オブジェクトへのアクセスを持たないか、パスされた ID が無効の場合、配列は、そのオブジェクトに null を返します。ID についての詳細は、「ID データ型」を参照してください。 |