一.概要
企業のアプリケーションにおいて、スタッフがデータベースにデータを書き込む操作は責任者の検証と確認が必要としています。これは、データ書き込みの承認ワークフローと呼ばれます。
FineReport のレポート機能はこのような承認ワークフローをサポートしており、そのアプリケーションの概略は下図のとおりです。

二.データ書き込み設計説明
FineReportのデータ書き込み設計のステップは以下のようになります。

要件定義:管理者はfsシステムにおいてデータワークフローの三つの関連ラベル(ワークフロー管理、ワークフロータスク管理とマイワークフロータスク)を入れ、ディレクトリ下の三つのノードを形成させます。従って、管理者は三つのディレクトリノードの権限を各ユーザに割り当てます。
書き込みテンプレート開発:ワークフローにおける書き込みのテンプレート設計です。
ワークフローを設定:管理者及び権限持ちの普通ユーザはワークフローのプロセスを増やし、ノード名称、ノードの操作方式、テンプレートバインド、ユーザ指定などを含めたワークフローの各ノードを設定します。
ワークフロータスクを追加:管理者及び権限持ちの普通ユーザはワークフローのタスクを追加し、当タスクの従うべきプロセスを選んで次のノードに続きます。
テスト及び正式に使用:データワークフローはすでに次のノードに続き、プロセス設定により異なるユーザは最初のノードから順を追って続けます。マイワークフロータスクでは未処理タスクリストをチェックし、データのワークフローを操作できます。
三.分類
データワークフローは主に下記の3種類に分けられます。
1.シンプルデータワークフロー
タスクプロセスは単にボトムアップ式で続き、直線ワークフローとなります。下図の通りです。

2.共同書き込みワークフロー
タスクのプロセスは進行中にノードが複数選択になり、一つのノードは複数のユーザにより操作できます。下図の通りです。

3.配布承認ワークフロー
タスクプロセスは進行中にあるノードに続く時、ユーザはサブタスクを新規作成して配布します。サブタスクが終わったら当ノードに戻り、当ノードのユーザは操作してからメインタスクに続きます。下図の通りです。

4.パラメータ紹介
承認ワークフローとはテンプレートに基づいてDBにデータ書き込みを行う作業です。よりよいワークフローの実現のため、FineReportはワークフローに四つのパラメータを提供し、テンプレート設計をサポートします:$fr_task_name、$fr_task_state、$fr_task_idと$fr_task_sender。テンプレートで直接呼出し可能です。
1.$fr_task_name
fr_task_name ワークフロータスクの名称を取得します。
2.$fr_task_id
fr_task_id ワークフロータスクのIDを取得します。
3.$fr_task_sender
fr_task_sender 当操作ノードの前ノードの操作ユーザはテンプレートでこのパラメータを使うことで、当操作ユーザに前ノードの操作ユーザを知らせます。
4.$fr_task_state
fr_task_state当タスクの進行状態を取得します。下記のリストの通りです。
fr_task_state=-1 異常状況
fr_task_state=0 申請待ち
fr_task_state=1 審査待ち
fr_task_state=2 審査済み
fr_task_state=3 返送
fr_task_state=4 無効
fr_task_state=5 タイムアウト