ワークフローの使用例として、ここでは出張申請の提出から却下/(再)提出/承認までの流れを実装してみる。なお、前ページで使用したページは使用せずに、リボンの[作成]タブにある[テーブルからページを生成]ボタンを利用して、ページのひな型を生成する。
ここで作成するのは簡易的な出張申請アプリなので、以下のフィールドだけを持つテーブルがあれば十分だ。
テーブル名は「出張申請」とする。
これをワークフローで使用すると、実際には「状態」と「担当者」の二つのフィールドが付加される。これらのフィールドは、リストビューや個々のセルからも参照可能だ。
テーブルを作成したらワークフローの設定を行うが、これには[ワークフロー設定]ダイアログを使用する。
作業スペース(Forguncyウィンドウ中央部のメイン部分)にテーブルを表示してから、右ペインにある[ワークフローの編集]リンクをクリックすると、次のようなダイアログが表示される。
このダイアログでは、ワークフローの「状態」の追加、各状態で担当者がどんなアクション(処理)を行えるか、そのアクションの結果、状態がどのように遷移するか、遷移後の状態の担当者が誰なのかを設定する。このダイアログは次の二つの要素で構成されている。
[プロセス]欄では、グリッドの各行をクリックして選択し、その下にある[アクション]/[実行後の状態]/[担当者]を指定するのが、基本的な操作となる。ある状態で担当者が行えるのは[アクション]欄にある操作だけであり、これがワークフローバーにボタンとして表示される(後述)。
ここではシンプルであることを目的として、既定の状態(新規/申請中/承認済み)だけを使うことにする(申請が却下された場合に遷移する「却下」状態などの追加が考えられるが、本稿では割愛する)。
ここで出張申請のワークフローがどんなものかをもう一度考えてみよう。
そして、この流れを[ワークフロー設定]ダイアログに反映していくことになる。では、設定を実際に行っていこう。
上で見た出張申請の処理の流れの図を基に、各状態で行えるアクションとその後の状態などについてまとめると次のようになる。
状態 | 行うこと | 対応するアクション | 次の状態 | 担当者 |
---|---|---|---|---|
新規 | 出張申請の提出 | 提出 | 申請中 | 隊長/上司など |
申請中 | 出張申請を承認 | 承認 | 承認済み | なし(申請が完了して受理された) |
申請中 | 出張申請を却下 | 却下 | 新規 | 作成者(申請の作成者に差し戻し) |
承認済み | なし | なし | なし | なし |
ワークフローの状態遷移 |
新規に出張申請を作成したら(「新規」状態)、それを提出し、隊長(グループ)または直属の上司(ワークフロー属性)の判断を待つ。「申請中」状態の担当者は申請を承認または却下し、前者ならそこで申請が完了する。後者では、申請を「新規」状態にして申請者に差し戻す。この流れを[ワークフロー設定]ダイアログに反映すると次のようになる。
ここでは[実行前の状態]/[アクション]/[条件]/[実行後の状態]はデフォルトのままとした。少し難しいのは[担当者]の指定方法だ。先ほどのユーザー登録時には「上司」として機能するグループ/ワークフロー属性として「隊長」グループと「上司」ワークフロー属性を作成した。ここでは「隊長」グループを「申請中」状態の「担当者」として設定してみる(「申請中」状態の「担当者」を決定するのは、一番上の行であることに注意)。[担当者]欄を見ると現在は、[全員]が「担当者」となっている。
ではこれを変更してみよう。最初にグリッドの先頭行をクリックして選択する。次に下の[担当者]ドロップダウンをクリックする。
表示されたドロップダウンリストには[グループ]タブと[カスタム]タブがあるが、ここでは[グループ]タブにある[隊長]を選択して、さらに右側でも[隊長]を選択する。これで「隊長」グループに属するヒーローが「申請中」状態の「担当者」となる。その下にある[上記のユーザーから一人を選択]ラジオボタンと[上記のユーザーの誰か]ラジオボタンは取りあえず前者を選択しておく(この効果は後で確認しよう)。
同様にして、「承認済み」状態の「担当者」は[なし]にする(申請が完了しているので担当者は不要だ)。「新規」状態の「担当者」については[カスタム]タブにある[作成者]を選択する。
以上で、ワークフローの設定は完了だ。次にワークフローを処理するページを作成する。
Copyright© Digital Advantage Corp. All Rights Reserved.