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

外部 ID を使用したレコードの関連付け

親レコードのカスタム外部 ID 項目を使用して関連レコードを追加します。レコード ID を使用する代わりに、外部 ID 項目を使用してレコードを関連付けます。関連レコードを別のレコードに追加できるのは、関与するオブジェクトの関係 (主従関係や参照関係など) が定義されている場合のみです。
この例では、新しい商談を既存の取引先に関連付けます。Account sObject には、外部 ID としてマークされたカスタム項目があります。商談レコードは、カスタム外部 ID 項目を介して取引先レコードに関連付けられます。この例の前提条件を次に示します。
  • Account sObject に MyExtID とい���名前のテキスト型の外部 ID 項目がある
  • MyExtID__c = ‘SAP111111’ の取引先レコードが存在する
新しい商談を挿入する前に、Opportunity.Account 関係項目を使用して、sObject として取引先レコードをこの商談に追加します。
1Opportunity newOpportunity = new Opportunity(
2    Name='OpportunityWithAccountInsert',
3    StageName='Prospecting',
4    CloseDate=Date.today().addDays(7));
5
6// Create the parent record reference.
7// An account with external ID = 'SAP111111' already exists.
8// This sObject is used only for foreign key reference
9// and doesn't contain any other fields.
10Account accountReference = new Account(
11    MyExtID__c='SAP111111');                
12
13// Add the account sObject to the opportunity.
14newOpportunity.Account = accountReference;
15
16// Create the opportunity.
17Database.SaveResult results = Database.insert(newOpportunity);

上記の例は挿入操作を実行しますが、更新または更新/挿入を実行するときも外部 ID 項目を使用して sObject を関連付けることができます。親レコードが存在しない場合は、個別の DML ステートメント、あるいは「外部キーを使用して 1 つのステートメントで親レコードと子レコードを作成する」に示すものと同じ DML ステートメントを使用して作成できます。