本ナレッジでは、プラグインで提供されている「ワークフロー遷移」コマンドを使い、Forguncyのワークフロー機能において代理承認を実現する例を紹介します。ここでは、代理承認の実現方法として、予め定義された承認者よりも上位の承認者であれば代理承認を行えるという運用ルールを想定しています。
解説
Forguncyのワークフローでは、ワークフローの「状態」と処理の任命者となる「担当者」で管理されます。ワークフロー処理の流れ(ルート)はアプリケーションの作成時に定義する必要があり、実行時は定義されたルートに沿って自動的に処理が行われます。このため、ワークフロー機能のみでは、代理承認のように定義時に担当として割り当てられていない担当者は承認できません。
しかし、プラグインの「ワークフロー遷移」コマンドはワークフローの「状態」および「担当者」を任意に変更できるコマンドです。そのため、代理承認のように定義時に担当として割り当てられていない場合でも、定義されていないルートで処理を行うことが可能になります。
なお、ワークフローの履歴への追記も可能なため、通常ルートとは異なる処理がされたことを任意の処理名(アクション名)やコメントに記載し履歴として残せます
添付のサンプルについて
添付のサンプルは、上位の承認者であれば部下の承認の代理承認が行えることとし、「ワークフロー遷移」コマンドを利用して代理承認の機能を実装した例です。以下は、サンプルに関する説明です。
※サンプルは、Forguncy 6.0.5.0以降のバージョンで読み込むことができます。
サンプルには「ワークフローコマンド」に含まれる「ワークフロー遷移」コマンドが必要です。
サンプルプロジェクトを開く前に、お使いの環境に「ワークフローコマンド」をインストールしてください。
サンプルでは、1) メンバー、2) リーダー、3) 部長、4)事業部長の順に購入申請の承認を行います。承認ルートは「組織」の登録情報と、役職のユーザーに割り当てられた「リーダー」、「部長」、「事業部長」の各ロール設定によって確定されます。
この際、「部長」はリーダーの代理承認/却下を、「事業部長」はリーダーと部長の代理承認/却下を行えます。サンプルでは、「Takafumi」(部長)、「Taro」(事業部長)でログインし、メニューより「代理承認」をクリックすると代理承認可能な申請の情報が表示されます。
代理承認の機能は、「代理承認」ページの[承認]、[却下]の各ボタンに実装されています。
代理承認/却下の際には、現在割り当てられている「担当者」の代理で承認/却下を行うのと、承認の際には自分の承認処理もまとめて行っています。また、代理で承認/却下を行った元々の「担当者」へ「メール送信」コマンドを使用して代理承認を行った旨のメールを送信しています。
(メールサーバーの設定と、メールを送信する担当者(送信先)のメールアドレス設定が必要です。メールサーバーを設定しないと代理承認時にエラーが発生します。)
また「ワークフロー遷移」コマンドで「状態」を書き換える際にはワークフローの次の「担当者」も設定する必要があります。この際、自分の承認後の次の「担当者」は、「%CurrentUser.OrganizationSuperior%」キーワードを利用して取得します。
サンプルではワークフローの状態に合わせて4つの一覧ページを用意しています。各ページの内容と申請の抽出条件を以下に示します。
a) 自分が申請した申請の一覧
ページ名: | 「一覧_購入申請」ページ |
説明: | 自分が申請した申請の一覧を表示します。 |
申請の抽出方法: |
レコードの「作成者」フィールドのユーザーが自分(%CurrentUser%と同じ)の申請を抽出します。 |
b) 自分にアサインされている申請の一覧
ページ名: | 「一覧_承認待ち」ページ |
説明: | ワーフクローの処理が自分にアサインされている(自分が承認/却下を行うべき)申請の一覧を表示します。 |
申請の抽出方法: |
レコードの「担当者」フィールド(ワークフローのためのフィールド)のユーザーが自分(%CurrentUser%と同じ)の申請を抽出します。 |
c) 承認済みの申請の一覧
ページ名: | 「一覧_承認済み」ページ |
説明: | 既に自分が承認し上司にアサインされている申請で、まだ処理が完了していない申請を表示します。代理承認された申請を含みます。 ※現在自分にアサインされている申請は除きます。 |
申請の抽出方法: |
以下の条件で抽出します。
|
d) 代理承認可能な申請の一覧
ページ名: | 「一覧_代理承認」ページ |
説明: | 自分の部下が承認先としてアサインされている申請を抽出します。 ※現在自分にアサインされているものは除きます。 |
申請の抽出方法: |
以下の条件で抽出します。
|
検索キーワード: fgcinfo fgcdevelopment fgcplugin