2.1. ワークフローライブラリ

2.1.1. 概要

申請フローや承認フローの進行状況、およびワークフロー内の各タスクに対する担当ユーザの割り当てや、割り当て状態の管理をするために必要な機能を提供する。

ワークフローライブラリの説明をする上で必要な「ワークフロー定義」「ワークフローインスタンス」について、以下に記載する。

2.1.1.1. ワークフロー定義

ワークフローの中で実行される処理の順序や分岐の条件などを定義し、実際の申請や要件毎のワークフローのひな型となる。

ワークフロー定義は、以下のような BPMN (Business Process Model and Notation) という表記法を利用して定義する。

../../../_images/concept_sample.png

上記の表記で利用している各要素についての説明と、ワークフローライブラリで利用できる要素についての説明は、下記を参照。

2.1.1.2. ワークフローインスタンス

ワークフローを利用する個々の案件や申請と紐付けて生成され、ワークフロー定義に存在するタスクやその進行状態、 各タスクの担当ユーザなどを管理する。

タスクを終了するときに、対応するアクションなどから ワークフローの進行 などを呼び出すことで、 ワークフローインスタンスの アクティブフローノード が更新されて、ワークフローが進行する。

ワークフローが進行した後は、 ワークフロー定義 に従って進行先が判断され、次のタスク(もしくは停止イベント)まで 進行して、再度ワークフローが進行するのを待つことになる。

2.1.2. 要求

2.1.2.1. 実装済み

2.1.2.2. 未検討

  • 確認者不在などの場合に、現在承認待ちの承認者が承認を行うのでなく、先のステップの承認者が承認を行う ことを認めるワークフロー(引上承認)を定義できる。

2.1.3. 対象外としている機能

以下については、ワークフローライブラリでは機能を提供していない。必ずアプリケーションで実装する必要がある。

  • ワークフローインスタンス情報に関する排他制御は行われない。必ず、ワークフローに従って処理される業務データで排他制御を行うこと。

また、以下については、アプリケーションに応じて要件が異なると想定されるため、 ワークフローライブラリでは機能を提供していない。アプリケーションで適切な設計を行い、実装する必要がある。

  • ワークフローにおける処理履歴(承認履歴など)を取得する。
  • ワークフローに付随する情報を保持する。(個々の案件名や申請状況のステータス名など)
  • 処理対象ワークフローなどの検索を行う。
  • 担当ユーザと担当グループの関連など、ユーザや権限を管理する機能

2.1.4. 制約事項

  • タスクには、担当ユーザと担当グループのいずれかしか割り当てることはできず、一つのタスクにユーザとグループの両方が 割り当てられている状態にすることはできない。 担当ユーザが割り当てられているタスクをグループに割り当てなおす、もしくはその逆は可能である。
  • 並行処理となるような分岐や合流をおこなうワークフローを定義することはできない。
  • ワークフローの定義情報を、動的に変更することはできない。事前に登録されているワークフロー定義データを利用する。

2.1.5. 全体構造

ワークフローライブラリの全体構造については、以下を参照。

ちなみに

テーブル定義に対応する Object Browser ER のEDMファイルを、以下からダウンロードすることができる。

workflow_model.edm