ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

ワークフローの実装方法

2007-06-26 16:34:58 | Weblog

 上司が、申請書類等(企画書類なども)を眺めて、良ければ承認、悪ければ承認を拒否して、全員承認されたら、次の作業に入るという、承認のワークフローについてのお話。

 このワークフローの実装方法というのは、一般的(汎用的)に作成することが可能で、以下のように行います。




(1)ワークフローの流れを定義した、「承認フローテーブル」を作成します

 ある人が、ある申請書を作成したら、何番目に誰が承認するということを記述した、「承認フローテーブル」を作成します。項目は、以下のとおり
	申請者ID
	承認者ID
	申請書種別
	順位
	承認種別



 承認種別とは、同順位の人が、1人でも承認すればOKなのか、全員承認しないといけないのか(ただし、承認順は、同順位内だったら、だれから承認してもOK)をしめします。

(2)申請書を作成したら、「承認フローテーブル」を検索し、
   必要な承認者を、「申請承認者テーブル」にセットします

 申請書が作成されたら、その申請書の申請書種別と、申請者を元に「承認フローテーブル」を検索し、承認が必要な人を割り出し、その結果を、「申請承認者テーブル」にセットします。「申請承認者テーブル」の項目は、以下のとおり。
	申請者ID
	承認者ID
	申請書種別
	申請書ID
	順位
	承認種別
	承認状況 0:未承認、1:承認 2:拒否


このとき、順位-1で、承認者を申請者にしたレコードを追加しておくと、
承認拒否された場合、次の承認順位-1にすることで、申請者に戻ります。

(3)申請書にステータスという項目を追加、次の承認順位を入れます。

 申請時は、次に承認してもらう人の承認順位は1なので、ステータスに1を入れます。


(4)承認・拒否したら、「申請承認者テーブル」を更新します。
   その内容に応じて、ステータスに次の承認順位をセットします。

 まず、承認したら、「申請承認者テーブル」の承認状況を1に、
    拒否したら、承認状況を2にセットします。

 次に、申請書のステータスについて、
 拒否の場合は、申請者に戻るように、ステータスをー1にします。

 承認の場合、承認種別をみて、
   全員承認なのに、自分が承認してもまだ未承認の人がいれば
      ステータスは、そのままで、抜けます

   全員承認で、全員承認した場合、
   あるいは、1人でも承認すればいい場合   
      ステータスを1上げます。
      その1上げた状態で「申請承認者テーブル」を検索して、
      該当者がいなければ、すべての承認が終わったことになるので、
      ステータスを、承認終了のステータスにします。

 承認終了のステータスは、0にしたり、99とか、ある特定の数字にしたり、イロイロあると思います。


(5)こうすると、今承認しなければいけない人は、
   申請書のステータス=申請承認者テーブルの順位
   でわかります。


 終了していれば、承認終了のステータスになりますし、
 承認拒否の場合、-1です。
 なお、承認が拒否され、再登録する場合、「申請承認者テーブル」も、過去のものをクリアし、(2)からやり直すのが普通だと思います。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 開発の初めから順番に書いて... | トップ | 一般的な編集ソフトの作り方... »
最新の画像もっと見る

Weblog」カテゴリの最新記事