特集
» 2015年02月27日 13時02分 UPDATE

特集:Forguncy Pro新機能詳説:第1回 ワークフロー機能を試してみる (4/7)

[かわさきしんじ,Insider.NET編集部]

テーブルの作成とワークフローの設定

 ワークフローの使用例として、ここでは出張申請の提出から却下/(再)提出/承認までの流れを実装してみる。なお、前ページで使用したページは使用せずに、リボンの[作成]タブにある[テーブルからページを生成]ボタンを利用して、ページのひな型を生成する。

テーブルの作成

 ここで作成するのは簡易的な出張申請アプリなので、以下のフィールドだけを持つテーブルがあれば十分だ。

  • 申請者: 出張申請を行うユーザー(アプリにログインしているユーザー)。テキスト型
  • 開始日: 出張の開始日。日付/時刻型
  • 終了日: 出張の終了日。日付/時刻型
  • 訪問先: 出張先。テキスト型
  • 仮払金: 出張で必要になる経費の仮払金。小数(通貨)型

 テーブル名は「出張申請」とする。

「出張申請」テーブル 「出張申請」テーブル

 これをワークフローで使用すると、実際には「状態」と「担当者」の二つのフィールドが付加される。これらのフィールドは、リストビューや個々のセルからも参照可能だ。

 テーブルを作成したらワークフローの設定を行うが、これには[ワークフロー設定]ダイアログを使用する。

[ワークフロー設定]ダイアログ

 作業スペース(Forguncyウィンドウ中央部のメイン部分)にテーブルを表示してから、右ペインにある[ワークフローの編集]リンクをクリックすると、次のようなダイアログが表示される。

[ワークフロー設定]ダイアログ [ワークフロー設定]ダイアログ

 このダイアログでは、ワークフローの「状態」の追加、各状態で担当者がどんなアクション(処理)を行えるか、そのアクションの結果、状態がどのように遷移するか、遷移後の状態の担当者が誰なのかを設定する。このダイアログは次の二つの要素で構成されている。

  • [状態]欄: ワークフローの状態を定義する。ここで定義した状態がテーブルの[状態]フィールドに保存される。下にある[プロセス]欄にもここで定義した状態が表示される。一番上の欄はワークフローの初期状態を表すことに注意(それ以外の状態の並び順は任意)。左側にある上下の矢印は、状態の表示位置を変更するのに使用する。右側にある[+]/[−]ボタンは状態を追加/削除するのに使用する
  • [プロセス]欄: [実行前の状態]でどんな[アクション]を行えるか、その[アクション]により遷移する[実行後の状態]、[実行後の状態]の[担当者]が誰になるかを決定する([条件]も付加できるが、本稿では使用しない)。ここでも[+]/[−]ボタンを使って各要素の追加や削除が行える

 [プロセス]欄では、グリッドの各行をクリックして選択し、その下にある[アクション]/[実行後の状態]/[担当者]を指定するのが、基本的な操作となる。ある状態で担当者が行えるのは[アクション]欄にある操作だけであり、これがワークフローバーにボタンとして表示される(後述)。

 ここではシンプルであることを目的として、既定の状態(新規/申請中/承認済み)だけを使うことにする(申請が却下された場合に遷移する「却下」状態などの追加が考えられるが、本稿では割愛する)。

 ここで出張申請のワークフローがどんなものかをもう一度考えてみよう。

出張申請が承認されるまでの処理の流れ(再掲) 出張申請が承認されるまでの処理の流れ(再掲)
左は出張申請が承認されるまでを概念で示したもの。右はテーブルを利用したワークフローにおける処理の流れの具体例。

 そして、この流れを[ワークフロー設定]ダイアログに反映していくことになる。では、設定を実際に行っていこう。

ワークフロー設定を行う

 上で見た出張申請の処理の流れの図を基に、各状態で行えるアクションとその後の状態などについてまとめると次のようになる。

状態 行うこと 対応するアクション 次の状態 担当者
新規 出張申請の提出 提出 申請中 隊長/上司など
申請中 出張申請を承認 承認 承認済み なし(申請が完了して受理された)
申請中 出張申請を却下 却下 新規 作成者(申請の作成者に差し戻し)
承認済み なし なし なし なし
ワークフローの状態遷移

 新規に出張申請を作成したら(「新規」状態)、それを提出し、隊長(グループ)または直属の上司(ワークフロー属性)の判断を待つ。「申請中」状態の担当者は申請を承認または却下し、前者ならそこで申請が完了する。後者では、申請を「新規」状態にして申請者に差し戻す。この流れを[ワークフロー設定]ダイアログに反映すると次のようになる。

出張申請ワークフローのワークフロー設定 出張申請ワークフローのワークフロー設定
テーブルをワークフローで使用するには[ワークフローを使用する]チェックボックスをオンにしてから、状態の定義、状態遷移の指定を行う。

 ここでは[実行前の状態]/[アクション]/[条件]/[実行後の状態]はデフォルトのままとした。少し難しいのは[担当者]の指定方法だ。先ほどのユーザー登録時には「上司」として機能するグループ/ワークフロー属性として「隊長」グループと「上司」ワークフロー属性を作成した。ここでは「隊長」グループを「申請中」状態の「担当者」として設定してみる(「申請中」状態の「担当者」を決定するのは、一番上の行であることに注意)。[担当者]欄を見ると現在は、[全員]が「担当者」となっている。

 ではこれを変更してみよう。最初にグリッドの先頭行をクリックして選択する。次に下の[担当者]ドロップダウンをクリックする。

「申請中」状態の[担当者]の指定 「申請中」状態の[担当者]の指定

 表示されたドロップダウンリストには[グループ]タブと[カスタム]タブがあるが、ここでは[グループ]タブにある[隊長]を選択して、さらに右側でも[隊長]を選択する。これで「隊長」グループに属するヒーローが「申請中」状態の「担当者」となる。その下にある[上記のユーザーから一人を選択]ラジオボタンと[上記のユーザーの誰か]ラジオボタンは取りあえず前者を選択しておく(この効果は後で確認しよう)。

 同様にして、「承認済み」状態の「担当者」は[なし]にする(申請が完了しているので担当者は不要だ)。「新規」状態の「担当者」については[カスタム]タブにある[作成者]を選択する。

「新規」状態の「担当者」の指定 「新規」状態の「担当者」の指定

 以上で、ワークフローの設定は完了だ。次にワークフローを処理するページを作成する。

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。