sObject とは?
sObject とは、Force.com プラットフォームデータベースに保存できるオブジェクトを指します。Apex クラスのインスタンスという意味でのオブジェクトではなく、すでに保持されているか、これから保持されるデータを表します。
これらの永続オブジェクトは、Apex 言語内では最優先に処理されるため、データベースの連携処理をきわめて直観的かつ簡単に行うことができます。
sObject は、永続オブジェクト型に対応する汎用抽象型です。汎用 sObject は、Account オブジェクトや Invoice_Statement__c カスタムオブジェクトなど、特定の sObject 型にキャストできます。
これにより、項目を設定せずに Invoice_Statement__c カスタムオブジェクトに対応する請求書明細が作成され、新しい請求書明細が sObject に割り当てられます。
1sObject s = new Invoice_Statement__c();2 つ目の例では、Description__c 項目と Status__c 項目に初期値が設定された請求書明細が作成され、やはり sObject 型である Invoice_Statement__c 型の変数に割り当てられます。
1Invoice_Statement__c inv = new Invoice_Statement__c(Description__c='Test Invoice', Status__c='Pending');次の例は、sObject 変数を別の sObject 型にキャストする方法を示します。mySObjectVar 変数を Invoice_Statement__c sObject 型にキャストします。
1Invoice_Statement__c inv = (Invoice_Statement__c)mySObjectVar;新しい sObject レコードを正常に挿入するには、その前にすべての必須項目を設定する必要があります。「Apex データ操作言語」では、特にデータ操作言語 (DML) を使用した新しいレコードの挿入方法を説明します。
sObject の項目は、コンストラクタの引数として渡すか、sObject 型の作成後にドット表記を使用して設定できます。次の例は、ドット表記を使用して請求書明細の Description__c 項目に文字列値を設定する方法を示します。
1inv.Description__c = 'Test Invoice';ドット表記を使用して項目値を読み取ることもできます。
1ID id = inv.Id;
2String x = inv.Name;sObject を作成し、項目を設定してから読み取ってみましょう。次のコードを実行します。
1Invoice_Statement__c inv = new Invoice_Statement__c();
2inv.Description__c = 'Large invoice';
3System.debug('Invoice Description: ' + inv.Description__c);上のスニペットでは、「Invoice Description: Large invoice」と出力されます。