iDempiereのワークフロー(WF)においては、「自己作成伝票承認」フラグ(IsCanApproveOwnDocフラグ)において、自己承認が出来ないように制御できるようになっています。しかしながら、WF責任者タイプ「職責」においては、職責に所属するユーザーであれば、自己作成伝票承認フラグがOFFの場合でも承認できてしまうので、承認できないように改善しました。
自己作成伝票の判定
自己作成した伝票かどうかの判定は下記のように行っています。
WFの申請時
WFの申請時には、下記のロジックに該当した場合、自己作成した伝票と判定しています。職責の「自己作成伝票承認」フラグがOFFで、自己作成伝票と判定された場合は、承認ノードとなるWFアクティビティーの承認処理が必要になります。
- 承認可能な職責に所属しているユーザーであり、ログインしているユーザー
WFの承認時
未処理WFアクティビティ画面での承認時には、下記のロジックのいずれかの場合に自己作成した伝票と判定しています。「自己作成伝票承認」フラグがOFFで、自己作成伝票と判定された場合には、エラーになり承認処理できません。
- 承認可能な職責に所属しているユーザーであり、承認ノードのWFアクティビティーの作成者が、ログインしているユーザーと同じユーザーである場合。
- 承認可能な職責に所属しているユーザーであり、ログインしているユーザーと、DocAction#getDoc_User_ID()メソッドで取得されるユーザーが同じユーザーである場合。
カスタマイズ情報
クラス
- org.compiere.wf.MWFActivity