JP5011463B2 - ワークフロー制御システムおよびワークフロー制御プログラム - Google Patents

ワークフロー制御システムおよびワークフロー制御プログラム Download PDF

Info

Publication number
JP5011463B2
JP5011463B2 JP2006277180A JP2006277180A JP5011463B2 JP 5011463 B2 JP5011463 B2 JP 5011463B2 JP 2006277180 A JP2006277180 A JP 2006277180A JP 2006277180 A JP2006277180 A JP 2006277180A JP 5011463 B2 JP5011463 B2 JP 5011463B2
Authority
JP
Japan
Prior art keywords
record
update
family
instruction
action
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006277180A
Other languages
English (en)
Other versions
JP2008097243A (ja
Inventor
康弘 小畑
庸平 小高
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JSOL Corp
Original Assignee
JSOL Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JSOL Corp filed Critical JSOL Corp
Priority to JP2006277180A priority Critical patent/JP5011463B2/ja
Publication of JP2008097243A publication Critical patent/JP2008097243A/ja
Application granted granted Critical
Publication of JP5011463B2 publication Critical patent/JP5011463B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ワークフロー制御システムおよびワークフロー制御プログラムに関する。
会社内などで、申請書を電子的に回覧させて決済するための種々のワークフローシステムが提案されている。ワークフローシステムにおいては、承認権限をもつ社員の情報を、承認順、つまり、回議ルートにしたがってテーブルに格納しておき、申請書類を、テーブルに格納された回議ルートにしたがって、社員にメール送信するように構成されている。特許文献1には、人事異動などによる回議ルートの変更に柔軟に対応できるように、ルート・コードのそれぞれについて、リンク・データおよび文書の回議順を定めたルート・テーブル、文書の種類を特定する文書種類特定コードと、ルート・コードとを対応させたルート選択テーブル、並びに、構成員特定コードのそれぞれと、リンク・データとを対応させたアサイン・テーブルとを備えたワークフロー制御システムが開示されている。特許文献1に開示されたシステムによれば、アサイン・テーブルの構成員特定コードやリンク・データを修正・変更することにより、他のテーブルを変更することなく、人事異動などに伴う回議ルートの変更に対応することが可能となる。
また、特許文献2には、回議者、回議順を特定する回議順ID、回議者の権限タイプを示す権限タイプコードを特定する情報を含むレコードを格納した回議情報テーブルと、隣接する回議順IDの先後を示す情報を含むレコードを格納した回議順連結テーブルとを備え、回議情報テーブル中にレコードを挿入するとともに、必要に応じて回議順連結テーブルも更新することにより、回議者の追加に対応できるフロー制御システムが開示されている。このように、ワークフロー制御システムにおいては、組織変更にともなって、或いは、回議者の要望に応じて、回議者および回議順を含む回議フローが変更できるようになっている。
特開2003−114967号公報 特開2005−284765号公報
特許文献1や特許文献2に示すフロー制御システムにおいても、回議フローの変更の際には、テーブルの更新が必要となる。たとえば、特許文献2に示す技術では、回議者の追加や変更、或いは、回議順の変更のためには、回議情報テーブルおよび回議順連結テーブルが更新される。
また、通常の回議の際には、文書ごとに、当該文書が現在どの回議順に位置しているかを示すステータスを含むテーブルが利用され、このテーブルは、文書が、承認者や決裁者の操作にしたがって、文書テーブルのレコードのステータスが変更される。
従来、上述した回議フローの変更に伴うテーブルの更新や、回議における文書のテーブルにおけるステータスの変更の際には、申請者、承認者或いは決裁者が、クライアントの入力装置を操作して、回議者や回議順の変更、或いは、申請や承認を指示することに応答して、端末装置とネットワークを介して接続されたワークフロー制御システムにおいて、たとえば、他のトランザクションによるデータの更新を排除するために、いったん更新対象となるテーブル或いはテーブルのレコードをロックした上で、以下の処理が実行される。
(1)ワークフロー制御システムは、処理対象となるテーブルについて、ワークテーブルを記憶装置上に作成し、ワークテーブルを対象として、新たな回議者や回議順についてのレコードを追加し、或いは、該当レコードにおいてステータスを示す値を更新する。
(2)次いで、ワークフロー制御システムは、更新されたワークテーブルのレコードを、本来のテーブル(実テーブル)に書き換える。
上述したように、本来のテーブルのレコードを更新した後に、ロックを解除して、他のトランザクションによるテーブルのレコードの更新を認める。フロー上に存在する文書が増大するのにしたがって(つまり、ワークフローシステムの利用者が増大するのに従って)、他のトランザクションが、あるトランザクションにかかるテーブル更新に伴うロックによってロック待ちとなる状態が多発する可能性がある。
特に、上記(1)、(2)の作業中のテーブル或いはレコードのロックがボトルネックとなる。
本発明は、利用者が増大して、フロー上に存在する文書数などが大きくなっても、ワークテーブルの更新においてロック待ちが生じず、円滑なフロー制御を実現するシステムおよびプログラムを提供することを目的とする。
本発明の目的は、回議すべき申請書を特定する申請書IDと、申請書を回議すべきメンバおよびその回議順を示す情報と、申請書について何らかのアクションが求められるメンバを特定する情報と、を含むレコードを有する、1以上のテーブルからなるテーブル群を備え、申請書IDにて特定される申請書のデータを、前記テーブル群を構成する1以上のテーブルのレコードに基づいた回議順にしたがって特定されたメンバのクライアントに、ネットワークを介して送信することにより、前記申請書を回議するワークフロー制御サーバであって、
クライアントからの申請書IDを指定する情報の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、前記申請書IDにて特定されるテーブルのレコードの更新を制御するために、それぞれが1以上のテーブルから構成される、複数のワークテーブル群を生成可能なテーブル制御手段と、
前記クライアントからのメンバの追加、更新或いは削除の指示の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、回議順において隣接するメンバとメンバとの間に新たなメンバを追加し、ある回議順のメンバを変更し、或いは、ある回議順のメンバを削除することを示す指示を受信して、前記1以上のテーブルにおいて、追加すべきレコードおよびその位置、更新すべきレコードおよびその位置、或いは、削除すべきレコードおよびその位置を特定するテーブル管理手段と、を備え、
前記テーブル制御手段が、
前記申請書IDを指定する情報の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、前記受信した情報に基づく一連のレコード群をロックし、
前記複数生成可能なワークテーブル群のうち、何れか1つのワークテーブル群を生成し、当該ワークテーブル群を構成する1以上のワークテーブルに、前記1以上のテーブルでそれぞれロックされたレコード群を格納し、
前記テーブル管理手段からの、前記1以上のテーブルにおける、追加すべきレコードおよびその位置、更新すべきレコードおよびその位置、或いは、削除すべきレコードおよびその位置を示す情報に基づいて、前記生成されたワークテーブル群を構成するワークテーブルのそれぞれにおいて、レコードの追加、更新、削除を実行し、
前記ワークテーブル群を構成する1以上のワークテーブルのそれぞれの、追加、更新或いは削除されたレコードを、前記テーブル群を構成する1以上のテーブルに、それぞれ格納し、
その後、前記テーブル群を構成する1以上のテーブルにおいて、一連のレコード群のロックを解除するように構成されたことを特徴とするワークフロー制御サーバにより達成される。
また、本発明の目的は、回議すべき申請書を特定する申請書IDと、申請書を回議すべきメンバおよびその回議順を示す情報と、申請書について何らかのアクションが求められるメンバを特定する情報と、を含むレコードを有する、1以上のテーブルからなるテーブル群を備え、申請書IDにて特定される申請書のデータを、前記テーブル群を構成する1以上のテーブルのレコードに基づいた回議順にしたがって特定されたメンバのクライアントに、ネットワークを介して送信することにより、前記申請書を回議するワークフロー制御サーバであって、
クライアントからの申請書IDを指定する情報の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、前記申請書IDにて特定されるテーブルのレコードの更新を制御するために、それぞれが1以上のテーブルから構成される、複数のワークテーブル群を生成可能なテーブル制御手段と
前記クライアントからの申請書IDにて特定される申請書について、申請或いは承認を含むアクションの受信にしたがって、前記テーブル群を構成する1以上のテーブルを参照して、前記回議順において、申請書について次にアクションが求められるメンバを特定して、当該テーブルのレコードにおいて、申請書について何らかのアクションが求められるメンバを特定する情報を更新すべきレコードを特定するワークフロー進行処理手段と、を備え、
前記テーブル制御手段が、
前記申請書IDを指定する情報の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、前記受信した情報に基づく一連のレコード群をロックし、
前記複数生成可能なワークテーブル群のうち、何れか1つのワークテーブル群を生成し、当該ワークテーブル群を構成する1以上のワークテーブルに、前記1以上のテーブルでそれぞれロックされたレコード群を格納し、
前記ワークフロー進行処理手段からの、前記1以上のテーブルにおける、申請書について何らかのアクションが求められるメンバを特定する情報を更新すべきレコードの情報に基づいて、前記生成されたワークテーブル群を構成するワークテーブルのそれぞれにおいて、レコードを更新し、
前記ワークテーブル群を構成する1以上のワークテーブルのそれぞれの、更新されたレコードを、前記テーブル群を構成する1以上のテーブルに、それぞれ格納し、
その後、前記テーブル群を構成する1以上のテーブルにおいて、一連のレコード群のロックを解除するように構成されたことを特徴とするワークフロー制御サーバにより達成される。
本発明の好ましい実施態様においては、前記テーブル群を構成する1以上のテーブルのレコードが、当該レコードにかかるメンバが何らかのアクションをすべきであることを示すアクティブメンバフラグと、アクションが終了していることを示すアクション終了フラグを含み、前記ワークフロー進行処理手段が、前記テーブル群を構成する1以上のテーブルにおいて、アクティブメンバフラグおよび/またはアクション終了フラグを更新すべきレコードを特定し、
前記テーブル制御手段が、前記ワークテーブル群を構成する1以上のワークテーブルにおいて、前記特定されたレコードのアクティブメンバフラグおよび/またはアクション終了フラグを更新するように構成されたことを特徴とする請求項2に記載のワークフロー制御サーバ。
本発明の別の好ましい実施態様においては、前記テーブル群が、回議すべき申請書を特定する申請書IDと、申請書を回議すべきメンバを特定する情報と、申請書について何らかのアクションが求められるメンバを特定する情報とを含むレコードを有するメンバテーブル、並びに、前記申請書IDと、回議順において隣接する2つのメンバにおいて先行するスタートメンバを特定する情報と、後続するエンドメンバを特定する情報とを含むレコードを有するメンバ連結テーブルを含み、
前記テーブル制御手段が、複数生成可能なワークテーブル群のうちの、何れか1つのワークテーブル群として、前記メンバテーブルおよび前記メンバ連結テーブルのそれぞれのワークテーブルを含むワークテーブル群を生成するように構成されたことを特徴とする請求項1ないし3の何れか一項に記載のワークフロー制御サーバ。
本発明のさらに別の好ましい実施態様においては、前記テーブル群が、回議すべき申請書を特定する申請書IDと、申請書を回議すべきメンバを特定する情報と、当該メンバが属する、一定のメンバの集合体であるファミリを特定する情報と、申請書について何らかのアクションが求められるメンバを特定する情報とを含むレコードを有するメンバテーブル、前記申請書IDと、回議順において隣接する2つのメンバにおいて先行するスタートメンバを特定する情報と、後続するエンドメンバを特定する情報とを含むレコードを有するメンバ連結テーブル、前記申請書IDと、前記ファミリを特定する情報と、前記申請書について何らかのアクションが求められるメンバが属するファミリを特定する情報と、を含むファミリテーブル、並びに、前記申請書IDと、回議順において隣接する2つのファミリにおいて先行するスタートファミリを特定する情報と、後続するエンドファミリを特定する情報とを含むレコードを有するファミリ連結テーブルを含み、
前記テーブル制御手段が、複数生成可能なワークテーブル群のうちの、何れか1つのワークテーブル群として、前記メンバテーブル、メンバ連結テーブル、ファミリテーブルおよびファミリ連結テーブルのそれぞれのワークテーブルを含むワークテーブル群を生成するように構成されたことを特徴とする請求項1ないし3の何れか一項に記載のワークフロー制御サーバ。
また、本発明の好ましい実施態様においては、前記テーブル制御手段が、前記クライアントと前記制御サーバとの間のセッションについて、前記制御サーバが付与したセッションIDに基づいて、前記複数生成可能なワークテーブル群のうち、何れか1つのワークテーブル群を生成することを特徴とする請求項1ないし5の何れか一項に記載のワークフロー制御サーバ。
さらに、本発明の目的は、回議すべき申請書を特定する申請書IDと、申請書を回議すべきメンバおよびその回議順を示す情報と、申請書について何らかのアクションが求められるメンバを特定する情報と、を含むレコードを有する、1以上のテーブルからなるテーブル群を備え、申請書IDにて特定される申請書のデータを、前記テーブル群を構成する1以上のテーブルのレコードに基づいた回議順にしたがって特定されたメンバのクライアントに、ネットワークを介して送信することにより、前記申請書を回議するワークフロー制御サーバにおいて、前記ワークフロー制御サーバに、
クライアントからの申請書IDを指定する情報の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、前記申請書IDにて特定されるテーブルのレコードの更新を制御するために、それぞれが1以上のテーブルから構成される、複数のワークテーブル群を生成可能なテーブル制御ステップ、並びに、
前記クライアントからのメンバの追加、更新或いは削除の指示の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、回議順において隣接するメンバとメンバとの間に新たなメンバを追加し、ある回議順のメンバを変更し、或いは、ある回議順のメンバを削除することを示す指示を受信して、前記1以上のテーブルにおいて、追加すべきレコードおよびその位置、更新すべきレコードおよびその位置、或いは、削除すべきレコードおよびその位置を特定するテーブル管理ステップを実行させ、かつ、
前記ワークフロー制御サーバに、
前記申請書IDを指定する情報の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、前記受信した情報に基づく一連のレコード群をロックするステップと、
前記複数生成可能なワークテーブル群のうち、何れか1つのワークテーブル群を生成し、当該ワークテーブル群を構成する1以上のワークテーブルに、前記1以上のテーブルでそれぞれロックされたレコード群を格納するステップと、
前記テーブル管理手段からの、前記1以上のテーブルにおける、追加すべきレコードおよびその位置、更新すべきレコードおよびその位置、或いは、削除すべきレコードおよびその位置を示す情報に基づいて、前記生成されたワークテーブル群を構成するワークテーブルのそれぞれにおいて、レコードの追加、更新、削除を実行するステップと、
前記ワークテーブル群を構成する1以上のワークテーブルのそれぞれの、追加、更新或いは削除されたレコードを、前記テーブル群を構成する1以上のテーブルに、それぞれ格納するステップと、
その後、前記テーブル群を構成する1以上のテーブルにおいて、一連のレコード群のロックを解除するステップと、を実行させることを特徴とするワークフロー制御プログラムにより達成される。
また、本発明の目的は、回議すべき申請書を特定する申請書IDと、申請書を回議すべきメンバおよびその回議順を示す情報と、申請書について何らかのアクションが求められるメンバを特定する情報と、を含むレコードを有する、1以上のテーブルからなるテーブル群を備え、申請書IDにて特定される申請書のデータを、前記テーブル群を構成する1以上のテーブルのレコードに基づいた回議順にしたがって特定されたメンバのクライアントに、ネットワークを介して送信することにより、前記申請書を回議するワークフロー制御サーバにおいて、前記ワークフロー制御サーバに、
クライアントからの申請書IDを指定する情報の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、前記申請書IDにて特定されるテーブルのレコードの更新を制御するために、それぞれが1以上のテーブルから構成される、複数のワークテーブル群を生成可能なテーブル制御ステップ、並びに、
前記クライアントからの申請書IDにて特定される申請書について、申請或いは承認を含むアクションの受信にしたがって、前記テーブル群を構成する1以上のテーブルを参照して、前記回議順において、申請書について次にアクションが求められるメンバを特定して、当該テーブルのレコードにおいて、申請書について何らかのアクションが求められるメンバを特定する情報を更新すべきレコードを特定するワークフロー進行処理手段を実行させ、かつ、
前記ワークフロー制御サーバに、
前記申請書IDを指定する情報の受信にしたがって、前記テーブル群を構成する1以上のテーブルにおいて、前記受信した情報に基づく一連のレコード群をロックするステップと、
前記複数生成可能なワークテーブル群のうち、何れか1つのワークテーブル群を生成し、当該ワークテーブル群を構成する1以上のワークテーブルに、前記1以上のテーブルでそれぞれロックされたレコード群を格納するステップと、
前記ワークフロー進行処理手段からの、前記1以上のテーブルにおける、申請書について何らかのアクションが求められるメンバを特定する情報を更新すべきレコードの情報に基づいて、前記生成されたワークテーブル群を構成するワークテーブルのそれぞれにおいて、レコードを更新するステップと、
前記ワークテーブル群を構成する1以上のワークテーブルのそれぞれの、更新されたレコードを、前記テーブル群を構成する1以上のテーブルに、それぞれ格納するステップと、
その後、前記テーブル群を構成する1以上のテーブルにおいて、一連のレコード群のロックを解除するステップと、を実行させることを特徴とするワークフロー制御プログラムにより達成される。
好ましい実施態様においては、前記テーブル群を構成する1以上のテーブルのレコードが、当該レコードにかかるメンバが何らかのアクションをすべきであることを示すアクティブメンバフラグと、アクションが終了していることを示すアクション終了フラグを含み、
前記ワークフロー進行処理ステップにおいて、前記ワークフロー制御サーバに、前記テーブル群を構成する1以上のテーブルにおいて、アクティブメンバフラグおよび/またはアクション終了フラグを更新すべきレコードを特定するステップを実行させ、かつ、
前記ワークフロー制御サーバに、
前記ワークテーブル群を構成する1以上のワークテーブルにおいて、前記特定されたレコードのアクティブメンバフラグおよび/またはアクション終了フラグを更新するステップを実行させる。
別の好ましい実施態様においては、前記テーブル群が、回議すべき申請書を特定する申請書IDと、申請書を回議すべきメンバを特定する情報と、申請書について何らかのアクションが求められるメンバを特定する情報とを含むレコードを有するメンバテーブル、並びに、前記申請書IDと、回議順において隣接する2つのメンバにおいて先行するスタートメンバを特定する情報と、後続するエンドメンバを特定する情報とを含むレコードを有するメンバ連結テーブルを含み、
前記ワークフロー制御サーバに、複数生成可能なワークテーブル群のうちの、何れか1つのワークテーブル群として、前記メンバテーブルおよび前記メンバ連結テーブルのそれぞれのワークテーブルを含むワークテーブル群を生成するステップを実行させる。
さらに別の好ましい実施態様においては、前記テーブル群が、回議すべき申請書を特定する申請書IDと、申請書を回議すべきメンバを特定する情報と、当該メンバが属する、一定のメンバの集合体であるファミリを特定する情報と、申請書について何らかのアクションが求められるメンバを特定する情報とを含むレコードを有するメンバテーブル、前記申請書IDと、回議順において隣接する2つのメンバにおいて先行するスタートメンバを特定する情報と、後続するエンドメンバを特定する情報とを含むレコードを有するメンバ連結テーブル、前記申請書IDと、前記ファミリを特定する情報と、前記申請書について何らかのアクションが求められるメンバが属するファミリを特定する情報と、を含むファミリテーブル、並びに、前記申請書IDと、回議順において隣接する2つのファミリにおいて先行するスタートファミリを特定する情報と、後続するエンドファミリを特定する情報とを含むレコードを有するファミリ連結テーブルを含み、
前記ワークフロー制御サーバに、複数生成可能なワークテーブル群のうちの、何れか1つのワークテーブル群として、前記メンバテーブル、メンバ連結テーブル、ファミリテーブルおよびファミリ連結テーブルのそれぞれのワークテーブルを含むワークテーブル群を生成するステップを実行させる。
また、好ましい実施態様においては、前記テーブル制御ステップにおいて、前記ワークフロー制御サーバに、前記クライアントと前記制御サーバとの間のセッションについて、前記制御サーバが付与したセッションIDに基づいて、前記複数生成可能なワークテーブル群のうち、何れか1つのワークテーブル群を生成するステップを実行させる。
本発明によれば、利用者が増大して、フロー上に存在する文書数などが大きくなっても、ロック待ちが生じず、円滑なフロー制御を実現するシステムおよびプログラムを提供することが可能となる。
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本発明の実施の形態にかかるワークフロー制御サーバを含む全体構成を示すブロックダイヤグラムである。図1に示すように、ワークフロー制御サーバ(以下、単に「制御サーバ」とも称する。)10には、LAN、WANなどのネットワーク12を介して、クライアント14−1、14−2、・・・が接続できるようになっている。本実施の形態においては、制御サーバ10を、企業の社員が、申請や承認の必要な申請書の回議に利用する。クライアント14−1、14−2、・・・のそれぞれは、社員が使用し、ネットワーク12を介して、制御サーバ10にアクセスし、申請書のデータを受け取って、申請書の所定の項目に入力するとともに、申請や承認など、申請書に必要な処理を施すことができるようになっている。なお、以下、特に役職などを限定しない場合に、クライアント14を操作して、申請書を作成し、或いは、申請書を申請、承認等する者を、単に「社員」と称する。
図1に示すように、制御サーバ10は、企業に属する社員、部署、役職などに関する定義情報である各種マスタを記憶したマスタデータベース(DB)16と、回議する申請書に関する種々のテーブルを記憶したテーブルDB18とを備えている。これらマスタDB16およびテーブルDB18に記憶されたマスタやテーブルについては、後に詳述する。また、テーブルの更新の際に利用されるワークテーブルは、制御サーバ10の記憶装置中に生成される。なお、本実施の形態において、記憶装置は、物理的には制御サーバ10のハードディスク装置やRAMなどのメモリを含む。
制御サーバ10は、ネットワークを介したクライアント14からの指示に応答して、各種テーブルのレコードの生成や更新を、後述するDB制御部24に指示するテーブル管理部20と、テーブルDB18に記憶されたテーブルのレコードを参照して、申請書を回議順にしたがって回議する(つまりフローを進行させる)フロー制御部22と、テーブル管理部20やフロー管理部22による指示に基づいて、トランザクションを制御するとともに、記憶装置中にワークテーブルを生成して、テーブルのレコード更新を実現するDB制御部24と、を備えている。また、制御サーバ10は、クライアント14の表示装置の画面上に表示すべき画像を生成して、クライアント14に送信し、また、クライアント14からの指示を受け入れるユーザインタフェース(I/F)26を備えている。
図2は、本実施の形態にかかる制御サーバ10における処理の概要、並びに、マスタDB16およびテーブルDB18に格納されたマスタおよびテーブルを示す図である。図2に示すように、制御サーバ10においては、社員がクライアント14を操作して、ログインし(ステップ201)、クライアント14の表示装置の画面上に表示された画像を参照して、申請書を作成する(ステップ202)。申請書が完成すると、社員によるクライアント14の操作にしがって、申請書のデータ(各種テーブルのレコード)が、テーブルDB18中のテーブルに保存される(ステップ203)。ステップ201〜203が、社員による申請書の作成に応答して実行される処理の概略である。
その一方、社員が申請書を承認或いは決裁する際には、社員のクライアント14の操作に応答して、制御サーバ10は、既存の申請書のデータをテーブルDB18のテーブルから読み出して、クライアント14の表示装置の画面上に表示する(ステップ211)。社員はクライアント14の表示装置の画面上に表示された申請書を参照して、申請書が承認或いは決裁可能であれば、入力装置を操作して、承認或いは決裁の指示を入力する。これに応答して、制御サーバ10は、テーブルDB18中の必要なテーブルのレコードを生成し、或いは、レコードを更新する(ステップ212)。これら制御サーバ10における処理については後に詳述する。
図2に示すように、本実施の形態においては、たとえば、マスタDB16は、社員マスタ101、部署マスタ102、役職マスタ103、役割マスタ104、アサインマスタ105、文書マスタ106、ルートマスタ107、ステータスマスタ108およびアクションマスタ109を記憶する。また、テーブルDB18は、実申請書テーブル151、履歴テーブル152、ファミリテーブル153、メンバテーブル154、ファミリ連結テーブル155、メンバ連結テーブル156および添付書類テーブル157を記憶する。
図3は、マスタDB16に記憶されたマスタのそれぞれのレコードの項目の例を示す図である。図3(a)に示すように、社員マスタのレコードは、社員コード、社員名称およびログインIDという項目を有する。図3(b)に示すように、部署マスタのレコードは、部署コードおよび部署名称という項目を有する。図3(c)に示すように、役職マスタのレコードは、役職コード、役職階級および役職名称という項目を有する。図3(d)に示すように、役割マスタのレコードは、役割コードおよび役割名称という項目を有する。図3(e)に示すように、アサインマスタのレコードは、社員コード、部署コード、役職コードおよび役割コードを有する。
ログインの際には、制御サーバ10が社員マスタを参照して、社員がクライアント14を操作して入力した社員コードおよびIDと、社員マスタに記憶された、入力された社員コードで特定されるレコード中のログインIDとが比較される。また、アサインマスタのレコードには、ある社員の、部署、役職、役割が関連付けられて記憶されている。したがって、制御サーバ10の処理においては、まずアサインマスタを参照して、アサインマスタのレコードから、社員マスタ、部署マスタ、役職マスタ或いは役割マスタのレコードを特定することが可能となる。
また、本実施の形態においては、マスタDB16には、さらに、文書マスタ、ルートマスタ、権限マスタ、ステータスマスタ、アクションマスタなどが含まれる。図3(f)に示すように、文書マスタは、文書コード、文書区分コード、文書名称および文書データ形式コードという項目を有する。図3(g)に示すように、ルートマスタのレコードは、ルートコード、ルート名および文書区分コードという項目を有する。図3(h)に示すように、権限マスタのレコードは、権限コードおよび権限名称という項目を有する。
また、図3(i)に示すように、ステータスマスタのレコードは、ステータスコード、文書区分コード、ステータスタイプコードおよびステータス名称という項目を有し、図3(j)に示すように、アクションマスタのレコードは、アクションコード、文書区分コード、アクションタイプコード、アクション名称、アクション後ステータスコードという項目を有する。
上述したマスタのレコードの項目は、一例にすぎず、各マスタは、図3に示した項目以外の項目を含み得ることは言うまでも無い。
本実施の形態においては、社員が、クライアント14の入力装置を操作して、必要な情報を入力すると、制御サーバ10は、文書を回議するために必要な種々のテーブルのレコードを生成して、生成された種々のテーブルのレコードを、テーブルDB18に記憶する。
図4は、テーブルDB18に記憶されたテーブルのそれぞれのレコードの項目を示す図である。図4(a)に示すように、実申請書テーブルのレコードは、申請書ID、文書コード、ステータスコード、ヘッダ社員コード、ヘッダ部署コード、ヘッダ役職コード、起案者社員コード、起案者部署コード、および、起案者役職コードという項目を有する。図4(b)に示すように、履歴テーブルのレコードは、申請書ID,履歴ID、社員コード、部署コード、役職コード、権限コード、アクションコード、および、アクション実行日時という項目を有する。図4(c)に示すように、ファミリテーブルのレコードは、申請書ID、ファミリID、アクティブファミリフラグおよびアクション終了フラグという項目を有する。図4(d)に示すように、メンバテーブルのレコードは、申請書ID、ファミリID、メンバID、アクティブメンバフラグ、アクション終了フラグ、権限コード、社員コード、部署コード、役職コードおよび役割コードという項目を有する。図4(e)に示すように、ファミリ連結テーブルは、申請書ID、スタートファミリIDおよびエンドファミリIDという項目を有する。図4(f)に示すように、メンバ連結テーブルは、申請書ID、ファミリID、スタートメンバIDおよびエンドメンバIDという項目を有する。また、図4(g)に示すように、添付書類テーブル(f)は、申請書ID,添付書類ID、ファイル名、添付ファイルおよび添付者社員コードという項目を有する。なお、上述したテーブルのレコードの項目も、一例にすぎず、各テーブルは、図4に示した項目以外の項目を含み得ることは言うまでも無い。
図4(a)〜(g)に示されるように、各テーブルのレコードのキー項目は申請書IDであり、申請書IDによって各テーブル中のレコードを特定できるようになっている。実申請書テーブルのレコードは、申請書ごとに1つだけ存在する。実申請書テーブルのレコードにより、ある社員(起案者)が作成し、回議する申請書を特定することができる。また、履歴テーブルのレコードには、承認や決裁した社員について、その行為(アクション)などが格納される。
さらに、本実施の形態においては、申請書IDで規定される申請書の回議順は、ファミリテーブル、メンバテーブル、ファミリ連結テーブルおよびメンバ連結テーブルのレコードにより特定される。後に詳述するが、本実施の形態においては、回議順を規定するために、1以上のファミリ、および、ファミリ内のメンバが設けられている。図5(a)は、ある申請書の回議順の例を示す図である。図5(a)に示す例では、3つのファミリ(「ファミリ0」〜「ファミリ2」)が存在している。「ファミリ0」には、「メンバ0」として「申請者A」が存在し、「ファミリ1」には、「メンバ0」として「承認者B」が存在するとともに、「メンバ1」として「承認者C」が存在し、「ファミリ2」には、「メンバ0」として「決裁者E」が存在する。図6(a)は、図5(a)に示す回議順を表すメンバテーブルおよびファミリテーブルのレコードの部分を示す図である。申請書IDは全てのレコードで共通であるため図示していない。また、回議順を理解するために特に必要ではない項目についても、図示していない。
メンバテーブルにおいては、回議順に存在する社員のそれぞれのファミリID、メンバIDなどを含むレコードが格納されている。たとえば、符号601に示すレコードは、「ファミリ0」の「メンバ0」であることがわかる。図6(a)において、AMFは、アクティブメンバフラグを表し、FMFは、アクション終了フラグを表す。これらフラグについては後述する。また、ファミリテーブルにおいては、各ファミリのレコードは、AFF(アクティブファミリフラグ)およびFFF(アクション終了フラグ)を含む。図6(a)において、 「ファミリ0」に関するファミリテーブルのレコードを符号621で示し、対応するメンバテーブルのレコードを符号601で示す。また、「ファミリ1」に関するファミリテーブルのレコードを符号622で示し、対応するメンバテーブルのレコードを符号602で示す。さらに、「ファミリ2」に関するファミリテーブルのレコードを符号623で示し、対応するメンバテーブルのレコードを符号603で示す。
図6(a)においては示さないが、図5(a)の回議順を表すために、ファミリ連結テーブルおよびメンバ連結テーブルのレコードも生成される。ファミリ連結テーブルのレコードにおける「スタートファミリID」は連結される2つのファミリのうち、スタート側(上流側)のファミリのファミリIDを示す。また、「エンドファミリID」は、連結される2つのファミリのうち、エンド側(下流側)のファミリのファミリIDを示す。図5(a)、図6(a)に示す例では、ファミリ連結テーブルには、「スタートファミリID」が「0」で「エンドファミリID」が「1」であるようなレコード、および、「スタートID」が「1」で「エンドファミリID」が「2」であるようなレコードが含まれる。
同様に、メンバ連結テーブルのレコードにおける「スタートメンバID」は連結される2つのメンバのうち、スタート側(上流側)のメンバのメンバIDを示す。また、「エンドメンバID」は、連結される2つのメンバのうち、エンド側(下流側)のメンバのメンバIDを示す。
以下、図2などを参照して、本実施の形態にかかる制御サーバを利用した、回議のための申請書の作成および申請、並びに、承認や決裁の権限をもつ社員による承認、決裁の処理の概略について説明する。
申請者となる社員は、クライアント14を操作してログインIDを入力して、ログインする。ログインの際には、制御サーバ10は、社員マスタ101を参照して、ログインした社員に関するレコード見出して、入力されたログインIDと、社員マスタ101のレコード中のログインIDとを照合してログインさせるか否かを判断する。また、社員によるクライアント14の操作に応答して、制御サーバ10は、文書マスタ106から所定の文書のコードや、ルートマスタ107からのレコードを取得して、文書などを含む初期画面を作成してクライアント14に送信する。社員は、クライアント14を操作して、ルートマスタのレコードの情報などに基づいて、回議すべき社員を特定していく。制御サーバ10は、クライアント14からの指示にしたがって、アサインマスタ105などを参照して、文書を回議すべき他の社員の情報をクライアント14に提示すればよい。
申請書とするべき文書、回議すべき社員および回議順の情報が確定すると、社員からの入力やマスタの参照結果に基づいて、実申請書テーブル151、ファミリテーブル153、メンバテーブル154、ファミリ連結テーブル155およびメンバ連結テーブル156のレコードが生成される。ここで、実申請書テーブル151は、申請書を特定するものであり、ファミリテーブル153、メンバテーブル153、ファミリ連結テーブル155およびメンバ連結テーブル156は、回議順を特定するとともに、回議中の申請書のステータス(現在誰の承認或いは決裁が済んでおり、誰の承認を待つ状態であるか)を示すものとなる。
また、申請書に添付書類があれば、添付書類テーブル156のレコードも生成される。その一方、実申請書テーブルのレコードが生成された段階では、履歴テーブル152のレコードは生成されず、申請書が申請され、また、承認や決裁された場合に、制御サーバ10により、履歴テーブル152のレコードが生成される。
フロー進行処理部22は、ファミリテーブル153、メンバテーブル154、ファミリ連結テーブル155およびメンバ連結テーブル156を参照して、回議において次に承認或いは決済を求めるべき社員を特定して、その社員に対してメールを送信する。
メールを受信した社員は、クライアント14を操作して、制御サーバ10にアクセスして、承認或いは決裁すべき申請書の情報を取得すべく、制御サーバ10に指示を与える。これに応答して、実申請書テーブル151のレコードに示す申請書データを、クライアント14の表示装置の画面上に表示し(ステップ211)、社員による承認或いは決裁を促す。
社員による承認或いは決裁を受けると、制御サーバ10は、承認或いは決裁にしたがって、実申請書テーブル、ファミリテーブル、メンバテーブルなどのレコードを更新するとともに、承認或いは決裁した社員に関する履歴テーブルのレコードを生成する。
上述したように、申請者となる社員が申請書を作成した際には、テーブルDB18中に各種のテーブルが作成される。また、承認或いは決裁すべき社員による承認や決裁がなされた際には、実申請書テーブル、ファミリテーブル、メンバテーブルなどのレコードの更新や、履歴テーブルのレコードの追加が行われる。
さらに、本実施の形態においては、申請者となる社員(或いは承認者となる社員であっても良い)が、回議順を変更し、或いは、承認者や決裁者となる社員を削除或いは追加する場合に、これに伴うテーブル(たとえば、ファミリテーブル、メンバテーブル、メンバ連結テーブル)のレコードの追加、削除、更新も行われる。
特に、回議順の変更に伴うテーブルのレコードの更新など、或いは、承認や決裁の際のテーブルの更新などは、制御サーバ10に対して大きな負荷を与えることになるため、本実施の形態では、後述する手法で負荷を分散して、円滑な処理の進行を実現している。
まず、回議順の変更等に伴うテーブルのレコードの更新について説明する。図7は、図5(a)に示す回議順の状態を示すレコードが各種テーブル(たとえば、図6(a)参照)に記憶された状態で、申請者となる社員によるクライアント14に応答して、制御サーバ10により生成され、クライアント14の画面上に表示された経費申請を行うための経費申請画面の例を示す図である。
図7においては、実申請書テーブルの該当レコードの情報などに基づいて、申請者の情報が表示されるとともに(符号701参照)、申請書自体を作成することができるようになっている(符号702参照)。また、画面の下部には、申請者、承認者、決裁者およびその回議順の表示欄が設けられている(符号703参照)。図7において、「回0」と表されている欄711が、図5(a)や図6(a)における「ファミリ0(図5(a)の符号501参照)」に相当する。また、「回1」および「回2」と表されている欄712、713が、それぞれ、「ファミリ1(図5(a)の符号502参照)」および「ファミリ2(図5(a)の符号503参照)」に相当する。また、欄712および欄713には、メンバを追加するためのボタン722、723が設けられている。社員は、クライアント14を操作して、ボタン722或いは723をオンすることで、ボタンのオンにかかるファミリにメンバを追加することができる。
たとえば、クライアント14の操作によりボタン722がオンされると、制御サーバ10のテーブル管理部20は、アサインマスタ105などを参照して、当該ファミリに追加されるメンバとなりえる社員のリストを作成して、クライアント14の画面上に表示する。社員がクライアント14を操作して、リスト中の社員を指定すると、制御サーバ10は、そのファミリにメンバとして指定された社員が追加された状態を示す画像を作成して、これをクライアント14の画面上に表示する。また、制御サーバ10のテーブル管理部20は、指定された社員の社員コードを一時的に記憶しておく。この社員コードは、「申請」ボタンまたは「一時保存」ボタンがオンされたときの、メンバテーブル、ファミリテーブルおよびメンバ連結テーブルの更新のために使用される。
図8は、画面上「回1」と表されたファミリである「ファミリ1」に承認者が追加された状態を示す、経費申請画面の例を示す図である。この例は、図5(b)に示す回議順の状態に相当する。欄803において、「回1」と表示されたファミリには、「承認者D」がメンバとして追加されている。図5(b)においても、「ファミリ1」には、「メンバ2」として「承認者D」が追加されている(符号512参照)。
図8に示す画面が表示された状態で、社員がクライアント14を操作して、「申請」ボタンまたは「一時保存」ボタンをオンすると、制御サーバ10のテーブル管理部10、および、その動作を後に詳述するDB制御部24は、これに応答して、回議順が、欄803に示された状態と合致するように、メンバテーブル中に追加されたメンバに関するレコードを追加する。図6(b)は、レコードが追加された状態のメンバテーブルおよびファミリテーブルを示す図である。この例では、既存のファミリにメンバを追加するだけであったので、ファミリテーブルに変更はない。図6(b)に示すメンバテーブルにおいて、ファミリIDが「1」である(つまり、「ファミリ1」である)レコード群(符号612参照)において、「社員コードD」という社員コードを含むレコードが追加されている。
無論、新たにファミリが追加される場合も考えられる。この場合には、メンバテーブルおよびファミリテーブルにレコードが追加される。また、ファミリ連結テーブルのレコードも追加および更新される。また、回議順からメンバを削除する場合には、メンバテーブルからレコードが削除される。ファミリ全体が削除される場合には、メンバテーブルに加えて、ファミリテーブルやファミリ連結テーブルのレコードも削除、更新等される。
上述したメンバテーブルなどのレコードの更新における具体的な処理については後述する。
次に、承認や決裁の際のテーブルの更新について説明する。以下、図5(b)に示す回議順に基づいて、図6(b)に示すようなレコードを格納したメンバテーブルおよびファミリテーブルがテーブルDB18に記憶された状態を考える。図9〜図10は、申請前から最終的な決裁にいたるまでのメンバテーブルおよびファミリテーブルの状態の例を示す図である。なお、図9、図10においても、処理において参照されない項目や、処理に無関係なレコードは省略されている。
申請者である社員Aにより申請がされる以前には、メンバテーブルおよびファミリテーブルは、図9(a)に示す状態となっている。メンバテーブルにおいて、アクティブメンバフラグ(AMF)は、現在文書が、そのレコードに格納された社員の元にあり、当該社員による何らかのアクション(たとえば、申請、承認、決裁)を待っている状態を示している。同様に、ファミリテーブルにおいて、アクティブファミリフラグは、現在文書が、そのファミリに属する社員の元にあることを示している。したがって、申請前の状態であれば、ワークテーブルにおいて、文書を申請すべき「社員A(社員コード=Aの社員)」のレコードにおいて、AMFが「1」であり、また、アクションが終了している社員は存在しないため、各レコードのFMFは「0」となっている。また、ファミリテーブルにおいて、文書を申請すべき「社員A」が属するファミリである「ファミリ0(ファミリID=0のファミリ)」のレコードにおいて、AFFが「1」である。また、全てのメンバによるアクションが終了しているファミリは存在しないため、各レコードのFFFは「0」となっている。
図11は、テーブル更新処理の処理ロジックを示すフローチャートである。後に、実際のテーブルの更新処理と関連させて再度説明するため、ここでは、主として、フラグのセットおよびクリアについて説明する。また、この例では、単純化するため、社員はクライアントを操作して、申請書を申請し、承認する場合、つまり、申請書が上流から下流に流れていく場合について説明する。実際には、申請書は承認者により承認されず、申請者に戻るように、下流から上流に戻る場合もある。また、実際の回議においては、回議順で次の順番に位置する社員を飛ばして、さらにその次に位置する社員など他の社員に申請書が送られる場合や、回議において同時に複数の社員に申請書が送られる場合などがあり得る。
制御サーバ10のフロー進行処理部22は、メンバテーブル、ファミリテーブル、ファミリ連結テーブルおよびメンバ連結テーブルを参照して、アクションのあった社員の次の回議順にあるような社員を特定する(ステップ1101)。次いで、フロー進行処理部22は、メンバテーブルを参照して、次の回議順にある社員が、現在の回議順にある社員と同じファミリに属しているか否かを判断する(ステップ1102)。ステップ1102でイエス(Yes)と判断された場合には、フロー進行処理部22は、メンバテーブルにおいて、現在の回議順にある社員のレコードについて、そのFMFを「1」にセットするとともに、AMFを「0」にリセットする)(ステップ1103)。
その一方、ステップ1102でノー(No)と判断された場合には、フロー進行処理部22は、メンバテーブルにおいて、現在の回議順にある社員のレコードについて、そのFMFを「1」にセットするとともに、AMFを「0」にリセットする(ステップ1104)。このステップ1104は、ステップ1103と同様の処理である。さらに、フロー進行処理部22は、メンバテーブルにおいて、次の回議順にかかるファミリの全メンバ(つまり、次の回議順にかかるファミリに属する全社員)のレコードについて、AMFを「1」にセットする(ステップ1105)。また、フロー進行処理部22は、ファミリテーブルにおいて、現在の回議順にある社員が属するファミリのレコードについて、FFFを「1」にセットするとともに、「AFF」を「0」にリセットする(ステップ1106)。さらに、フロー進行処理部22は、ファミリテーブルにおいて、次の回議順にある社員が属するファミリのレコードについて、AFFを「1」にセットする(ステップ1107)。
このように、本実施の形態においては、回議される申請書が位置しているファミリに属するメンバについては、メンバテーブルのレコード中、AMFが「1」となっている。また、回議が終了した(つまり、必要なアクションが実行済み)のメンバについては、メンバテーブルのレコード中、FMFが「1」となっている。また、回議される申請書が位置しているファミリについては、ファミリテーブルの該当レコード中、AFFが「1」となっている。また、回議が終了した(つまり、所属するメンバの全てのアクションが実行済み)のファミリについては、FFFが「1」となっている。本実施の形態では、これらフラグにより、現在申請書が位置しており、アクションが必要となっているメンバや、当該メンバが属するファミリ、或いは、回議が終了したメンバおよびファミリを特定することができる。
たとえば、「社員A」がクライアントを操作して、申請書を申請すると、制御サーバ10のフロー進行処理部22は、メンバテーブル、ファミリテーブル、メンバ連結テーブルおよびファミリ連結テーブルを参照して、次の回議順の社員を特定する。この例では、「社員B(社員コード=Bの社員)」が次の回議順の社員となる。フロー進行処理部22がメンバテーブルを参照すると、次の回議順の「社員B」は、「社員A」と同一ファミリでないことがわかるため(図11のステップ1102でノー)、以下、ステップ1104から1107の処理が実行されて、メンバテーブルおよびファミリテーブルのフラグが書き換えられる(図9(b)の符号901、902参照)。テーブルの更新が終了すると、次の回議順の「社員B」のクライアントに対してメールが送信され、「社員B」による承認待ちの状態となる。
「社員B」がクライアントを操作すると、制御サーバ10が経費申請書承認画面(図示せず)をクライアントに送信し、クライアントの表示装置上に表示する。経費申請書承認画面は、経費申請画面(図7参照)に類似するものである。
「社員B」がクライアントを操作して、申請書を承認すると、制御サーバ10のフロー進行処理部22は、メンバテーブル、ファミリテーブル、メンバ連結テーブルおよびファミリ連結テーブルを参照して、次の回議順の社員を特定する。この例では、「社員C(社員コード=Cの社員)」が次の回議順の社員となる。フロー進行処理部22がメンバテーブルを参照すると、次の回議順の「社員C」は、「社員B」と同一のファミリであることがわかるため、ステップ1102でイエス(Yes)と判断されメンバテーブルの一部レコードのフラグが更新される(図9(c)の符号903参照)。
図10(a)に示すように、次の回議順の「社員C(社員コード=C)」の承認時には、「社員C」とさらに次の回議順の「社員D(社員コード=Dの社員)」とが同一のファミリであるため、メンバテーブルの一部のレコードが更新される(符号1001参照)。図10(b)に示すように、「社員D(社員コード=D)の社員」の承認時には、「社員D」とさらに次の回議順の「社員E(社員コード=Eの社員)」とが同一のファミリではないため、メンバテーブルおよびファミリテーブルのレコードのフラグが更新される(符号1002、1003参照)。図10(c)は、社員Eの決裁時に、フロー進行処理部22により更新されたメンバテーブルおよびファミリテーブルを示す。図11のフローには示していないが、次の回議順が存在しない場合には、フロー進行処理部22は、メンバテーブルおよびファミリテーブルにおいて、決裁或いは承認した社員のレコードのFMFおよびFFFをそれぞれ「1」にするとともに、AMFおよびAFFを「0」にリセットする。
このように、回議順の追加や変更、或いは、申請者による申請や承認者による承認の際には、メンバテーブルおよびファミリテーブルのレコードの更新が生じる。そこで、本実施の形態においては、テーブルDB18をアクセスしてレコードを実際に更新するDB制御部24を設け、テーブル管理部20やフロー進行処理部22はDB制御部24にレコードの更新を指示するように構成される。
以下、DB制御部24による処理について説明する。図12は、制御サーバ10のDB制御部24、および、テーブルDB18などを含む記憶装置の構成を示すブロック図である。図12に示すように、記憶装置1200は、テーブルDB18を含む。図12には図示しないが、記憶装置1200は、マスタDB16も含む。ここにいう記憶装置1200は、物理的には、制御サーバ10のハードディスク装置およびRAMなどのメモリを含む。
図12に示すように、記憶装置1200には、さらに、複数のワークテーブル群を含み得る。本実施の形態においては、DB制御部24により、記憶装置1200中に10個のワークテーブル群1201−1〜1201−10が作成され得る。ワークテーブル群(たとえば、ワークテーブル群1201)には、テーブルDB18中のテーブルの所定数のレコードがコピーされ、或いは、新規に所定項目を有する所定数のレコードが作成される。
図13および図14は、本実施の形態にかかる制御サーバ10において、テーブルDB18のテーブルのレコードを作成する際に実行される処理を示すフローチャートである。図13に示すように、
ユーザI/F26が、クライアント14からのログオンを受信すると(ステップ1301)、セッションIDを採番する(ステップ1302)。セッションIDはクライアント14にも送信され、このセッションにおいては、クライアント14は受信したセッションIDを利用する。
なお、クライアントのログオンの際には制御サーバ10はユーザ認証を実行する。ユーザ認証などの後、ユーザI/F26が、クライアント14から申請書選択情報を受信すると、たとえば、テーブル管理部20に、受信した申請書選択情報を通知する(ステップ1303)。テーブル管理部20は、申請書選択情報を参照して、申請書ID、社員コードなどを特定する。これにより、テーブル管理部20は、ファミリテーブル、メンバテーブル、ファミリ連結テーブルおよびメンバ連結テーブルなど、各種テーブルにおいて、申請書に関連する一連のレコード群を特定する(ステップ1304)。ここで、申請書IDおよび社員コードと、メンバテーブル等のフラグを参照して、制御サーバ10にアクセスしたクライアントを操作する社員の元に申請書が位置しているか、つまり、当該社員が申請書を申請し或いは承認する状態であるかを判断して、当該社員の元に申請書が位置している場合のみ、ステップ1304以降の処理を実行するように構成しても良い。
ステップ1304においては、たとえば、それぞれのテーブルにおいて、申請書選択情報にて示される申請書IDと同じ申請書IDをもつようなレコード群を特定すればよい。ここでは、ファミリテーブル、メンバテーブル、ファミリ連結テーブルおよびメンバ連結テーブルについて詳細に説明するが、他のテーブルについても、レコードの追加、更新、削除がある場合には、同様の処理が施される。
DB制御部24は、一連のレコード群の情報の通知を受けると、DB制御部24は、記憶装置1200中に、それぞれのテーブルのワークテーブル(ファミリワークテーブル、メンバワークテーブル、ファミリ連結ワークテーブルおよびメンバ連結ワークテーブル)を含むワークテーブル群#N(図中、符号1201−Nで示す)を生成する(ステップ1305)。ステップ1305において、ワークテーブル群#Nの一連のレコードをロックする。このワークテーブル群を構成するワークテーブルには、一連のレコード群が格納される。
なお、本実施の形態においては、ワークテーブル群#Nの番号「N」は、セッションIDの末尾一桁の数字を使用する。これにより、最大で10個のワークテーブル群を生成することが可能となる。
このような処理が終了すると、たとえば、テーブル管理部20は、経費申請画面を作成して、ユーザI/F26に伝達する(ステップ1306)。ユーザI/F26は、経費申請画面をクライアント14に送信する(ステップ1307)。或いは、クライアント14の操作者が、承認者である場合には、フロー進行処理部22が、経費申請書承認画面を作成し、ユーザI/F26が、経費申請書承認画面をクライアント14に送信する。
図14に示すように、ユーザI/F26が、クライアント14からのアクションを受信すると(ステップ1401)、その情報が、テーブル管理部20やフロー進行処理部22に伝達される。アクションには、申請書の申請や承認が含まれる。以下、クライアント14から、申請や承認などのアクションが送信され、フロー進行処理部22が、図11に示すようにテーブルのフラグを更新すべく処理を実行する場合について説明する。しかしながら、以下の処理は、クライアント14からユーザI/F26にファミリやメンバの追加(図5(a)、(b)、図7および図8参照)の指示が与えられた場合にも同様に実行される。
図14に示すように、フロー進行処理部22は、メンバテーブル、ファミリテーブル、メンバ連結テーブルおよびファミリ連結テーブル中、更新すべきレコードおよび当該レコード中の項目の値を特定する(ステップ1402)。たとえば、図11に示すように、レコードのフラグを「1」にセットすること、或いは、「0」にリセットすることが該当する。更新すべきレコードおよびレコード中の項目の値の情報は、DB管理部24に伝達される。
DB管理部24は、ワークテーブル群#NおよびテーブルDBにおいて一連のレコードをロックする(ステップ1403)。次いで、DB管理部24は、メンバワークテーブル、ファミリワークテーブル、メンバ連結ワークテーブル、ファミリ連結ワークテーブルの、更新すべきレコードの項目の値を、伝達された情報に従って更新する(ステップ1404)。次いで、DB管理部24は、ワークテーブル群#N中のメンバワークテーブル、ファミリワークテーブル、ファミリ連結ワークテーブル、メンバ連結ワークテーブルを、それぞれ、メンバテーブル、ファミリテーブル、ファミリ連結テーブルおよびメンバ連結テーブルの対応する部分にコピーする(ステップ1405)。つまり、ワークテーブルとして取り出したレコードに、更新後のワークテーブルのレコードの値を、それぞれ書き込む。その後、DB管理部44は、ワークテーブル群#Nを削除し(ステップ1405)、ワークテーブル群#NおよびテーブルDB18において、メンバテーブル、ファミリテーブル、メンバ連結テーブル、ファミリ連結テーブルの一連のレコードのロックを解除する(ステップ1406)。
DB制御部24はテーブルのレコードの更新が終了し、ロックを解除したことをフロー進行処理部22に通知する。この通知は、ユーザI/F26にも伝達される。ユーザI/F26は、クライアント14に処理終了を通知する(ステップ1407)。
なお、処理が完了する前にクライアント14がログオフし、或いは、何らかの理由で、クライアント14とワークフロー制御サーバ10との間のセッションが途切れた場合には、DB制御部24は、ワークテーブル群#Nを削除し、テーブルDB18のテーブルの一連のロックを解除する。たとえば、図13の処理により、クライアント14に経費申請画面が送信された状態で、クライアント14がログオフした場合には、上述の通り、DB制御部24は、ワークテーブル群#Nの削除と、テーブルのロックの解除とを実行する。
図13および図14の処理は、並列的に実行される。たとえば、あるクライアント(クライアント14−1)からのログオンにより、その末尾が「0」であるようなセッションIDが採番され、ワークテーブル群#0が生成され、ワークテーブル群#0の更新が行われ地得る状態で、他のクライアント(クライアント14−2)からのログオンにより、その末尾が「1」であるようなセッションIDが採番されれば、ワークテーブル群#1が生成され、ワークテーブル群#0の更新と並列的に、ワークテーブル群#1が更新され得る。
本実施の形態によれば、更新の対象となるテーブルのそれぞれについて、一連のレコード群(同じ申請書IDをもつ一連のレコード群)からなるワークテーブルを生成し、テーブル中の一連のレコード群をコピーする。本実施の形態においては、ワークテーブル群は複数生成できるようになっており、たとえば、クライアントのアクセスに対して制御サーバ10が与えたセッションIDの末尾の数字Nと同じ値を有するワークテーブル群#Nが生成される。つまり、セッションIDの末尾の数字に基づいて、ワークテーブル群が割り当てられる。これにより、複数のクライアントからの指示にしたがって、複数の申請書を作成し、或いは、複数の申請書を回議する場合であっても、テーブル更新に伴うロックによりロック待ちになる状態が生じる可能性を減じることができる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
たとえば、前記実施の形態においては、セッションIDの末尾の数字に基づいて、ワークテーブル群を割り当てていたがこれに限定されるものではなく、クライアントのログオン順に、ワークテーブル群の割り当てを決定しても良い。或いは、ログオンしたクライアントを操作している社員の社員IDの末尾一桁の数字に基づいて、ワークテーブル群を割り当てても良い。また、前記実施の形態においては、10個のワークテーブル群を生成可能としているが、これに限定されるものではない。
さらに、前記実施の形態においては、回議順は、メンバテーブル、ファミリテーブル、ファミリ連結テーブルおよびメンバ連結テーブルの4つのテーブルにより特定できるように構成されている。本実施の形態においては、メンバの集合体としてファミリという概念を導入し、ファミリ内を構成するメンバを特定するためのテーブル(メンバテーブル)およびファミリ内のメンバの回議順を特定するためのテーブル(メンバ連結テーブル)を設けるとともに、申請書を回議させるべきファミリを特定するためのテーブル(ファミリテーブル)およびファミリ間の回議順を特定するためのテーブル(ファミリ連結テーブル)を採用している。
しかしながら、回議順を特定するテーブルは上記構成に限定されるものではない。たとえば、メンバテーブルおよびメンバ連結テーブルにより回議順を決定するように構成しても良いし、単一のルートテーブルにより回議順を決定するように構成しても良い。つまり、本実施の形態においては、申請書ごとに回議すべきメンバおよび間の順序がテーブルに格納されていれば良い。図15(a)、(b)は、それぞれ、本発明の他の実施の形態にかかるメンバテーブルおよびメンバ連結テーブルの部分の例を示す図である。これは、図6(a)、(b)に示すように、ある申請書IDをもつ申請書について、「社員A(社員コード=Aの社員)」〜「社員E(社員コード=E)」の社員に至るまで、「社員A」〜「社員E」の順で回議順が決定されている状態を示している。他の実施の形態においては、メンバテーブルは図16(a)に示すように、図4(d)に示すメンバテーブルからファミリIDを除いたような項目を有している。また、図16(b)に示すように、メンバ連結テーブルも、図4(g)に示すメンバ連結テーブルからファミリIDを除いた構成となっている。
他の実施の形態においても、制御サーバ10は、図13および図14に示す処理ステップにしたがって、図15(a)、(b)に示すような、メンバテーブルおよびメンバ連結テーブルにおいて、同じ申請書IDを有する一連のレコード群がロックされ(ステップ1304、1305等)、セッションIDに基づいて、所定番号のワークテーブル群が生成されて、メンバテーブルのレコード群が、メンバワークテーブルにコピーされるとともに、メンバ連結テーブルのレコード群が、メンバ連結ワークテーブルにコピーされることになる。その後、ワークテーブル群のワークテーブルの該当レコードが更新され(ステップ1404)、ワークテーブルのレコードが、テーブルのレコードにコピーされる(ステップ1405)。このような処理の後、レコード群のロックが解除される(ステップ1406)。
先に述べたように、回議を構成するメンバおよびメンバ間の回議順が、単一のルートテーブルにより表される場合であっても本発明を適用することができる。たとえば、特許文献1に示すように、ルートテーブルを利用することができる。
図1は、本発明の実施の形態にかかるワークフロー制御サーバを含む全体構成を示すブロックダイヤグラムである。 図2は、本実施の形態にかかる制御サーバにおける処理の概要、並びに、マスタDBおよびテーブルDBに格納されたマスタおよびテーブルを示す図である。 図3(a)〜(h)は、それぞれ、本実施の形態にかかる社員マスタ、部署マスタ、役職マスタ、役割マスタ、アサインマスタ、文書マスタ、ルートマスタおよび権限マスタのレコードに含まれる項目を示す図である。 図4(a)〜(f)は、それぞれ、実申請書テーブル、履歴テーブル、ファミリテーブル、メンバテーブル、ファミリ連結テーブル、メンバ連結テーブル、添付書類テーブルのレコードに含まれる項目を示す図である。 図5(a)、(b)は、それぞれ、ある申請書の回議順の例を示す図である。 図6(a)、(b)は、それぞれ、図5(a)、(b)に示す回議順を表すメンバテーブルおよびファミリテーブルのレコードの部分を示す図である。 図7は、クライアントの表示装置に表示される画面の例を示す図である。 図8は、クライアントの表示装置に表示される画面の例を示す図である。 図9(a)〜(c)は、それぞれ、社員Aの申請前、社員Aの申請時および社員Bの承認時におけるメンバテーブル、ファミリテーブルの状態を示す図である。 図10(a)〜(c)は、それぞれ、社員Cの承認時、社員Dの承認時および社員Eの決裁時におけるメンバテーブル、ファミリテーブルの状態を示す図である。 図11は、本実施の形態にかかるワークフロー更新処理の例を示すフローチャートである。 図12は、制御サーバのDB制御部、および、テーブルDBなどを含む記憶装置の構成を示すブロック図である。 図13は、本実施の形態にかかる制御サーバにおいて、テーブルDBのテーブルのレコードを作成する際に実行される処理を示すフローチャートである。 図14は、本実施の形態にかかる制御サーバにおいて、テーブルDBのテーブルのレコードを作成する際に実行される処理を示すフローチャートである。 図15(a)、(b)は、それぞれ、本発明の他の実施の形態にかかるメンバテーブルおよびメンバ連結テーブルの部分の例を示す図である。 図16(a)、(b)は、それぞれ、他の実施の形態にかかるメンバテーブルおよびメンバ連結テーブルのレコードに含まれる項目を示す図である。
符号の説明
10 ワークフロー制御サーバ
12 ネットワーク
14 クライアント
16 マスタDB
18 テーブルDB
20 テーブル管理部
22 フロー進行処理部
24 DB制御部
26 ユーザI/F

Claims (12)

  1. 1以上のレコードを有する1以上のテーブルからなるテーブル群を備え、前記テーブル群は、回議すべき申請書を特定する申請書IDおよび前記申請書を回議すべきメンバを示す情報を含むレコードを有するメンバテーブルと、前記申請書IDおよび回議順を示す情報を含むレコードを有するメンバ連結テーブルとを備え、前記申請書IDで特定される申請書のデータを、前記回議順に従って特定されるメンバのクライアントに、ネットワークを介して送信することにより、前記申請書を回議するワークフロー制御サーバであって、
    それぞれが1以上のテーブルから構成される、1以上のワークテーブル群を生成するとともに、生成した前記ワークテーブルを用いて前記テーブル群のテーブルのレコードを更新するデータベース制御手段と、
    クライアントからのログオン指示の受信に従って、一連のレコード群を特定し、当該一連のレコード群を特定する情報を前記データベース制御手段に与え、前記ログオン指示後の当該クライアントからの更新指示の受信に従って、当該更新指示の受信に応じて行う更新内容を特定し、当該特定した更新内容とともに更新の指示を前記データベース制御手段に与えるテーブル管理手段と、を備え、
    前記ログオン指示は、前記申請書IDを備え、
    前記更新指示は、メンバを示す情報と、当該メンバの追加および削除のいずれかの処理指示を含み、さらに、前記処理指示が、メンバの追加である場合、前記更新指示は、前記回議順の中で、当該メンバを追加する位置を特定する追加位置情報を含み、
    前記テーブル管理手段は、
    前記メンバテーブルおよび前記メンバ連結テーブルの中の、前記ログオン指示に含まれる前記申請書IDに合致する申請書IDを備えるレコード群を、前記一連のレコード群として特定し、
    前記処理指示がメンバの追加である場合、前記更新指示で示されるメンバの、前記メンバテーブルのレコードを生成し、前記一連のレコード群に追加するとともに、前記回議順が前記追加位置情報で特定される位置となるよう前記一連のレコード群の中の前記メンバ連結テーブルのレコードを更新する処理を前記更新内容とし、
    前記処理指示がメンバの削除である場合、前記一連のレコード群の中の前記メンバテーブルのレコードから前記更新指示で示されるメンバを示す情報を含むレコードを削除するとともに、前記一連のレコード群の中の前記メンバ連結テーブルのレコードを更新する処理を前記更新内容とし、
    前記データベース制御手段は、
    前記テーブル管理手段から前記一連のレコード群を特定する情報を受信すると、当該一連のレコード群を格納するワークテーブルを生成するとともに当該情報で特定される一連のレコード群を当該ワークテーブルに格納し、
    前記テーブル管理手段から前記更新の指示および更新内容を受信すると、
    前記一連のレコード群をロックし
    前記生成したワークテーブルの各レコードを、当該更新内容に従って更新し、
    前記ロックした一連のレコード群を前記更新後のワークテーブルの各レコードに置き換え、
    前記置き換え後、前記一連のレコード群のロックを解除すること
    を特徴とするワークフロー制御サーバ。
  2. 1以上のレコードを有する1以上のテーブルからなるテーブル群を備え、前記テーブル群は、回議すべき申請書を特定する申請書ID、前記申請書を回議すべきメンバを示す情報およびメンバ毎のアクションの処理の現状を示す情報を含むレコードを有するメンバテーブルと、前記申請書IDおよび回議順を示す情報を含むレコードを有するメンバ連結テーブルと、を備え前記申請書IDにて特定される申請書のデータを、前記回議順に従って特定されるメンバのクライアントに、ネットワークを介して送信することにより、前記申請書を回議するワークフロー制御サーバであって、
    それぞれが1以上のテーブルから構成される、1以上のワークテーブル群を生成するとともに、生成した前記ワークテーブルを用いて前記テーブル群のテーブルのレコードを更新するデータベース制御手段と、
    クライアントからのログオン指示の受信に従って、一連のレコード群を特定し、当該一連のレコード群を特定する情報を前記データベース制御手段に与え、前記ログオン指示後の当該クライアントからのアクション指示の受信に従って、当該アクション指示に応じて行う更新内容および更新するレコード(更新レコード)を特定し、当該特定した更新内容、更新レコードを特定する情報および更新の指示を前記データベース制御手段に与えるとともに、前記回議順に従って前記申請書を次に回議するメンバを特定し、当該メンバに対して通知するフロー進行処理手段と、を備え、
    前記ログオン指示は、前記申請書IDおよび当該ログオン指示の送信元のクライアントを使用するメンバを特定する情報を備え、
    前記回議順は、メンバを特定する情報により規定され、
    前記フロー進行処理手段は、
    前記メンバテーブルの中の、前記ログオン指示に含まれる前記申請書IDに合致する申請書IDを備えるレコードを、前記一連のレコード群として特定し、
    前記一連のレコード群の中の、前記ログオン指示に含まれるメンバを特定する情報に合致する前記メンバを示す情報を含むレコードを、前記更新レコードとして特定し、
    前記アクション指示を受信すると、前記更新レコードの、前記アクション処理の現状を示す情報を、アクション処理終了を意味する情報に変更する処理を前記更新内容とし、
    前記ログオン指示に含まれるメンバを示す情報の次の回議順のメンバとして前記メンバ連結テーブルに規定されるメンバを、前記次に回議するメンバとして特定し、
    前記データベース制御手段は、
    前記フロー進行処理手段から前記一連のレコード群を特定する情報を受信すると、当該一連のレコード群を格納するワークテーブルを生成するとともに当該情報で特定される一連のレコード群を当該ワークテーブルに格納し、
    前記フロー進行処理手段から前記更新の指示、前記更新レコードを特定する情報および更新内容を受信すると、
    前記更新レコードをロックし
    前記生成したワークテーブルの中の、前記更新レコードに対応するレコードを、当該更新内容に従って更新し、
    前記一連のレコード群を前記更新後のワークテーブルの各レコードに置き換え、
    前記置き換え後、前記更新テーブルのレコードのロックを解除すること
    を特徴とするワークフロー制御サーバ。
  3. 前記メンバテーブルは、メンバ毎に求められるアクションを示す情報を含み、
    前記メンバ毎のアクション処理の現状を示す情報は、前記申請書に対し、当該メンバが前記求められるアクションをすべきであることを示すアクティブメンバフラグと、当該メンバのアクションが終了していることを示すアクション終了フラグを含み、
    前記フロー進行処理手段は、前記更新レコードのメンバに求められるアクションと、前記回議順において当該メンバの次の回議順のメンバに求められるアクションとを比較し、両者が同じ場合、前記一連のレコード群のレコードの中の前記メンバテーブルのレコード群内の、前記次の回議順のメンバを示す情報を含むレコードの、前記アクティブメンバフラグを、前記アクションをすべき状態とし、両者が異なる場合、前記一連のレコード群のレコードの中の前記メンバテーブルのレコード群内の、前記次の回議順のメンバに求められるアクションと同じアクションを求められるメンバを示す情報を含む全レコードの、前記アクティブメンバフラグを、前記アクションをすべき状態とする処理を、さらに、前記更新内容とすること
    を特徴とする請求項2に記載のワークフロー制御サーバ。
  4. 前記メンバ連結テーブルは、前記回議順を示す情報として、前記回議順が隣接する2つのメンバのうち、回議順が先となるメンバを特定するスタートメンバ情報と回議順が後となるメンバを特定するエンドメンバ情報とを備えること
    を特徴とする請求項1ないし3の何れか一項に記載のワークフロー制御サーバ。
  5. 前記テーブル群は、
    前記申請書IDと、メンバに求めるアクション種を示す情報であるファミリIDと、当該アクション種毎の処理の現状を示す情報と、を含むレコードを有するファミリテーブルと、
    前記申請書IDと、前記アクション種の実行順を示す情報を含むレコードを有するファミリ連結テーブルと、を備え、
    前記ファミリテーブルのアクション種毎の処理の現状を示す情報は、当該アクション種が求められるメンバが当該アクションをすべきであることを示すアクティブファミリフラグと、当該アクション種が求められる全メンバによる当該アクションの処理が終了していることを示すアクション終了フラグと、を備え、
    前記ファミリ連結テーブルは、前記アクション種の実行順が隣接する2つのファミリのうち、前記実行順が先となるファミリを特定するスタートファミリ情報と、前記実行順が後となるファミリを特定するエンドファミリ情報と、を備え、
    前記メンバ連結テーブルは、前記ファミリIDをさらに備え、かつ、前記回議順を示す情報として、同一ファミリ内のメンバの中で、前記回議順が隣接する2つのメンバのうち、回議順が先となるメンバを特定するスタートメンバ情報と回議順が後となるメンバを特定するエンドメンバ情報と、を備え、
    前記テーブル管理手段は、前記ファミリテーブルおよび前記ファミリ連結テーブルの中の、前記ログオン指示に含まれる前記申請書IDに合致する申請書IDを備えるファミリテーブルおよびファミリ連結テーブルのレコードを、さらに、前記一連のレコード群に含めること
    を特徴とする請求項1ないし3の何れか一項に記載のワークフロー制御サーバ。
  6. 当該制御サーバは、前記クライアントから前記ログオン指示を受信する毎に、セッションIDを発行し、
    前記データベース制御手段は、前記生成する前記ワークテーブルを、前記セッションIDに対応付けて管理すること
    を特徴とする請求項1ないし5の何れか一項に記載のワークフロー制御サーバ。
  7. 1以上のレコードを有する1以上のテーブルからなるテーブル群を備え、前記テーブル群は、回議すべき申請書を特定する申請書ID、前記申請書を回議すべきメンバを示す情報を含むレコードを有するメンバテーブルと、前記申請書IDおよび回議順を示す情報を含むレコードを有するメンバ連結テーブルとを備え、前記申請書IDで特定される申請書のデータを、前記回議順に従って特定されるメンバのクライアントに、ネットワークを介して送信することにより、前記申請書を回議するワークフロー制御サーバにおいて、当該ワークフロー制御サーバを、
    それぞれが1以上のテーブルから構成される、1以上のワークテーブル群を生成するとともに、生成した前記ワークテーブルを用いて前記テーブル群のテーブルのレコードを更新するデータベース制御手段と、
    クライアントからのログオン指示の受信に従って、一連のレコード群を特定し、当該一連のレコード群を特定する情報を前記データベース制御手段に与え、前記ログオン指示後の当該クライアントからの更新指示の受信に従って、当該更新指示の受信に応じて行う更新内容を特定し、当該特定した更新内容とともに更新の指示を前記データベース制御手段に与えるテーブル管理手段として機能させ、
    前記ログオン指示は、前記申請書IDを備え、
    前記更新指示は、メンバを示す情報と、当該メンバの追加および削除のいずれかの処理指示を含み、さらに、前記処理指示が、メンバの追加である場合、前記更新指示は、前記回議順の中で、当該メンバを追加する位置を特定する追加位置情報を含み、
    前記テーブル管理手段において、前記ワークフロー制御サーバを、さらに、
    前記メンバテーブルおよび前記メンバ連結テーブルの中の、前記ログオン指示に含まれる前記申請書IDに合致する申請書IDを備えるレコード群を、前記一連のレコード群として特定し、
    前記処理指示がメンバの追加である場合、前記更新指示で示されるメンバの、前記メンバテーブルのレコードを生成し、前記一連のレコード群に追加するとともに、前記回議順が前記追加位置情報で特定される位置となるよう前記一連のレコード群の中の前記メンバ連結テーブルのレコードを更新する処理を前記更新内容とし、
    前記処理指示がメンバの削除である場合、前記一連のレコード群の中の前記メンバテーブルのレコードから前記更新指示で示されるメンバを示す情報を含むレコードを削除するとともに、前記一連のレコード群の中の前記メンバ連結テーブルのレコードを更新する処理を前記更新内容とするよう機能させ、
    前記データベース制御手段において、前記ワークフロー制御サーバを、さらに
    前記テーブル管理手段から前記一連のレコード群を特定する情報を受信すると、当該一連のレコード群を格納するワークテーブルを生成するとともに当該情報で特定される一連のレコード群を当該ワークテーブルに格納し、
    前記テーブル管理手段から前記更新の指示および更新内容を受信すると、
    前記一連のレコード群をロックし
    前記生成したワークテーブルの各レコードを、当該更新内容に従って更新し、
    前記ロックした一連のレコード群を前記更新後のワークテーブルの各レコードに置き換え、
    前記置き換え後、前記一連のレコード群のロックを解除するよう機能させるためのワークフロー制御プログラム。
  8. 1以上のレコードを有する1以上のテーブルからなるテーブル群を備え、前記テーブル群は、回議すべき申請書を特定する申請書ID、前記申請書を回議すべきメンバを示す情報、およびメンバ毎のアクションの処理の現状を示す情報を含むレコードを有するメンバテーブルと、前記申請書IDおよび回議順を示す情報を含むレコードを有するメンバ連結テーブルと、を備え前記申請書IDにて特定される申請書のデータを、前記回議順に従って特定されるメンバのクライアントに、ネットワークを介して送信することにより、前記申請書を回議するワークフロー制御サーバにおいて、当該ワークフロー制御サーバを、
    それぞれが1以上のテーブルから構成される、1以上のワークテーブル群を生成するとともに、生成した前記ワークテーブルを用いて前記テーブル群のテーブルのレコードを更新するデータベース制御手段と、
    クライアントからのログオン指示の受信に従って、一連のレコード群を特定し、当該一連のレコード群を特定する情報を前記データベース制御手段に与え、前記ログオン指示後の当該クライアントからのアクション指示の受信に従って、当該アクション指示に応じて行う更新内容および更新するレコード(更新レコード)を特定し、当該特定した更新内容、更新レコードを特定する情報および更新の指示を前記データベース制御手段に与えるとともに、前記回議順に従って前記申請書を次に回議するメンバを特定し、当該メンバに対して通知するフロー進行処理手段として機能させ、
    前記ログオン指示は、前記申請書IDおよび当該ログオン指示の送信元のクライアントを使用するメンバを特定する情報を備え、
    前記回議順は、メンバを特定する情報により規定され、
    前記フロー進行処理手段において、前記ワークフロー制御サーバを、さらに、
    前記メンバテーブルの中の、前記ログオン指示に含まれる前記申請書IDに合致する申請書IDを備えるレコードを、前記一連のレコード群として特定し、
    前記一連のレコード群の中の、前記ログオン指示に含まれるメンバを特定する情報に合致する前記メンバを示す情報を含むレコードを、前記更新レコードとして特定し、
    前記アクション指示を受信すると、前記更新レコードの、前記アクション処理の現状を示す情報を、アクション処理終了を意味する情報に変更する処理を前記更新内容とし、
    前記ログオン指示に含まれるメンバを示す情報の次の回議順のメンバとして前記メンバ連結テーブルに規定されるメンバを、前記次に回議するメンバとして特定するよう機能させ、
    前記データベース制御手段において、前記ワークフロー制御サーバを、さらに
    前記フロー進行処理手段から前記一連のレコード群を特定する情報を受信すると、当該一連のレコード群を格納するワークテーブルを生成するとともに当該情報で特定される一連のレコード群を当該ワークテーブルに格納し、
    前記フロー進行処理手段から前記更新の指示、前記更新レコードを特定する情報および更新内容を受信すると、
    前記更新レコードをロックし
    前記生成したワークテーブルの中の、前記更新レコードに対応するレコードを、当該更新内容に従って更新し、
    前記一連のレコード群を前記更新後のワークテーブルの各レコードに置き換え、
    前記置き換え後、前記更新テーブルのレコードのロックを解除するよう機能させるためのワークフロー制御プログラム。
  9. 前記メンバテーブルは、メンバ毎に求められるアクションを示す情報を含み、
    前記メンバ毎のアクション処理の現状を示す情報は、前記申請書に対し、当該メンバが前記求められるアクションをすべきであることを示すアクティブメンバフラグと、当該メンバのアクションが終了していることを示すアクション終了フラグを含み、
    前記フロー進行処理手段において、前記ワークフロー制御サーバを、さらに
    前記更新レコードのメンバに求められるアクションと、前記回議順において当該メンバの次の回議順のメンバに求められるアクションとを比較し、両者が同じ場合、前記一連のレコード群のレコードの中の前記メンバテーブルのレコード群内の、前記次の回議順のメンバを示す情報を含むレコードの、前記アクティブメンバフラグを、前記アクションをすべき状態とし、両者が異なる場合、前記一連のレコード群のレコードの中の前記メンバテーブルのレコード群内の、前記次の回議順のメンバに求められるアクションと同じアクションを求められるメンバを示す情報を含む全レコードの、前記アクティブメンバフラグを、前記アクションをすべき状態とする処理を、さらに、前記更新内容とするよう機能させるための請求項8に記載のワークフロー制御プログラム。
  10. 前記メンバ連結テーブルは、前記回議順を示す情報として、前記回議順が隣接する2つのメンバのうち、回議順が先となるメンバを特定するスタートメンバ情報と回議順が後となるメンバを特定するエンドメンバ情報とを備えること
    を特徴とする請求項7ないし9の何れか一項に記載のワークフロー制御プログラム。
  11. 前記テーブル群は、
    前記申請書IDと、メンバに求めるアクション種を示す情報であるファミリIDと、当該アクション種毎の処理の現状を示す情報と、を含むレコードを有するファミリテーブルと、
    前記申請書IDと、前記アクション種の実行順を示す情報を含むレコードを有するファミリ連結テーブルと、を備え、
    前記ファミリテーブルのアクション種毎の処理の現状を示す情報は、当該アクション種が求められるメンバが当該アクションをすべきであることを示すアクティブファミリフラグと、当該アクション種が求められる全メンバによる当該アクションの処理が終了していることを示すアクション終了フラグと、を備え、
    前記ファミリ連結テーブルは、前記アクション種の実行順が隣接する2つのファミリのうち、前記実行順が先となるファミリを特定するスタートファミリ情報と、前記実行順が後となるファミリを特定するエンドファミリ情報とを備え、
    前記メンバ連結テーブルは、前記ファミリIDをさらに備え、かつ、前記回議順を示す情報として、同一ファミリ内のメンバの中で、前記回議順が隣接する2つのメンバのうち、回議順が先となるメンバを特定するスタートメンバ情報と回議順が後となるメンバを特定するエンドメンバ情報と、を備え、
    前記テーブル管理手段において、前記ワークフロー制御サーバを、さらに、
    前記ファミリテーブルおよび前記ファミリ連結テーブルの中の、前記ログオン指示に含まれる前記申請書IDに合致する申請書IDを備えるファミリテーブルおよびファミリ連結テーブルのレコードを、さらに、前記一連のレコード群に含めるよう機能させるためのこと
    を特徴とする請求項7ないし9の何れか一項に記載のワークフロー制御プログラム。
  12. 当該制御サーバは、前記クライアントから前記ログオン指示を受信する毎に、セッションIDを発行し、
    前記データベース制御手段において、前記ワークフロー制御サーバを、
    前記生成する前記ワークテーブルを、前記セッションIDに対応付けて管理するよう機能させるための請求項7ないし11の何れか一項に記載のワークフロー制御プログラム。
JP2006277180A 2006-10-11 2006-10-11 ワークフロー制御システムおよびワークフロー制御プログラム Expired - Fee Related JP5011463B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006277180A JP5011463B2 (ja) 2006-10-11 2006-10-11 ワークフロー制御システムおよびワークフロー制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006277180A JP5011463B2 (ja) 2006-10-11 2006-10-11 ワークフロー制御システムおよびワークフロー制御プログラム

Publications (2)

Publication Number Publication Date
JP2008097243A JP2008097243A (ja) 2008-04-24
JP5011463B2 true JP5011463B2 (ja) 2012-08-29

Family

ID=39380036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006277180A Expired - Fee Related JP5011463B2 (ja) 2006-10-11 2006-10-11 ワークフロー制御システムおよびワークフロー制御プログラム

Country Status (1)

Country Link
JP (1) JP5011463B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3225997B2 (ja) * 1994-08-09 2001-11-05 富士ゼロックス株式会社 情報処理システム
JPH08137947A (ja) * 1994-11-11 1996-05-31 Hitachi Ltd ワークフロー管理システム
JP2000348111A (ja) * 1999-06-01 2000-12-15 Hitachi Ltd ワークフロー管理方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP3549049B2 (ja) * 2000-10-30 2004-08-04 富士通株式会社 医療情報システム
JP2003050904A (ja) * 2001-08-07 2003-02-21 Ns Solutions Corp 情報処理装置、情報処理システム、業務フロー支援方法、記憶媒体、及びプログラム
JP2003331095A (ja) * 2002-05-13 2003-11-21 Nec Software Kyushu Ltd Db管理によるワークフロー(申請承認業務)システム
JP3883991B2 (ja) * 2003-08-04 2007-02-21 日本電信電話株式会社 ワークフロー処理方法とこの方法を実現するためのサーバ装置及びこのサーバ装置で使用されるプログラム
JP2005092544A (ja) * 2003-09-18 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム
JP4363139B2 (ja) * 2003-09-18 2009-11-11 富士電機システムズ株式会社 業務プロセス管理システム

Also Published As

Publication number Publication date
JP2008097243A (ja) 2008-04-24

Similar Documents

Publication Publication Date Title
US6151583A (en) Workflow management method and apparatus
JP4986418B2 (ja) プロジェクトデータのキャッシュおよび同期をとる方法およびシステム
US20140195293A1 (en) Workflow system and method with skip function
JP2007328791A (ja) ネットワークベースのプロジェクトスケジュールマネージメントシステムにおけるデータベースの使用
JP2007328792A (ja) ネットワークベースのプロジェクトスケジュールマネージメントシステムにおけるメンバースケジュールのプロジェクトスケジュールとの集約
JP2004062438A (ja) ワークフローシステム、ワークフローサーバ、ワークフローエンジン、ワークフロー処理集約方法、およびプログラム
JP2009505226A (ja) サーバ側のプロジェクトマネージャ
JP2002082836A (ja) 決裁システム
JP4292342B2 (ja) 電子承認システムにおける承認ルート決定方法及びプログラム
US10140590B2 (en) Data approval system and method
JP2005327228A (ja) 同一承認順番に複数の承認者を指定できるワークフローシステム。
JP5011463B2 (ja) ワークフロー制御システムおよびワークフロー制御プログラム
JP2000347921A (ja) データ管理方法及びその実施装置
JP5820952B1 (ja) 情報管理装置及びプログラム
KR100358876B1 (ko) 네트워크 환경에의 액세스를 검증하기 위한 방법 및 시스템
JP2002342542A (ja) ワークフローシステム、ワークフローサーバ、情報処理端末、業務プロセス管理方法、プログラム及び記憶媒体
JP4777057B2 (ja) 人事管理サーバ
US20030182377A1 (en) Flexible routing engine
JP4348770B2 (ja) 設計図面の編集履歴管理システム
JP4122260B2 (ja) 申請処理システム
JP2009282757A (ja) サーバ、および共有ファイル管理方法
JPH08161213A (ja) 文書管理方法
JP2002024499A (ja) 文書稟議装置、方法及びコンピュータ読み取り可能な記録媒体
JP2001312581A (ja) コンピュータシステム、コンピュータ、情報提供方法、記憶媒体
JP6118879B2 (ja) 情報管理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091008

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120313

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120330

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120330

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120403

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5011463

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees