Apex 一括SOQLで商談を処理する方法

環境
Salesforce

構文
List リスト変数名 = [SELECT Id,Name FROM opportunity WHERE Id IN :Trrigge.New]
SOQLには実行数制限があるため、少ない回数で効率的にクエリを実行する必要があります。
forループの中にSOQLを書くと何度もクエリが実行されてしまうため、
ループ外にSOQLを実装します。

操作例
取引先トリガで関連商談レコードを処理します
サンプルコード

Trigger AccountTrigger on Account(before insert) {
   // SOQL実行
   List<Account> oppList = [SELECT Id,Name,(SELECT Id,Name FROM Opportunities) FROM Account WHERE Id IN :Trigger.New]);
  
  // トリガ処理
  for(Account acc : oppList)
  {
    if(!acc.Opportunities.isEmpty())
    {
     for(Opporutnity opp : acc.Opportunities)
      {
       処理コード
      }
    }
   } 
}

 

Apex

Posted by arkgame