【JPIERE-0485】WF責任者タイプ「組織」の実装

 iDempiereのワークフロー(WF)で承認者を決定するロジックに関係するマスタでWF責任者というのがあります。そのWF責任者はさらに、「WF責任者タイプ」というのがあり、承認者を決定するロジックは、WF責任者タイプ毎に異なります。

WF責任者タイプはリスト選択できるようになっており、そのリストには「職責」、「組織」、「人」、「マニュアル」と4つの選択肢があるのですが、この中で「組織」を選択した時に承認者を決定するロジックは2021年6月20日現在でまだ実装されていません。

 そのため、JPiereで実装しました。

WF責任者タイプが「組織」の場合の承認者決定ロジック

WF責任者タイプが「組織」の場合、WFアクティビティーの承認者は、組織マスタの組織情報タブの責任者になっているユーザーになります。

 

WFノードに割り当てられているWF責任者の組織が"*"以外の場合

WFノードに割り当てられているWF責任者の組織が"*"以外の場合は、組織に割り当てられている責任者のユーザーが承認者となります。

 

WFノードに割り当てられているWF責任者の組織が"*"の場合

WFノードに割り当てられているWF責任者の組織が"*"の場合は、承認する伝票の組織の責任者が承認者となります。そのため伝票の組織ごとに承認者を変える事ができます。

【注意】システムクライアントにある"*"のデータについて

iDempiereには、予めシステムクライアントに"*"でWF責任者タイプが「組織」のデータが登録されていますが、これは使用しないで下さい。エラーになります。

WFの申請時

職責の「自己作成伝票承認」フラグ(IsCanApproveOwnDocフラグ)がONになっている場合でも、WFの申請と承認を同時は行えないようにしています。自己承認したい人は、申請したあとに、別途承認して下さい。

WFの承認時

 職責の「自己作成伝票承認」フラグ(IsCanApproveOwnDocフラグ)がOFFになっている場合で、WFを申請した人が、承認する組織の責任者でもあった場合、承認する事ができません。そのような場合、承認権限を委譲して他のユーザーに承認してもらう運用を想定しています。 自己作成伝票承認フラグがOFFになっているので、内部統制的な観点より、上記のような仕様にしました。

 下記のロジックのいずれかの場合に自己作成した伝票と判定しています。「自己作成伝票承認」フラグがOFFで、自己作成伝票と判定された場合には、エラーになり承認処理できません。

  • 承認ノードのWFアクティビティーの作成者が、ログインしているユーザーと同じユーザーである場合。
  • ログインしているユーザーと、DocAction#getDoc_User_ID()メソッドで取得されるユーザーが同じユーザーである場合。

【ポイント】「自己作成伝票承認」がONでも承認する!

WF責任者タイプが組織の場合、「自己作成伝票承認」がONの場合で、承認権限のある人がWF申請を行っても、必ず「承認」行為が必要になるというのが、他のWF責任者タイプとは異なる挙動になります。

 この仕様にする事で、他のWF責任者タイプとの使い分けができるようにも意図しています。

カスタマイズ情報

クラス

  • org.compiere.wf.MWFActivity