sObject 項目へのアクセス
Java の場合と同様に、単純なドット表記を使用して sObject 項目にアクセスしたり、変更したりできます。次に例を示します。
[作成者] または [最終更新日] など、システムによって生成された項目は変更できません。変更しようとすると、Apex ランタイムエンジンはエラーを生成します。また、数式項目値と、コンテキストユーザ参照専用の他の項目値も変更できません。
Account などの特定のオブジェクトではない汎用 sObject 種別の場合、ドット表記を使用して Id 項目のみを取得できます。Salesforce API バージョン 27.0 以降を使用して保存された Apex コードの Id 項目を設定できます)。また、汎用の sObject put メソッドおよび get メソッドも使用できます。「SObject クラス」を参照してください。
この例では、Id 項目にアクセスする方法および汎用 sObject で許可されない操作を示します。
sObject 項目の使用
sObject 項目は、最初に設定することも、しないこともできます (未設定)。未設定の項目は、空白や null とは違います。sObject で DML 操作を実行するとき、設定済みの項目は変更できますが、未設定の項目は変更できません。
Apex メソッドが sObject を取らない場合には、System.isSet() メソッドを使用することで、設定済み項目を特定できます。値を保持するために項目の設定を解除する場合は、最初に sObject インスタンスを作成します。次に、DML 操作に含める項目のみを適用します。
次のコード例は、sObject 項目が設定済みであるか未設定であるかを特定する方法について示しています。
Boolean 型の sObject 項目を含む式は、sObject 項目が true の場合にのみ、true と評価されます。この項目が false または null の場合、式が false と評価されます。このサンプルコードは、Campaign オブジェクトの IsActive 項目が null かどうかを確認する式を示しています。この式は常に false に評価されるため、if ステートメント内のコードが実行されることはありません。