[Salesforce]String.isBlankとisEmptyの動き

Salesforce のStringメッソドのisBlankとisEmptyについて例を共有します。

String emptyStr = '';
String blankStr = ' ';
String nullStr = null;

System.debug(String.isEmpty(emptyStr));  // true
System.debug(String.isEmpty(blankStr));  // false
System.debug(String.isEmpty(nullStr ));  // true
System.debug(String.isBlank(emptyStr));  // true
System.debug(String.isBlank(blankStr));  // true
System.debug(String.isBlank(nullStr ));  // true

[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回目の起動です。');
 }
}

[Salesforce]Apexトリガのガバナ制限について

SalesforceのApexトリガでは、ガバナ制限することができません。

対応策としては、データローダでバッチサイズを調整してガバナ制限を対応する。

バッチサイズは、1トランザクションでのガバナ制限を超えないところに、設定する。