回覧者割当で使用するApexクラスを作成

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

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

前提条件

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

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

WF_CirculatorsSelector インタフェースの詳細

名前空間

 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実装例

CirculatorsSelector
global with sharing class CirculatorsSelector implements TSMNTWF.WF_CirculatorsSelector {

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

        Set<Id> circulators = 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

        ];

        // レコード所有者を回覧者として割り当て
        circulators.add(data.OwnerId);

        return circulators;
    }

}