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()
戻り値
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;