ワークフロー機能の概要

■ワークフローとは

連続した業務処理の流れを「ワークフロー」と呼びます。
たとえば、出張申請書を作成し、上司に回送し、承認印をもらう、というような一連の業務処理の流れを指します。
Forguncyでは業務ワークフローを処理するアプリケーションを作成することができます。

■ワークフローの処理

ワークフローでは各レコードの「状態」と「担当者」の値を元に処理の流れが決定されます。
ワークフローを使用するテーブルでは状態フィールドと担当者フィールドが自動的に作成されます(上図)。
ここでは、新しいワークフロー案件を上司と経理がそれぞれ「承認」、「却下」するアプリケーションを例に説明します。

① 担当者は新しいワークフロー案件を作成し「申請」処理をします。
申請データはテーブルのレコードとして作成され、「担当者」として「上司」、「状態」に「承認待ち」がセットされます。
② 上司がログインして承認画面を開くと、上司が担当する「承認待ち」状態の申請データが表示されます。
セル型「ログインユーザー」を使うと、このユーザーの未処理ワークフロー数が表示されます。
③ 上司が申請データを「承認」すると、次の「担当者」として「経理」、「状態」に「承認待ち」がセットされます。
上司が「却下」した場合は申請データは担当者に差し戻されます。
④ 経理がログインして申請データを承認すると、この申請書は正式に承認され、一連のワークフロー処理は終了します。
経理が「却下」すると上司に差し戻されます。

このように、レコードに記録される「担当者」と「状態」を組み合わせて、一連の業務を処理するワークフローアプリケーションを作成します。

■担当者の指定

ワークフローでは、テーブルの担当者フィールドで次の処理担当者が設定されます。
担当者はテーブルのワークフロー設定で設定します。
担当者は下記のような設定方法があります。

ユーザー

各ユーザー

グループ

グループ内のユーザー

拡張属性

拡張属性を設定されたユーザー

最終編集者

レコードの最終編集者

作成者

レコードの作成者(ワークフローを開始したユーザー)

「グループ」「拡張属性」では、この中のユーザーの誰かを選択するか、誰でも処理できるかを選択できます。

■グループと拡張属性の違い

グループも拡張属性も、通常、それぞれの中に複数のユーザーが存在します。
グループを指定した場合、誰がアクションを起こしても、そのグループ内のユーザー全員が担当者になります。
アクションを起こすユーザーによって次の処理を行うユーザーが異なるような場合は、拡張属性を使用します。

・グループの例
Aさん、Bさんが経理グループに所属しています。
Cさん、Dさんが経費申請を提出した場合、経理グループに属するAさんまたはBさんが担当者になります。
※設定によりAさん、Bさんのどちらもが担当できる場合と、申請時にAさんまたはBさんを選べる場合があります。

・拡張属性の例
Aさん、Bさんは拡張属性(ユーザーアカウント型)「上司」に属しています。
拡張属性でAさんはCさんの上司に設定されています。BさんはDさんの上司に設定されています。
Cさんが出張申請を提出すると自動的にAさんが担当者になります。Dさんが申請した場合は自動的にBさんが担当者になります。