この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

SObjectType クラス

Schema.sObjectType オブジェクトは、getReferenceTo メソッドを使用して Field Describe Result から、または getSObjectType メソッドを使用して sObject Describe Result から返されます。

名前空間

Schema

使用方法

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(id)

指定された ID でこの型の新しい sObject を作成します。

署名

public sObject newSObject(ID id)

パラメータ

id
型: ID

戻り値

型: sObject

使用方法

引数として、データベースにある既存のレコードの ID を渡します。

新しい sObject を作成すると、返された sObject のすべての項目は null に設定されています。更新可能な項目を目的の値に設定し、データベースのレコードを更新できます。新しい値を設定した項目のみが更新され、それ以外のシステム項目ではないすべての項目は保持されます。

newSObject(recordTypeId, loadDefaults)

このデータ型の新しい sObject を構築します。必要に応じて、指定するレコードタイプ ID の sObject や、デフォルトのカスタム項目値を持つ sObject を作成できます。

署名

public sObject newSObject(ID recordTypeId, Boolean loadDefaults)

パラメータ

recordTypeId
型: ID
作成する sObject のレコードタイプ ID を指定します。この sObject にレコードタイプが存在しない場合、null を使用します。この sObject にレコードタイプが存在し、null を指定した場合、デフォルトのレコードタイプが使用されます。
loadDefaults
型: Boolean
定義済みのデフォルト値をカスタム項目に入力するか (true)、否か (false) を指定します。

戻り値

型: 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;