FAQ:稟議申請などのワークフロー(承認プロセス)をプロセス機能で実現する
## 概要
稟議申請などで用いられる承認ワークフローを、テーブル管理のプロセスと状況による制御の機能を用いて実現します。
この例では、申請金額に応じて最大 3 段階の申請を経由し、最終的に経理部での確定作業を行うフローをお示しします。
各フローでは、直前の担当者への差戻しも行うことができます。
プロセスおよび状況による制御の設定方法は「[テーブルの管理:プロセス](https://pleasanter.org/manual/process)」「[テーブルの管理:状況による制御](https://pleasanter.org/manual/status-control)」をそれぞれを参照ください。
このサンプルは[デモサイト](https://demo.pleasanter.org/)の「稟議申請の例」のフォルダにある「稟議申請」のテーブルにて設定の確認や試用を行っていただけます。
設定は相互に有機的に関連いたしいておりますため、具体的な設定値はデモサイトでご確認いただけますようお願いします。
## フロー例で想定する業務要件
申請時の申請金額に応じて、承認回数および承認できる役職職位(承認ルート)が決定されます。
承認できるのは、申請者が所属する部門の上席者とし、申請金額が 200,000 円以下の場合は課長のみが承認を行ない、 200,000 円超で 1,000,000 円以下の場合は課長および部長が承認を、1,000,000 円超の場合には、課長、部長および役員が承認します。
レコードは次のように回覧されます。
1. 申請者が申請金額を指定して、レコードを作成。申請前もしくは申請者に差し戻された場合は、取り下げも可能で、この場合完了状態となります。
2. 申請金額が 200,000 円以下の場合は課長が承認または差戻を判断し、承認されたら経理に回覧。
3. 申請金額が 200,000 円を超え 1,000,000 円以下の場合は次に部長が承認または差戻を判断し、承認されたら経理に回覧。
4. 申請金額が 1,000,000 円を超える場合には、最後に役員が承認または差戻を判断し、承認されたら経理に回覧
5. 経理に回覧後は、支払処理を行ったことを記録すると、完了となり申請者に戻ります。経理でも差戻が可能です。
![image](https://pleasanter.org/binaries/b626637408ee4f2fb865a288f8ab6d70)
## システム上の処理
承認段階は、状況項目によって管理されます。
承認ルートを進める操作は、プロセス機能によって実装します。
各承認段階では、入力できる項目および表示される項目を異なったものとすることで、作業する担当者に必要な内容を表示することができます。
画面の状態は、状況による制御の機能によって実装します。
なお、部門は"[組織](https://pleasanter.org/manual/dept)"、職位は"[グループ](https://pleasanter.org/manual/group)"を利用して設定します。
## データ項目の用意
ワークフローで利用するテーブルの設定を行います。
※エディタの設定は以下を参照ください。
[Table Management: Editor](table-management-editor)
![image](https://pleasanter.org/binaries/3d6e9f8fcfd3420e90bb2ffa35ad814e)
| 項目名 | カラム名 | 説明 |
| :------------- | :----------- | :----------------------------------------------- |
| 件名 | Title | 稟議申請の件名 |
| 内訳 | Body | 申請の内訳 |
| 承認段階 | Status | 状況の管理のために利用。設定する状況は、 |
| 回答者 | Manager | ワークフローにおける現在の作業担当者 |
| 申請者 | Owner | 稟議の申請者 |
| 申請部門 | ClassA | 申請者が所属する組織 |
| 担当課長 | ClassB | 承認または差戻した課長 |
| 担当部長 | ClassC | 承認または差戻した部長 |
| 担当役員 | ClassD | 承認または差戻した役員 |
| 回送元 | ClassE | 前の作業担当者 |
| 経理担当 | ClassF | 確定または差戻した経理部の担当者 |
| 金額 | NumA | 通貨とし、1 円から 5,000,000 円の範囲で指定 |
| 申請日 | DateA | 申請が行われた日時 |
| 課長承認日 | DateB | 課長が承認または差戻した日時 |
| 部長承認日 | DateC | 部長が承認または差戻した日時 |
| 役員承認日 | DateD | 役員が承認または差戻した日時 |
| 経理処理日 | DateE | 経理担当が確定または差戻した日時 |
| 起案理由 | DescriptionA | 申請にあたってのコメント |
| 課長コメント | DescriptionB | 課長が承認または差戻したときのコメント |
| 部長コメント | DescriptionC | 部長が承認または差戻したときのコメント |
| 役員コメント | DescriptionD | 役員が承認または差戻したときのコメント |
| 回答 | DescriptionE | 承認または差戻を行う際に必須で入力するコメント欄 |
| 回送元コメント | DescriptionH | 前の作業担当者のコメント |
| 証憑 | AttachmentsA | 申請に添付される資料 |
## プロセス構成
以下のとおり 17 のプロセスを設定します。
![image](https://pleasanter.org/binaries/2da1bc8df3c44de79e71106274c9315f)
| No | ボタン名 | 内容 | 現在の状況 | 変更後の状況 | アクセス権 |
| :-: | :----------------- | :------------------------------------------- | :--------- | :----------- | :--------------- |
| 1 | 申請 | 申請を行い、課長に承認を依頼する | 申請待 | 課長承認待 | 指定なし |
| 2 | 承認 | 20 万円以下の申請を決裁する | 課長承認待 | 経理待 | 課長、部長、役員 |
| 3 | 承認 | 20 万円を超える申請を一次承認する | 課長承認待 | 部長承認待 | 課長、部長、役員 |
| 4 | 承認 | 100 万円以下の申請を決裁する | 部長承認待 | 経理待 | 部長、役員 |
| 5 | 承認 | 100 万円を超える申請を二次承認する | 部長承認待 | 役員承認待 | 部長、役員 |
| 6 | 承認 | 申請を決裁する | 役員承認待 | 経理待 | 役員 |
| 7 | 回答者に自身を設定 | 作業者が未指定であるとき、自分を作業者にする | \* | \* | 指定なし |
| 8 | 取下 | 取り下げて完了状態とする | 申請待 | 取下 | 申請者 |
| 9 | 差戻 | 申請者へ差し戻す | 課長承認待 | 申請待 | 課長、部長、役員 |
| 12 | 差戻 | 一次承認へ差し戻す | 部長承認待 | 課長承認待 | 部長、役員 |
| 13 | 差戻 | 二次承認へ差し戻します | 役員承認待 | 部長承認待 | 役員 |
| 14 | 支払 | 経理処理を実施したレコードを完了状態とする | 経理待 | 完了 | 経理部 |
| 15 | 差戻 | 決裁担当課長への差戻し | 経理待 | 課長承認待 | 経理部 |
| 16 | 差戻 | 決裁担当部長への差戻し | 経理待 | 部長承認待 | 経理部 |
| 17 | 差戻 | 決裁担当部長への差戻し | 経理待 | 役員承認待 | 経理部 |
基本的に、フローの矢印に対応した設定が必要となります。
No. 7 については、状況によらず、作成や更新のタイミングで回答者項目を操作しているユーザ自身を選択するための設定となります。
また、各プロセスで、操作しているユーザの操作した日および回答メッセージを回送元コメントに転記する設定を"データ変更"([プロセス](https://pleasanter.org/manual/process)の「データの変更タブ」の箇所をご参照ください)の機能で行っています。
## 状況による制御の構成
![image](https://pleasanter.org/binaries/5771d4f3f88e4c0ea9ef55bfbfe45701)
以下のとおり 17 の状況による制御の設定を行います。
(本サンプルではプロセスと状況による制御が同数ではございますが、必然的なものではなく、設定数が異なっていても機能に支障はございません)
| No | 状況 | 説明 |
| :-: | :--------- | :----------------------------------------------------- |
| 1 | 申請待 | 起票時は承認項目を非表示とする |
| 2 | 課長承認待 | 申請内容は読取専用。一次承認項目の表示 |
| 3 | 課長承認待 | 一般社員は読取専用 |
| 4 | 部長承認待 | 申請、一次承認項目は読取専用。二次承認項目の表示 |
| 5 | 部長承認待 | 一般社員、課長は読取専用 |
| 6 | 役員承認待 | 申請、一次、二次承認項目は読取専用。最終承認項目の表示 |
| 7 | 役員承認待 | 一般社員、課長、部長は読取専用 |
| 8 | 経理待 | 一次承認まで表示して読取専用。経理部以外向け |
| 9 | 経理待 | 一次承認まで表示。経理部向け |
| 10 | 経理待 | 二次承認まで表示して読取専用。経理部以外向け |
| 11 | 経理待 | 二次承認まで表示。経理部向け |
| 12 | 経理待 | 全ての項目を表示して読取専用。経理部以外向け |
| 13 | 経理待 | 全ての項目を表示。経理部向け |
| 14 | 取下 | 全てのユーザに対して読取専用の設定 |
| 15 | 完了 | 一次承認までの項目を表示 |
| 16 | 完了 | 二次承認までの項目を表示 |
| 17 | 完了 | 三次承認までの項目を表示 |
各状況において、誰にどのように見せるかをコントロールします。
状況ごとにアクセス権限に応じて編集可能なユーザと閲覧のみのユーザがするため、各別に設定しています。
また、本サンプルでは、金額によって承認回数が異なり、利用する項目も異なるため、経理段階/完了段階では、金額による条件付けも行っています。
## 補助的な設定
### レコードのアクセス制御
![image](https://pleasanter.org/binaries/fc11159c831e4a33a7673fc64951c290)
申請者の組織に基づく制御を行いますため、レコードのアクセス制御として、作成時および更新時に回答者項目および申請部門項目にアクセス権限を付与しています。
申請部門に編集権限を与えることで、承認が、同一組織内の該当職位者なら誰でも(例えば、課長なら誰でも)承認可能となります。
また、回答者の権限設定を行うことで、回答者を明示的に指定したとき、その人に権限が与えられるため、一時的に回答を委任するといった処理に対応します。
### サーバースクリプト
![image](https://pleasanter.org/binaries/d30255389ba7413b867dbb737113b769)
組織に対して、権限が与える設定から、上席者は部下にボールがある場合に、更新ができてしまうことを防ぎます。
サーバースクリプトを利用した権限の制限については[開発者向け機能のマニュアル](https://pleasanter.org/manual/server-script-view-filters)もご参照ください。
### 発展
本サンプルをベースに、次のような機能を発展的に追加していただけます。お客さまの実際の運用にあわせた改善をお試しください。
- 承認依頼者への通知
- 本サンプルでは、次の回答者を必須としないため、承認依頼を受けた個人への通知を行う設定をしていません。回答者を必須で選択することで、回答依頼を受けた人に通知する、申請部門の組織にあてて通知するといった設定方法が考えられますため、運用に適した設定をご検討ください。
- 状況横断的な取り下げ
- 本サンプルでは、申請者は自身が回答者であるとき(申請前および差戻を受けたとき)のみの取り下げとしております。どの状況からでも申請者であれば取り下げできるようにするには、現在の状況を「\*」、変更後の状況を「取下」とするプロセスを追加することで実現できます。