[Salesforce]Apexトリガの二重起動退避対策

SalesforceのApexトリガで、Updateの場合に、ワークフローによる該当オブジェクトの更新による、Apexトリガが二重で起動することがあります。

それによって、予期せぬ動きが発生する場合があります。

その防止対策として、Apexトリガのハンドラークラスに、static変数を使用して、初回起動かどうかをApexトリガが判断し、二重防止を回避する。

以下はサンプルです。

--- Apexトリガのハンドラクラス ---
public class ApexTriggerHandler {
public static boolean firstRun = true;
}
--- Apexトリガ ---
trigger ApexTestTrigger on TestObject__c (before update) {
 if(p.firstRun==true){
    system.debug('1回目の起動です。');
    ApexTriggerHandler.firstRun=false;
 }else{
    system.debug('2回目の起動です。');
 }
}

投稿者: kinkun

保有資格 Salesforce Certified Platform App Builder T Salesforce Certified Platform Developer I Salesforce Certified Platform Developer II Salesforce Certified Administrator

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です