承認者割当で使用するApexクラスを作成

承認プロセスのステップの割当方法として、Apexクラスを作成することにより組織独自のロジックを指定することが可能です。

Apex実装例を参考に、WF_ApproversSelectorインタフェースを継承したApexクラスを作成してください。

前提条件

作成するクラスは、以下の条件を満たしている必要があります。この条件を満たしていない場合、ワークフローは動作を保証しません。

  • WF_ApproversSelector インタフェースを実装していること。
  • WF_ApproversSelector インタフェースの実装ルールに基づいていること。
  • global であること。

WF_ApproversSelector インタフェースの詳細

名前空間

 TSMNTWF

run メソッド

承認者として割り当てるユーザIDのセットを返します。このメソッドの実装は以下の条件を満たす必要があります。

  • null を返さないこと(承認者として割り当てるユーザが存在しない場合は、null ではなく空のセットを返す)。

※ 戻り値のうち、 有効なユーザのIdのみを使用して承認者の登録を行います。戻り値の妥当性、整合性はメソッド内で検証してください。

※ 何らかの理由により処理を中止する場合は例外をスローしてください。ワークフローは処理を中止し、画面には例外に設定した メッセージが表示します。

※ SOQLのコール回数等のガバナ制限の影響を受けることに留意してください。SOQLのコール回数が極端に多い場合等は、ワークフローは動作を保証しません。

シグニチャ

 Set<Id> run(Map<String, Object> values)

パラメータ

 values

 型: Map<String, Object>

 values は run 実行時の状態を保持しています。以下のキーが保持されています。承認者として割り当てるユーザを決定する際に、必要な情報を利用してください。

キー
stepId承認者を割り当てるステップIDId
stepName承認者を割り当てるステップ名String
userId

操作者のユーザID

  • 申請の場合は申請者のユーザID
  • 承認の場合は承認者のユーザID
Id
targetRecordId申請対象レコードIDId
戻り値

 型: Set<Id>

 承認者として割り当てるユーザのIDのセットです。


Apex実装例

ApproversSelector
global with sharing class ApproversSelector implements TSMNTWF.WF_ApproversSelector {

    public Set<Id> run(Map<String, Object> values){

        Set<Id> approvers = new Set<Id>();

        // 引数から申請対象レコードを取得

        Id recordId = (Id)values.get('targetRecordId');

        TSMNTWF__WF_Data__c data = [

            SELECT

                Id,

                OwnerId

            FROM

                TSMNTWF__WF_Data__c

            WHERE

                Id = :recordId

        ];

        // レコード所有者を承認者として割り当て
        approvers.add(data.OwnerId);

        return approvers;
    }

}