この記事の目次
Salesforceのapexの「sobject」

sobjectとは

Account myAcct = new Account();
myAcct.Name = 'The Trout Association';
myAcct.Phone= '180-2859';
myAcct.AccountNumber = '442087';
sobjectの作成・利用方法

sobjectの型の使い方
sobjectでは基本的にはAccount、Contact、Lead、Oppotunityなどの型名が使われます。まずは実際の使い方を見ていきますが、その際型(今回はAccountがメイン)の使い方に注目して下さい。Account acct = new Account();
Account acct = new Account(Name='oil company', Phone='(284)337-2029', NumberOfEmployees=5000);
Account acct = new Account();
acct.Name = 'oil company';
acct.Phone = '(284)337-2029';
acct.NumberOfEmployees = 5000;
上記のコードから分かる事
電話番号や従業員数等の項目を設定する前に、sobject変数を宣言する必要があります。1行目から4行目では、Account型の変数を設定し、Accountのインスタンスであるacctを作成しています。その後であれば、5〜8行目の様に各項目の情報をsobject 変数に設定する事が出来ます。 もう1つ着目すべきポイントとして、演算子としてnewを使っている事です。newはインスタンスを作る際に必要な演算子であり、メモリー領域の確保または初期化する役割があります。 今回の場合はコードが短い上に、1行目から変数Accountの演算子として使用している為、データを初期化させる為に用いました。その他のポイント
カスタムオブジェクトを搭載していて、その名前が”mycustomobject”だった場合、API名には”mycustomobject__c”と言った様に末尾に__cサフィックスを付けるのがルールになっています。 ただし、カスタム項目ではなく「カスタムリレーション」項目の場合は末尾が__rになるので気をつけて下さい。汎用タイプの使い方
使用するデータ型が標準オブジェクトなのかカスタムオブジェクトなのか分からない場合に使いましょう。 汎用タイプとしてsobject変数を宣言した場合でも標準/カスタム問わずレコード内の情報を反映させられます。お客様とカスタムオブジェクトの両方に汎用sobject 変数を反映させるには以下の様なコードを書く必要があります。sObject sobj1 = new Account(Name='Loadway');
sObject sobj2 = new Book__c(Name='Python 1');
特定タイプの使い方
Book__c等のカスタムオブジェクトを使用したい時に特定タイプのsobject 変数を使います。また、ドット表記でも項目上の情報を検索出来る様にしたい時は、汎用タイプから特定タイプのsobject 変数に変更します。実装する場合には、以下の様なコードを作成します。//汎用sobject をアカウントへ投入する
Account acct = (Account)myGenericSObject;
// ドット表記でもアクセス出来る様になった
String name = acct.Name;
String phone = acct.Phone;