回覧者割当で使用する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 | 回覧者を割り当てるステップID | Id |
stepName | 回覧者を割り当てるステップ名 | String |
userId | 操作者のユーザID
| Id |
targetRecordId | 申請対象レコードID | Id |
戻り値
型: 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; } }