Fork me on GitHub

SalesforceClient Sample

SObject

QuerySample.java

SObjectはSalesforceのオブジェクト1レコードに対応するクラスです。

基本的な使い方

SObjectのインスタンスはSalesforceClient#newObjectにオブジェクト名を指定することで生成されます。

インスタンスに対してはget/setメソッドで名前を指定して自由に値を取得/設定できます。getterに関してはgetString、getInt、getDateなどパース&キャストを同時に行うユーティリティメソッドもあります。

SalesforceClient client;
SObject obj = client.newObject("Account");
obj.set("Name", "hoge");

Object o = obj.get("Name");
String s = obj.getString("Name");

Salesforceのフィールド名は大文字小文字を区別しませんが、SObjectのgetter/setterは大文字小文字を区別します。

参照関係と親子関係

クエリで参照関係や親子関係を含めてSELECTした場合はそれらのフィールドはSObjectまたはQueryResultとして取得できます。

SObject account;//取引先
QueryResult contacts = account.getQueryResult("Contacts");
if (contacts != null) {
	for (SObject c : contacts.getRecords()) {
		System.out.println("Contact: " + c.getString("Name"));
	}
}
SObject createdBy = account.getObject("CreatedBy");
if (createdBy != null) {
	System.out.println("CreatedBy: " + createdBy.getString("Name"));
}

クエリで取得していないフィールドをgetしようとしてもnullになります。

サブクラスの作成

Account.java

作成したサブクラスをMetaData#registerClassメソッドで登録しておけばSalesforceClient#newObjectでその名前で作成されるオブジェクトはそのクラスになります。

クエリ実行時には第2引数(またはQueryRequestのReturnClassプロパティ)にClassを設定することでクエリの結果セットのクラスはそのクラスになます。

OAuthの説明ページで実際にOAuthでログインして任意の組織のオブジェクトのサブクラスを生成することができます。