コールと Partner WSDL
Partner WSDL ファイルは、Enterprise WSDL ファイルとまったく同一の API コールを定義します。Partner WSDL を使用しているクライアントアプリケーションでは、組織のメタデータの定義に次の API コールを使用します。
| タスク/コール | 説明 |
|---|---|
| describeGlobal() | 組織のデータで利用可能なオブジェクトの一覧を取得します。 |
| describeLayout() | 指定されたオブジェクト種別のページレイアウトに関するメタデータを取得します。 |
| describeSObject() | describeSObject() は describeSObjects() で置き換えられました。 |
| describeSObjects() | 指定されたオブジェクトのメタデータの取得に使用します。まず、組織のすべてのオブジェクトのリスト取得のためにコールし、その後リスト内を反復参照し個別のオブジェクトのメタデータを取得します。 |
| describeTabs() | Salesforce ユーザーインターフェースでは、ページ上部の Lightning プラットフォームアプリケーションメニューに示されている、標準的なアプリケーションへのアクセス権限を持ちます (カスタムアプリケーションへのアクセス権限が付与されていることもあります)。ユーザーインターフェースで標準アプリケーションまたはカスタムアプリケーションを選択し、表示されるアプリケーションをいつでも切り替えることができます。 |
組織のメタデータを参照するために、クライアントアプリケーションは次の処理を実行します。
- describeGlobal() をコールし、利用可能なオブジェクトの一覧を取得。
- 返された DescribeGlobalResult オブジェクトで、sobjects をコールし、DescribeGlobalSObjectResult オブジェクトの配列を取得。
- DescribeGlobalSObjectResult オブジェクトに対して name をコールし、返された sObject ごとの sObject の種別名を取得。
- DescribeGlobalSObjectResult オブジェクトは sObject が作成可能かまたは更新可能かなど sObject に関するいくつかのメタデータを提供する。項目および子リレーションなど、特定の sObject の詳細を取得する必要がある場合は、詳細を取得する必要のある sObject の種別名の配列を describeSObjects() に渡すことによって、describeSObjects() をコールする。
sObject 参照の再利用
sObject 参照は、1 回の操作内では再使用できません。
別の参照を使用してください。たとえば、次のコードスニペットは、2 つの異なる参照を使用し、カスタム項目とイベントを持つ取引先と取引先責任者を作成します。
1SObject account = new com.sforce.soap.partner.sobject.wsc.SObject();
2 account.setType("Account");
3 account.setField("Name","myAccount");
4 account.setField("XID1__c", "1");
5 SObject refAcc1 = new com.sforce.soap.partner.sobject.wsc.SObject();
6 refAcc1.setType("Account");
7 refAcc1.setField("XID1__c", "1");
8 SObject refAcc2 = new com.sforce.soap.partner.sobject.wsc.SObject();
9 refAcc2.setType("Account");
10 refAcc2.setField("XID1__c", "1");
11
12 SObject contact = new com.sforce.soap.partner.sobject.wsc.SObject();
13 contact.setType("Contact");
14 contact.setField("LastName", "LName");
15 contact.setField( "XID2__c", "2");
16 contact.setField( "Account", refAcc1);
17 SObject refCon = new com.sforce.soap.partner.sobject.wsc.SObject();
18 contact.setType("Contact");
19 contact.setField( "XID2__c", "2");
20
21
22 SObject event = new com.sforce.soap.partner.sobject.wsc.SObject();
23 contact.setType("Event");
24 contact.setField("Subject", "myEvent");
25 contact.setField( "ActivityDateTime", Calendar.getInstance());
26 contact.setField("DurationInMinutes", 60);
27 contact.setField("Who", refCon);
28 contact.setField("What", refAcc2);
29
30 client.create(new SObject[] { account, contact, event}); // exception thrown heresObject[] sObjects 形式のパラメーターを取り込むコールは、すべてこの制限の対象となります。