iDempiereのワークフロー(WF)においては、「自己作成伝票承認」フラグ(IsCanApproveOwnDocフラグ)において、自己承認が出来ないように制御できるようになっています。しかしながら、WF責任者タイプ「人」においては自己作成伝票承認フラグがOFFの場合でも承認できてしまうので、承認できないように改善しました。
自己作成伝票の判定
自己作成した伝票かどうかの判定は下記のように行っています。
WFの申請時
WFの申請時には、下記のロジックに該当した場合、自己作成した伝票と判定しています。職責の「自己作成伝票承認」フラグがOFFで、自己作成伝票と判定された場合は、承認ノードとなるWFアクティビティーの承認処理が必要になります。
- WF責任者になっているユーザーとログインしているユーザー
WFの承認時
未処理WFアクティビティ画面での承認時には、下記のロジックのいずれかの場合に自己作成した伝票と判定しています。「自己作成伝票承認」フラグがOFFで、自己作成伝票と判定された場合には、エラーになり承認処理できません。
- 承認ノードのWFアクティビティーの作成者が、ログインしているユーザーと同じユーザーである場合。
- ログインしているユーザーと、DocAction#getDoc_User_ID()メソッドで取得されるユーザーが同じユーザーである場合。
【補足説明】
自己作成伝票承認フラグがOFFになっているユーザーが伝票を起票して、そのユーザーが承認者になっている場合は、伝票を承認できる人がいなくなってしまうわけですが、そのような場合は、承認権限を委譲して他のユーザーに承認してもらう運用を想定しています。
自己作成伝票承認フラグがOFFになっているので、内部統制的な観点より、上記のような仕様にしました。
カスタマイズ情報
クラス
- org.compiere.wf.MWFActivity