本記事の内容
承認プロセスを実行する際に発生した3つの主なエラーをまとめました。
それぞれパターンごとに分けています。
例:「テスト2」の承認プロセスを実行するユーザのはずなのに、「テスト1」が必ず実行されてしまう。
エラーのパターンとその原因、回避策
その1:対象の承認プロセスが実行されない
エラー原因:対象の承認プロセスの条件を満たしていない。
このエラーは対象の承認プロセスを実行せずにスルーしてしまっている可能性があります。
開始条件を満たしている、申請ユーザが承認プロセスの申請者に含まれているかを確認しましょう。
その2:対象のプロセスよりも順番の若いプロセスが実行されてしまう。
エラー原因:対象の承認プロセスよりも順番の若い承認プロセスの開始条件が満たされてしまっている。申請ユーザが申請者に追加されてしまっている。
これは対象の承認プロセスよりも順番が若い承認プロセスが開始条件を満たしてるか、申請ユーザが申請者に割り当てられている可能性があります。
回避策としては下記があります。
・承認プロセスの順番を入れ替える。
・承認プロセスの開始条件で、実行されるべきでない承認プロセスが実行されないように設定する。
・承認プロセスの申請ユーザから対象のユーザを削除する。
その3:開始条件は満たしていないし、申請者にも追加されていない。しかし一番順番が若い承認プロセスが実行される。
エラー原因:申請ユーザのプロファイルで、承認申請するオブジェクトへのアクセス権の「すべて変更」にチェックが入っている。
その2で紹介された原因に当てはまらなかったらこれが原因の可能性があります。
Salesforceの仕様で、プロファイルのオブジェクト権限の「すべて変更」にチェックが入っていたらそのオブジェクトで承認申請を行ったら順番が一番若い承認プロセスが実行されます。(システム管理者等が割り当てられたユーザによくあるエラーです)
回避策としては下記の3つがあります。
・対象の承認プロセスの順番を一番若く設定する。
・申請者のプロファイルで、オブジェクト権限の「すべて変更」のチェックを外す。(システム管理者等のオブジェクト権限を変更することは出来ない)
・新たにオブジェクト権限の「すべて変更」のチェックが外れたカスタムプロファイルを作成して、申請者ユーザに割り当てる。
上記3パターンでも解決できない場合は下記のSalesforce公式ヘルプを参照いただければと思います。
承認の制限および考慮事項:
https://help.salesforce.com/s/articleView?id=sf.approvals_considerations.htm&type=5