フローイベントスクリプトを用意する
最終更新日: 2021年12月14日
R8 | R9
ワークフロー設定画面に用意された「フローイベントスクリプト」を定義します。
ノードとイベントタイプに応じたスクリプトを設定することができます。
スクリプト内で何らかのチェックを行い、その結果が不正と判断したときに Wagby の例外
次のフローイベントスクリプトを「申請」ノード、イベントタイプ「申請」に記載します。(注意:これは必ずエラーとなるようにしたものです。)
ワークフローの申請時にエラーとなり、上記エラーメッセージが画面に表示されます。ワークフローは進まないため、エラー発生後に再度申請ボタンが押下可能となっています。
決裁ノードで例外を発生させロールバックさせる場合、同ノードのイベント "承認" にスクリプトを設定します。"決裁" イベントではないことに注意してください。
フローイベントスクリプトで自モデルのデータを *更新* する場合、EntityService の findById メソッドを使って「最新のデータを取得」してください。
具体的には次のようになります。
再取得を行わない場合、ワークフローの状態が更新されません。例えば決裁時のスクリプトで自データを更新したが、決裁状態にならない、といった不整合が生じる場合があります。
定義方法
例外を発生させてワークフローを進めないようにする
BusinessLogicException
を投げることができます。ワークフローを先へ進めずにエラーと表示するような制御を行うことができます。
例
throw new BusinessLogicException("申請時にエラーが発生しました。エラー内容を修正後に再申請してください。");
決裁ノードでの例外処理
スクリプト内で利用できる暗黙変数
自モデルのデータを更新する
//最新のオブジェクトを取得する
var service = p.appctx.getBean("LeaveEntityService");
leave = service.findById(modelpkey);//modelpkeyは主キーの値
leave.status = 1;// 状態フラグを書き換えて更新する。
service.update(leave);
重要
仕様・制約