【Salesforce】DmlExcepionで入力規則エラーを取得【Apex】

ApexクラスでDmlExceptionをキャッチすることで入力規則のエラーを取得できます。

 

try {
  upsert account;
} catch (DmlException e) {
  for (Integer i = 0; i < e.getNumDml(); i++) {
    ApexPages.addMessage(new  ApexPages.Message(ApexPages.Severity.ERROR,e.getDmlMessage(i)));
  }
}

 

 

上記の方法でエラーを取得できますが、1点注意が必要です。

入力規則のエラー表示位置の設定によって取得できるエラー数が異なります。

「ページ上部」:1レコードで1つのみ取得可能

「項目下」:1レコードで複数取得可能