SObjectType クラス
Schema.sObjectType オブジェクトは、getReferenceTo メソッドを使用して Field Describe Result から、または getSObjectType メソッドを使用して sObject Describe Result から返されます。
名前空間
使用方法
1Schema.DescribeFieldResult F = Account.Industry.getDescribe();
2List<Schema.sObjectType> P = F.getReferenceTo();sObjectType のメソッド
sObjectType のメソッドは次のとおりです。すべてインスタンスメソッドです。
getDescribe()
この項目の Describe sObject Result を返します。
署名
public Schema.DescribeSObjectResult getDescribe()
戻り値
getDescribe(options)
この項目の Describe sObject Result を返します。パラメータ値は、子リレーションを事前に読み込むかどうかを決定します。
署名
public Schema.DescribeSObjectResult getDescribe(Object options)
パラメータ
- options
- 型: Object
- パラメータ値は、組織スキーマの重要な更新の改善されたキャッシュを有効化すると共に、記述操作の要素の読み込み方法を決定します。
- SObjectDescribeOptions.FULL を使用して、用途メソッドの呼び出し前に、子リレーションを含む記述のすべての要素を一括で読み込みます。この記述は、必ず完全に一貫した結果になります。これは、記述オブジェクトが別の名前空間、API バージョン、その他の Apex コンテキストに渡されて、記述属性の生成時に異なる結果になる可能性がある場合でも同様です。
- 子リレーションの遅延読み込みを行うには、SObjectDescribeOptions.DEFERRED を使用します。これは、メソッドの最初の呼び出し時に一部の子リレーションが読み込まれないことを意味します。
- SObjectDescribeOptions.DEFAULT を使用して、API バージョンに応じて、デフォルトが一括読み込みと遅延読み込みのいずれかになるようにします。
- 次の表は、パラメータ値と重要な更新によって決定される記述操作の種別を示しています。
表 1. SObjectType.getDescribe() の読み込みの種別 パラメータ値 API 43.0 以降 API 44.0 以上 CRUC 対応 Full 一括 一括 一括 Deferred 遅延 遅延 遅延 Default 遅延 一括 遅延
戻り値
newSObject()
このデータ型の新しい sObject を構築します。
署名
public sObject newSObject()
戻り値
型: sObject
例
例については、「動的 sObject の作成例」を参照してください。
newSObject(recordTypeId, loadDefaults)
このデータ型の新しい sObject を構築します。必要に応じて、指定するレコードタイプ ID の sObject や、デフォルトのカスタム項目値を持つ sObject を作成できます。
署名
public sObject newSObject(ID recordTypeId, Boolean loadDefaults)
パラメータ
戻り値
型: sObject
使用方法
- デフォルト値が存在しない必須項目には、新しい sObject を挿入する前に値を指定してください。値が指定されていない場合、挿入でエラーが発生します。たとえば、Account Name 項目や主従関係項目がこれに該当します。
- 選択リストと複数選択リストではレコードタイプごとに特定のデフォルト値を使用できるため、このメソッドは指定されたレコードタイプに対応するデフォルト値を入力します。
- 項目に定義済みのデフォルト値が存在せず、loadDefaults 引数が true の場合、このメソッドは項目値が null の sObject を作成します。
- loadDefaults 引数が false の場合、このメソッドは項目値が null の sObject を作成します。
- このメソッドは、新しい sObject の参照のみのカスタム項目にデフォルト値を入力します。その後、これらの参照のみの項目を含む新しい sObject を挿入できますが、これらの項目は挿入後も編集できません。
- カスタム項目が一意としてマークされていてデフォルト値を指定した場合、複数の新しい sObject を挿入すると項目値が重複するため、実行時例外が発生します。
デフォルト項目値についての詳細は、Salesforce オンラインヘルプの「デフォルト項目値について」を参照してください。
例: デフォルト値での新しい sObject の作成
このサンプルでは、newSObject メソッドを使用して、カスタム項目にデフォルト値 (ある場合) を入力した取引先を作成します。また、指定するレコードタイプで 2 つ目の取引先を作成します。新しい取引先を挿入する前に、両方の取引先に対して、デフォルト値のない必須項目である Name 項目を設定します。
1// Create an account with predefined default values
2Account acct = (Account)Account.sObjectType.newSObject(null, true);
3// Provide a value for Name
4acct.Name = 'Acme';
5// Insert new account
6insert acct;
7
8// This is for record type RT1 of Account
9ID rtId = [SELECT Id FROM RecordType WHERE sObjectType='Account' AND Name='RT1'].Id;
10Account acct2 = (Account)Account.sObjectType.newSObject(rtId, true);
11// Provide a value for Name
12acct2.Name = 'Acme2';
13// Insert new account
14insert acct2;