Apex Triggerを利用したValidationの例

By | June 19, 2022

想定ユースケース

レコードの任意の項目のUpdate時にValidateをかけ、問題があればエラーメッセージを表示した上でUpdate処理をロールバックしたい。

解決策

Apex Trigger内でValidateを行い、問題があればaddError()メソッドを利用してレコードページ上にエラーメッセージを表示する。

なお、以下の仕様により、トリガフローでは対応できない

  • 障害パスに入っても起点となったCRUDイベントのロールバックはされない。
  • ロールバックコンポーネントのロールバック対象はフロー内に記載したCRUD処理のみ。

ApexTriggerのSample

trigger CaseTrigger on Case (before update) {
    for(Case record : Trigger.new){
        if(
        record.Status == 'Solved' &&
        record.Status <> trigger.oldMap.get(record.Id).Status
        ){
            if(record.Origin == 'Web'){
                record.addError('you cannot update this record.');
            }
        }
    }
}