3 つのステップを含む承認プロセスがあり、そのすべてが割り当てられた承認者 = 手動選択に設定されています。ユーザーが承認のためにレコードを送信するときに、Apex コードで 3 人の承認者を特定したいと考えています。ただし、承認リクエストの送信にフックする方法がわかりません。
Apex UsingApproval.process()
で承認を送信すると、 で最初の (最初の承認者のみ) 承認者を設定できProcessSubmitRequest.setNextApproverIds()
ます。この呼び出しは、ID の配列を受け取るため、複数の承認者を指定できると思わせますが、配列には 1 つの要素しか含めることができません。そうしないと、実行時にエラーが発生します。
最初の承認者の応答がわかったら、Apex を使用して彼女の応答を送信し、ProcessWorkitemRequest
インスタンスを に渡してすぐに次の承認者を設定しますApproval.process()
。ここで重要なことは、承認者は標準 UI を介して承認してはならないということです。代わりに、次の承認者を設定できるように、Apex コードを呼び出す何かを行う必要があります。レビュー中のオブジェクトのトリガー、またはカスタム ボタン + VF ページを使用して、Apex を呼び出すことができます。
私の主な質問は、ユーザーが標準の承認ボタンを使用しないようにするにはどうすればよいですか? これらは承認関連リストと Salesforce ホーム画面に表示されます。他の場所にもあるかもしれません。繰り返しますが、彼らが標準の送信ボタンと承認ボタンを使用している場合、次の承認者を設定するためにフックする方法がありません。