説明

ワークフローシステムおよびワークフローシステムの制御方法およびプログラムおよび記録媒体

【課題】作業者のスキルレベルと時間の進行による滞留タスクの増減を加味して処理にかかる予想時間を算出して、大規模なワークフローシステムであっても精度の高い予想時間を算出できるようにすること。
【解決手段】ワークフローサーバ104は、ワークフローの処理単位であるノードが所定の順序で複数結合されるビジネスプロセスから生成されたタスクの処理状況を管理し、前記ノード毎に過去の処理履歴情報をクライアント102に保持させておき、前記ビジネスプロセスから生成されるタスクの、該ビジネスプロセスを形成する任意のノードでの処理所要時間を、該ノードに滞留するタスク数と該ノードの前記過去の処理履歴に基づいて算出される値から、該ノードより上流のノードでの前記生成されるタスクの処理所要時間の合算値を減算することにより算出する構成を特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワークフローシステムにおいて、全体またはノードごとの処理にかかる所要時間(現実処理所要時間)を算出し、その値を元により処理の早いノードをシステムが自動的に選択し処理させる手段を提供するものである。
【背景技術】
【0002】
ワークフローシステムでは起票処理を行い、ビジネスプロセスに沿って複数の承認処理をへて最終的に案件が処理される。しかし、起票者は自分が起票した案件(タスク)が最終的にいつ処理されるか分からない。さらに、プロセス途中のある一点のノードにタスクが集中して来てしまった場合、タスクがなかなか処理されずに、ワークフロープロセス全体のパフォーマンスが低下してしまうという問題があった。
【0003】
この問題に対し、特許文献1(特開2003−76823)の「滞留防止機能付きワークフローシステム」では各作業者に到達しているタスクの数と種類からタスクを処理し終わるまでの作業時間を割り出し、その値と設定されたしきい値と比較し、それを超えた場合は設定された代行者にタスクを分配し、プロセスのパフォーマンスを維持するアイディアが提示されている。
【特許文献1】特開2003−76823号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記アイディアでは作業時間の割り出しにはタスク数を単純に掛け合わせただけで、時間の経過によるタスクの減少を考慮していない。例えばA−B−Cとノードがあった場合、タスクがAにある時点で作業時間を算出すると、BとCのノードの作業時間は単純にそれぞれのノードにたまっているタスク数のみで算出する。しかし、現実にはA−B−Cのノードは同時に処理が行われているため、Aの処理にかかった時間分だけBにあるタスクの処理が進みタスク数が減ることになる。同じようにCのノードはAとBの両方の処理にかかった分だけCにあるタスクの処理が進むことになる。そのため、ノードが多数存在しタスクの数が多い大規模なワークフローシステムになるほど予想される作業時間の誤差が大きくなってしまう。作業時間はタスクの分配のトリガとなるため、分配機能そのものの精度が大きく落ちてしまう(第一の問題)。
【0005】
また、上記アイディアでは代行者を予め設定しておかなければならず、代行者が休暇の場合や長時間席を外したときに素早く対応できない。また、組織では上司が部下に必要な作業を教え、代理として作業を行ってもらうという事が起きるが、上記アイディアの場合はシステム管理者が代行者として設定しなければ代行者として作業が行えず、柔軟な対応が出来ない(第二の問題)。
【0006】
さらに、代行者にタスクを分配する場合も、上記アイディアではその判定はタスクの数から算出した作業時間でしか分配を行えない。作業者や帳票によっては代行者を介さずに自分で処理を行いたい場合もある。しかし、上記アイディアではそういった作業者の意志を反映することを考慮しておらず、しきい値を超えるとシステムにより必ず分配されてしまう(第三の問題)。
【0007】
また、代行者にタスクの分配を行った場合、プロセス構成が複雑になってしまい、起票者がタスクの最終処理までの時間が分かりづらくなり、スケジューリングができずスムーズな業務遂行が出来なくなってしまうという問題も起こる(第四の問題)。
【0008】
本発明は、上記の問題点を解決するためになされたもので、本発明は、時間の流れによるタスクの増減と作業者の技術レベルを考慮し、対象のノードがタスクの処理にかかる時間(現実処理所要時間)を算出し、算出した時間から最も作業効率の良い代行者にタスクの分配を行うことで第一の問題を解決することを第一の目的としている。
【0009】
また、サーバに代行者を予め設定することなく、最適な代行者を適時検出し、タスクを振り分け、実行させることで第二の問題を解決することを第二の目的としている。
【0010】
さらに、タスクの分配を行うかを判定するために、担当者ごとに分配の条件を設定したファイルを用いることで、作業者の意志を反映したタスクの分配を行い第三の問題を解決することを第三の目的としている。
【0011】
また、上記現実処理所要時間を任意のタイミングでプロセスマップ(図12に示す)とともに表示し、作業者にタスクの進行状況を伝えることで第四の問題を解決することを第四の目的としている。
【課題を解決するための手段】
【0012】
本発明は、クライアント・サーバシステムで構成されるワークフローシステムにおいて、ワークフローの処理単位であるノードが所定の順序で複数結合されるビジネスプロセスから生成されたタスクの処理状況を管理するタスク管理手段と、前記ノード毎に過去の処理履歴情報を記憶する処理履歴情報記憶手段と、前記ビジネスプロセスから生成されるタスクの、該ビジネスプロセスを形成する任意のノードでの処理所要時間を、該ノードに滞留するタスク数と該ノードの前記過去の処理履歴に基づいて算出される値から、該ノードより上流のノードでの前記生成されるタスクの処理所要時間の合算値を減算することにより算出する算出手段とを有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、各クライアントが作業者のスキル情報をもった処理履歴情報を持っているため、作業者が担当できる処理が増減した場合でも、サーバに一切変更を加えることなく対応が出来る。
【0014】
また、作業者のスキルレベルと時間の進行による滞留タスクの増減を加味して処理にかかる予想時間を算出し、タスクの分配に利用しているため、大規模なワークフローシステムであっても精度の高い予想時間を算出でき、常に最適なタスク分配を行うことができワークフローの作業効率あげることが出来る。
【0015】
さらに、クライアント間で作業者の情報を管理するため、サーバはその情報をもとに適時、代行者を設定する。そのため予め代行者として特定の作業者を設定する必要が無く、作業者の増減やスキルレベルの変化に柔軟に対応するシステム構成が可能となる。
【0016】
また、作業者が代行の可否を詳細に設定できるため、機密書類など第三者に見せたくない伝票を勝手に分配されることが無くなり、セキュリティの向上につながる。
【0017】
さらに、目標とされる時間と実際の作業時間との差分を表示することで、人材の教育やシステムの構成の見直しの判断材料として用いることが出来る。
【0018】
また、一連の業務のワークフローに置いて処理終了までの予想時間が分かるため、スケジューリングを行いやすく、より効率的な業務の遂行を可能とする等の効果を奏する。
【発明を実施するための最良の形態】
【0019】
〔第1実施形態〕
以下、図面を用いて、本発明に係るワークフローシステムの実施形態について説明する。
【0020】
本実施形態のワークフローシステムにおけるワークフロープロセスは、クライアント上で行われる作業の単位であるノードと、ノードとノードを結びビジネスプロセス(業務)を構築する経路で構成されている。例えば、図1に示すように構成されている。
【0021】
図1は、本発明に係る第1実施形態を示すワークフローシステムにおけるワークフロープロセスの構成の一例を示す模式図である。
【0022】
図1に示すように、まず、起票ノード1001で案件(タスク)を作成する。この案件は経路1007を通り承認1ノード1002で案件の承認を行い、承認2ノード1003で再度承認を行い、承認3ノード1004で最終承認を行い、プロセスを終了するワークフローとなる。
【0023】
なお、上記の各ノードにおいて、案件が長時間滞留してしまうときは、複数ある代行ノード1005から最適なノードを選択し代行処理させる。なお、詳細は後述する。
【0024】
図2は、本発明に係る第1実施形態を示すワークフローシステムの構成の一例を示すシステム構成図である。
【0025】
図2に示すように、本発明のワークフローシステムは、LANやWANやWWW等を単体もしくは複合されて構成されるネットワーク101に、ワークフロークライアント(クライアント)102やワークフローサーバ104として機能する複数のコンピュータを接続して構成されている。各コンピュータの構成の一例を後述する図4に示す。
【0026】
クライアント102は、ユーザインタフェース103を備え、ワークフローにおける作業者の操作を受け付け、ログイン処理や帳票(タスク)の起票(生成)や承認処理の操作を行う。
【0027】
また、クライアント102は、作業者の作業履歴と収集した他の作業者の作業履歴をクライアント毎に蓄えた処理履歴情報112を備え、この処理履歴情報112への入出力を制御する処理履歴情報制御部114を備えている。
【0028】
さらに、ワークフローサーバ104は、プロセス定義情報108,タスク情報109,処理所要時間情報110,作業者情報111,条件設定ファイル115等、という定義情報を管理・保持し、ワークフロー制御部105により、タスク生成、タスクの処理、遷移、および制御を行う。
【0029】
ワークフローサーバ104の待ちタスク解析部107は、タスク情報109から現在のタスクの進行状況から各作業者が担当するノードの進捗状況を割り出す。この情報は、処理所要時間計算部106による現実処理所要時間の算出に利用される。
【0030】
また、ワークフローサーバ104の処理所要時間計算部106は、上述した待ちタスク解析部107から受け取ったノードの進捗状況と処理所要時間情報110から取得した情報とに基づいて、作業者が担当するノードの処理を全て終えるまでの時間を示す現実処理所要時間を算出する。
【0031】
さらに、ワークフローサーバ104の警告通知部113は、タスク情報を監視し変化が起こった場合に、メールやメッセンジャーやその他のプロトコルを利用して、作業者に帳票の情報やタスク情報などを知らせる機能を持つ。
【0032】
図3は、図2に示したワークフローシステムを機能的な視点から説明するための機能ブロック図である。
【0033】
まず、第1に、作業者の正規性を確認し、作業者が処理を行うべきノードを特定する流れについて示す。
【0034】
図3に示すように、ユーザインタフェース103が作業者からの処理要求を受けると、まず、クライアントマシン102にある処理履歴情報制御部114を介し、処理履歴情報112を作業者IDで検索し、当該データのノードIDと経路IDから作業者が処理可能な経路とノードを特定する。続いて、システムにログインを行う。作業者情報111に入力されたIDとパスワードがあるか検索を行い、該当するものが存在した場合、作業画面を表示する。
【0035】
第2に、現実処理所要時間の算出の流れについて説明する。
【0036】
ワークフロー制御部105は、起票を行う場合、実行されるプロセスを表示し、各ノードおよび全体の処理にかかる現実処理所要時間と、目標として設定されている時間とを同時に表示することができる。また、タスクがどのノードまで進んでいるかの進行状況も表示することが出来る。
【0037】
表示する現実処理所要時間の算出は、処理所要時間計算部106に要求される。処理所要時間計算部106は、プロセスに含まれるノードの処理所要時間を取得し、待ちタスク解析部107からタスクの処理時間と、処理履歴情報に含まれるノードの平均処理所要時間を受け取り、ワークフロー制御部105は、これらの情報を掛け合わせて現実処理所要時間を算出しユーザインタフェース103に値を返すことで画面に表示する。
【0038】
待ちタスク解析部107は、現実処理所要時間の算出に利用される、滞留しているノードの処理所要時間を算出する。待ちタスク解析部107は、処理所要時間計算部106からの要求を受け、タスク情報109に滞留しているノードをカウントし、その個数から処理にかかる時間を算出して、処理所要時間計算部に値を返す。
【0039】
タスクの進行情報は、処理所要時間計算部106に要求され、該処理所要時間計算部106は、現実処理所要時間の算出の課程からタスクの進捗情報を取得し、それをプロセスの構成を示したプロセスマップに表示する。
【0040】
第3に、ワークフローの制御の流れについて説明する。
【0041】
ワークフロー制御部105は、ワークフロー全体の進行状況やデータの移り変わりを制御する機能と、ユーザインタフェースからの命令を受け、サーバ内の各演算部に命令が発行する機能を有する。
【0042】
警告通知部113は、ワークフロー制御部を介し、タスク情報のノードの変化を監視し、変化があれば作業者情報111から得たメールアドレスを利用して帳票の情報などを送り、作業者に作業を促す機能を有している。
【0043】
以下、図4を参照して、図2に示したクライアント102,ワークフローサーバ104に適用可能なコンピュータの構成について説明する。
【0044】
図4は、図2に示したクライアント102,ワークフローサーバ104に適用可能なコンピュータの構成の一例を示すブロック図である。
【0045】
図4において、40は前記クライアント102,ワークフローサーバ104に適用可能なコンピュータである。41はCPUである。このCPU41は、ROM43又は外部記憶装置(例えば、ハードディスク,フレキシブルディスク,CD−ROM,DVD−ROM等どのような記憶装置であってもよい)に格納されたプログラムをRAM42上にロードして実行することにより、コンピュータ40全体を制御する。RAM42は、CPU41の作業領域として使用される。
【0046】
45はネットワークインタフェースカード(NIC)で、ネットワークへの接続を可能とする。47は入力装置で、キーボードやマウス等のポインティングデバイス等に相当する。46は表示装置で、CRT,LCD等で構成される。
【0047】
以下、図2,図3に示したワークフローシステムの各構成要素の実装について図4を用いて説明する。
【0048】
まず、図2に示したユーザインタフェース103は、クライアント102のCPUが、外部記憶装置等に格納されたプログラムをRAM上にロードして実行することにより実装されるものであり、クライアント102のCPUは、ワークフローサーバ104等から受け取った(、クライアント102で生成された、又は、外部記憶装置から読み出した)入力画面をクライアント102の表示装置に表示制御し、該入力画面へのクライアント102の入力装置を用いた入力制御を行う。
【0049】
また、図2に示した処理履歴情報制御部114は、クライアント102のCPUが、外部記憶装置等に格納されたプログラムをRAM上にロードして実行することにより実装される。
【0050】
さらに、図2に示した処理履歴情報112は、クライアント102の外部記憶装置に格納される。
【0051】
また、図2に示したワークフロー制御部105,処理所要時間計算部106,待ちタスク解析部107,警告通知部113は、全て、ワークフローサーバ104のCPUが、外部記憶装置等に格納されたプログラムをRAM上にロードして実行することにより実装される。
【0052】
さらに、図2に示したプロセス定義情報108,タスク情報109,処理所要時間情報110,作業者情報111,条件設定ファイル115は、全て、ワークフローサーバ104の外部記憶装置に格納される。
【0053】
以下、図5〜図10を参照して、図2に示した各種情報108〜112,115について説明する。
【0054】
図5は、図2に示したプロセス定義情報108のデータ構成の一例を示すデータ構成図である。
【0055】
プロセス定義情報108は、プロセスごとに定義され、図5に示すような構成になっており、ワークフローシステムのノードや経路で構成されたビジネスプロセスを管理するための定義情報である。なお、この定義情報は、伝票の種類毎に存在する。
【0056】
「ノードID」と「経路ID」をキーにして、ノードの行うべき処理の種類(ノード種別)と処理の順番(処理順位)が定義されている。
【0057】
図6は、図2に示したタスク情報109のデータ構成の一例を示すデータ構成図である。
【0058】
タスク情報109は、ワークフローシステム上のタスク進捗状況管理を統合的に保持している。
【0059】
図6に示すように、タスク情報109は、作業者の起票処理により、順次ふられた「タスクID」と「ノードID」と「経路ID」をキーに、現在の処理の状態を表す「ステータス」と、タスク処理の「開始時間」を管理している。「ステータス」には、そのタスクが処理中であることを示す「処理中」と、まだ作業を行っていない状態を示す「待機」とがある。なお、タスク情報109は、滞留しているノードの数や開始時間を待ちタスク解析部(107)が読み取ることで現実処理所要時間を算出に利用される。
【0060】
図7は、図2に示した処理所要時間情報110のデータ構成の一例を示すデータ構成図である。
【0061】
図7に示すように、処理所要時間情報110は、ワークフローシステム上のノード毎,作業者毎の処理所要時間の目標値(目標時間)を設定しておくためのものであり、「ノードID」と「経路ID」をキーに「目標時間」が設定されている。
【0062】
図8は、図2に示した作業者情報111のデータ構成の一例を示すデータ構成図である。
【0063】
図8に示すように作業者情報111は、ワークフローシステムの操作を行う作業者の情報を管理するものであり、「作業者ID」をキーに「パスワード」とシステムからメッセージを送るためのメールアドレス(メール)が設定されている。また、「作業者ID」毎にログイン中の有無を示す「ステータス」が管理されている。
【0064】
なお、この作業情報111は、ワークフローシステムへのログイン時等に使用される。
【0065】
図9は、図2に示した処理履歴情報112のデータ構成の一例を示すデータ構成図である。
【0066】
本実施形態では、上述したように、この図9に示す処理履歴情報112と呼ぶ作業者情報を各クライアント102が保有している。
【0067】
図9に示すように、処理履歴情報112は、クライアント102毎に在し、クライアントのIPアドレスを設定した「ライアントID」と「作業者ID」と「ノードID」と「経路ID」をキーにノードの「平均処理所要時間」と「処理回数」および情報の「更新日」が設定される。
【0068】
なお、この処理履歴情報112に記録されている「ノードID」と「経路ID」は、「作業者ID」に対応する作業者が、該「ノードID」と「経路ID」で決定される承認処理を行える権限があることを示している。
【0069】
即ち、「ノードID」と「経路ID」との組合せで作業者の作業権限を特定することが出来る。なお、処理履歴情報は一人の作業者情報だけでなく、他の作業者の情報も保有することが出来る。
【0070】
また、処理履歴情報が作業者の情報を互いに持ち共有しているため、タスクの振り分け時や、処理履歴情報の検索時に隣接するクライアントマシンが壊れても、他のマシンの処理履歴情報を読み取ることで目的の作業者情報までたどり着くことが出来るようになる。
【0071】
また、この処理履歴情報112の「平均処理所要時間」を、処理所要時間計算部106が読み取ることで現実処理所要時間を算出している。
【0072】
さらに、処理履歴情報112は、一人の作業者の情報だけでなく、処理履歴情報制御部114が、他のクライアント102に設定されている処理履歴情報112を検索し、他の作業者の情報を取り込むことが出来る。
【0073】
図10は、図2に示した条件設定ファイル115のデータ構成の一例を示すデータ構成図である。
【0074】
この条件設定ファイル115は、タスクの自動振り分けを行うための振り分けの条件を設定したものである。
【0075】
図10に示すように、「ノードID」と「経路ID」をキーに、タスクの自動振り分け処理をトリガするための、「目標時間」とその「目標時間」にαした時間(±)が設定され、また、自動振り分け処理の際に、自動振り分けする作業者の「処理回数」,自動振り分けする作業者(ユーザ)が設定される。
【0076】
なお、「目標時間」は、上記タスクの自動振り分けのしきい値としても利用されるほか、現実処理所要時間を表示する際の対比として表示される。
【0077】
以下、図11を参照して、図7に示した処理所要時間情報110,図8に示した作業者情報111,図10に示した条件設定ファイル115を設定するための定数設定画面について説明する。
【0078】
図11は、図7に示した処理所要時間情報110,図8に示した作業者情報111,図10に示した条件設定ファイル115を設定するための定数設定画面の一例を示す模式図である。
【0079】
クライアント102の表示装置に図11(a)の定数設定画面が表示され、クライアント102の入力装置により、処理所要時間情報の設定が指示されると、ユーザインタフェース103は、図11(b)に示す所用時間一覧設定画面を、クライアント102の表示装置に表示し、図7に示した処理所要時間情報110に対応する情報の入力を可能とする。そして、決定が指示されると、ユーザインタフェース103は、図11(b)に示す所用時間一覧設定画面で入力された所要時間一覧の情報を、ワークフローサーバ104に送信し、ワークフローサーバ104のCPUは、受信した所要時間一覧の情報を図7に示した処理所要時間情報110として外部記憶装置に格納する。
【0080】
また、図11(a)の定数設定画面が表示された状態で、クライアント102の入力装置により、委任条件設定が指示されると、ユーザインタフェース103は、図11(c)に示す代行者選択条件設定画面を、クライアント102の表示装置に表示し、図10に示した条件設定ファイル115に対応する情報の入力を可能とする。
【0081】
図11(c)に示す代行者選択条件設定画面では、システムは処理履歴情報から所得したノードIDと経路IDをキーに処理所要時間情報(図7)の目標時間(列3)を取得し表示する。作業者はその時間にαした時間を分配のトリガとして設定できる。
【0082】
また、1行目の承認1ノードのように処理回数に値を指定して、その値以上で実行といったことも可能である。
【0083】
さらに、2行目の定義のように作業者の項目(ユーザ)に作業者IDを設定することで、処理作業者を限定して処理を行わせたり、新しく処理を行う権限を与えることが可能になる(例えば上司が部下の作業者IDを設定する)。
【0084】
また、ここで示した条件は一例であり、例えば伝票に設定されている値を条件に設定することも本発明で可能である。
【0085】
なお、上記の例ではノード単位に目標時間を設定しトリガとしているが、経路IDと目標時間と±に所定の値を設定する(ノードIDは空白とする)ことで、ワークフロー全体の現実処理所要時間をトリガとして扱うことも可能である。
【0086】
そして、決定が指示されると、ユーザインタフェース103は、図11(c)に示す代行者選択条件設定画面で入力された条件設定の情報を、ワークフローサーバ104に送信し、ワークフローサーバ104のCPUは、受信した条件設定の情報を図10に示した条件設定ファイル115に格納する。
【0087】
さらに、図11(a)の定数設定画面が表示された状態で、クライアント102の入力装置により、ユーザ情報の設定が指示されると、ユーザインタフェース103は、図11(c)に示すユーザ一覧設定画面を、クライアント102の表示装置に表示し、図8に示した作業者情報111に対応する情報の入力を可能とする。そして、決定が指示されると、ユーザインタフェース103は、図11(c)に示すユーザ一覧設定画面で入力されたユーザ一覧設定情報を、ワークフローサーバ104に送信し、ワークフローサーバ104のCPUは、受信したユーザ一覧設定情報を図8に示した作業者情報111として外部記憶装置に格納する。
【0088】
以下、図12〜図16を参照して、本発明のワークフローシステムの処理の流れについて説明する。
【0089】
図12は、本発明のワークフローシステムにおける第1の制御処理の一例を示すフローチャートである。なお、図中、S101〜S105はクライアント102側の各ステップに対応し、図2に示したクライアント102のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。さらに、S110〜S119は、ワークフローサーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。
【0090】
また、図13は、図12に示した処理に応じたクライアント102の画面遷移を示す模式図である。
【0091】
まず、作業者が処理権限を持つノードを特定する。
【0092】
図12のステップS101において、ユーザインタフェース103(CPUにより実行される)「より表示される図13(a)のログイン画面で、作業IDとパスワードが入力され、「Enter」が指示されると、ユーザインタフェース103は、入力された作業IDとパスワードをワークフローサーバ104に送信する。
【0093】
ステップS110において、ワークフローサーバ104のワークフロー制御部105(CPUにより実行される)は、クライアント102から受信した作業IDとパスワードの情報が正規のものか図8に示した作業者情報111に基づいて判定する。
【0094】
そして、作業IDとパスワードの情報が正規のものであると判定した場合には、ステップS111において、ワークフローサーバ104のワークフロー制御部105は、前記入力された「作業者ID」をキーに、クライアント102の処理履歴情報112(図9)を検索し(正確には、クライアント102の処理履歴情報制御部114に検索を要求し、該処理履歴情報制御部114が検索し、検索結果をワークフローサーバ104に戻す)、「作業者ID」が一致したデータ(処理履歴情報)に設定されている「ノードID」と「経路ID」を、作業者の持つ処理権限とする。
【0095】
そして、作業IDとパスワードの情報が正規のものでないと判定した場合には、その旨をクライアント102に通知し、処理を終了する。
【0096】
次に、タスク一覧を取得し、行いたい処理を選択する。
【0097】
続いて、ステップS111において、ワークフローサーバ104のワークフロー制御部105は、「作業者ID」をキーにタスク一覧109を検索し、該検索したタスク情報のデータを、クライアント102に送信する。
【0098】
そして、ステップS102において、クライアント102のユーザインタフェース103は、ワークフローサーバ104から検索されたタスク情報のデータを受け取り、図13(b)に示す処理選択画面を生成する。
【0099】
次に、ステップS103において、クライアント102のユーザインタフェース103は、図13(b)に示す処理選択画面で、いずれかの伝票が選択されて「起票処理」が選択されると、該選択された伝票の起票指示をワークフローサーバ104に送信する。
【0100】
そして、ワークフローサーバ104のワークフロー制御部105は、クライアント102から、伝票が選択され起票が指示されたと判定した場合には、ステップS113において、ワークフロー制御部105は、直ぐに、タスク情報109にタスクIDを新たに振り当て(取得し)、起票する伝票の情報に基づいて、該新たなタスクIDに対応するタスク情報に「ノードID」,「経路ID」を設定し、ステータスを「処理中」とし開始時間は現在の時刻を設定し、ステップS114に進み、ノードの情報(ここでは経路上の全ノード)と経路情報を指定して、処理所要時間算出前処理(詳細は、後述する図17に示す)の実行を指示し、処理所要時間計算部106に、ノード単位に処理が終了するまでにかかる時間を示した現実処理所要時間を算出させ、該処理所要時間算出結果に基づく画面(図14)を生成してクライアント102に送信し、クライアント102での作業終了(「申請」指示)を待機する。
【0101】
そして、ステップS104において、クライアント102のユーザインタフェース103は、画面を図13(c)に示す申請画面に遷移し、入力すべき伝票を表示する。また、クライアント102のユーザインタフェース103は、ワークフローサーバ104から送信された処理所要時間算出結果に基づく画面(図14)を別画面にて表示する。即ち、クライアント102の表示画面には、入力すべき伝票とその伝票が最終承認までたどり着くまでの経路と時間が表示される。
【0102】
また、ステップS103において、クライアント102のユーザインタフェース103は、図13(b)に示す処理選択画面で、「承認処理」が選択されて表示される図13(d)に示す承認待ち伝票一覧画面で、いずれかのタスクがチェックされ「選択」が指示されると、選択されたタスクの情報(タスクID)の承認処理選択指示をワークフローサーバ104に送信するとともに、画面を図13(e)に示す承認画面に遷移し、ユーザに入力を促す。
【0103】
そして、ワークフローサーバ104のワークフロー制御部105は、クライアント102から、タスクが選択されタスクの承認処理が指示されたと判定した場合には、ステップS112において、ワークフロー制御部105は、直ぐに、タスク情報109を前記選択された「タスクID」で検索し、対象となるタスク情報を取得し、該タスク情報のステータスを「処理中」に変更し、開始時間を現在の時刻に変更し、該タスクの内容をクライアント102に送信し、クライアント102での作業終了(「申請」/「否認」指示)を待機する。
【0104】
また、クライアント102のユーザインタフェース103は、ワークフローサーバ104から送信された承認処理するタスクの内容を表示する(図13(e))。これにより、作業者は、伝票の内容が表示されるので、その内容を確認して承認などの処理を行う。
【0105】
次に、ステップS104において、クライアント102のユーザインタフェースでの作業者の入力処理が終了すると、クライアント102は、入力処理結果をワークフローサーバ104に送信する。
【0106】
すると、ワークフローサーバ104は、タスクが次のノードに移行するためタスク情報を書き換え、処理履歴情報を更新する処理を行う。
【0107】
詳細には、ステップS115において、ワークフローサーバ104のワークフロー制御部105は、「ノードID」と「経路ID」をキーにプロセス定義情報を検索し、次に進むべきノードの情報を取得する。
【0108】
次に、ステップS116において、ワークフローサーバ104のワークフロー制御部105は、タスク情報の「ノードID」と「経路ID」を次に進むべきノードの情報に書き換え、ステータスを「待機」とし、開始時間の設定を消去する。
【0109】
そして、ステップS117において、ワークフローサーバ104のワークフロー制御部105は、処理履歴情報を最新の情報にするため、今回処理したタスクに関する情報を処理履歴情報に書き込む処理を行い(後述する図19に示す処理履歴情報更新処理)、本フローチャートの処理を終了する。
【0110】
なお、本フローチャートには示していないが、クライアント102のユーザインタフェース103は、図13(b)に示す処理選択画面で、いずれかのタスクが選択され「タスク検索」が選択された場合には、ワークフローサーバ104は、後述する図27に示す進行状況表示処理を実行し、その結果、クライアント102に送信する。この時、クライアント102では、図15に示す画面が表示され、「承認1ノード」のように進行中のノードが色づけされ表示される。
【0111】
また、同様に、本フローチャートには示していないが、クライアント102側の図13(b)に示す処理選択画面で、「目標時間表示」が選択された場合、ワークフローサーバ104側は、後述する図26に示す進行状況表示処理を実行し、その結果、クライアント102に送信する。これにより、クライアント102では、図16に示す画面が表示され、各ノードに現実処理所要時間、起票ノードに全ての処理にかかる時間の合計が表示される。
【0112】
さらに、本フローチャートには示していないが、クライアント102側の図13(d)に示す承認待ち伝票一覧画面で、代行者に処理を委任するための代行処理」が選択された場合、ワークフローサーバ104側は、後述する図22に示すタスク自動振り分け処理に移行して、代行者を決定し、該代行者にタスクを振り分ける。
【0113】
以下、バックグラウンドの処理について示す。
【0114】
本ワークフローシステムでは、クライアント102側ではバックグラウンドで処理履歴情報の検索処理(詳細は、後述する図20に示す)を常に実行している(S105)。この機能により、クライアント間の処理履歴情報の内容を業務内容ごとに同期し、常に最新の情報を保持する。
【0115】
また、ワークフローサーバ104側でも、バックグラウンドでノードに滞留しているタスクを、素早く処理できる代行ノードにシーケンシャルに振り分ける処理(詳細は、後述する図22に示す)をリアルタイムに行っている(S118)。
【0116】
さらに、ワークフローサーバ104側は、タスク情報の値の移り変わりを監視し、変化があれば警告通知処理(詳細は、後述する図25に示す)を行っている(S119)。
【0117】
以上が、本システムにおけるワークフローの制御を表したものである。
【0118】
以下、図17,図18を参照して、図12のステップS114の処理所要時間算出前処理について説明する。
【0119】
図17は、本発明のワークフローシステムにおける第2の制御処理の一例を示すフローチャートであり、図12のステップS114の処理所要時間算出前処理に対応する。なお、このフローチャートの処理は、ワークフローサーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。また、図中、S3001〜S3006は各ステップを示す。
【0120】
ステップS3001において、ワークフローサーバ104の処理所要時間計算部106は、ワークフロー制御部105か作業者の指示(ユーザインタフェース103からの指示)を受け取ると、ステップS3002において、指示されたノードの情報(起票の場合、図12のステップS114で、経路上の全ノードが指示されている)と経路情報を取得し、ステップS3003において、指示された複数のノード情報から1つのノード情報を取り出し、該ノード情報と経路情報とをキーにしてプロセス定義情報108から対応する定義情報を取得し、RAM内の作業領域に格納する。
【0121】
つぎに、ステップS3004において、ワークフローサーバ104の処理所要時間計算部106は、ステップS3003で取得したプロセス情報に基づいて現実処理所要時間を算出する。
【0122】
次に、ステップS3005において、ワークフローサーバ104の処理所要時間計算部106は、指示された全ノードの所要時間を算出したか否かを判定し、未だ指示された全ノードの所要時間を算出していないと判定した場合には、ステップS3003に戻り、次のノードの処理を行う。
【0123】
一方、ステップS3005で、ワークフローサーバ104の処理所要時間計算部106が、既に指示された全ノードの所要時間を算出したと判定した場合には、ステップS3006において、経路図とともに算出した各所要時間を表示するための画面(図14)を、クライアント102に送信し、処理を終了する。
【0124】
これにより、算出結果を反映した画面(図14)が、クライアント102側のユーザインタフェース103に戻され、表示されることになる。
【0125】
続いて、ステップS3003の処理所要時間算出処理について説明する。
【0126】
図18は、本発明のワークフローシステムにおける第3の制御処理の一例を示すフローチャートであり、図17のステップS3004の処理所要時間算出処理に対応する。なお、このフローチャートの処理は、ワークフローサーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。また、図中、S402〜S413は各ステップを示す。
【0127】
まず、ステップS402において、ワークフローサーバ104の処理所要時間計算部106は、図17のステップS3003で取得したプロセス情報内のノードID,経路ID,作業者IDから、対象となる作業者に関するクライアントの処理履歴情報を検索し、平均処理所要時間(b)を取得する。
【0128】
次に、ステップS403において、ワークフローサーバ104の処理所要時間計算部106は、上記ノードID,経路ID,作業者IDからタスク情報を検索し、指定されたノードを処理する作業者に関連するタスク情報の「ステータス」と「開始時間」の情報を取得する。
【0129】
次に、ステップS404において、ワークフローサーバ104の処理所要時間計算部106は、タスク情報から取得した情報からステータスが「待機中」のものをノード単位にカウントし、ノード別の待機ステータスのタスク数(x)を求める。
【0130】
次に、ステップS405において、ワークフローサーバ104の処理所要時間計算部106は、ノード単位のステータスをキーに、対象ノードのステータスの判定を行う。詳細には、ステータスが「処理中」のみのノード,「待機」を含むノード,ステータスなしのノードとを判定し、処理を分岐させ、タスク情報のステータス別に、現実処理所要時間を算出する。
【0131】
まず、ステップS405で、ワークフローサーバ104の処理所要時間計算部106が、ステータスが「処理中」のみのノードであると判定した場合には、ステップS407において、ワークフローサーバ104の有する時刻情報(OS等が有するもの)から求めた「現在の時間」から当該タスク情報の「開始時間」を減算して「処理実行時間」(a)を求める。そして、「平均処理所要時間」(b)から「処理実行時間」(a)を減算した「処理中の処理が終わるまでの時間」(c)を求める。
【0132】
次に、ステップS409において、まず、「計算対象のノードまでに存在するノードの処理所要時間を合計したもの」(d)を求める。そして、前処理の値(ステップS407で求めた「処理中の処理が終わるまでの時間」(c)から「計算対象のノードまでに存在するノードの処理所要時間を合計したもの」(d)を減算し、「平均処理所要時間(b)」を加算した値(e)を算出する。なお、「計算対象のノードまでに存在するノードの処理所要時間を合計したもの」(d)は、処理所要時間算出処理を、先頭のノードから順に繰り返していく仮定で、それぞれの「現実処理所要時間」として算出された値をその都度加えて算出したものであり、図17の処理が終了するまで、RAMに格納しておき、次のノードに対して、このフローチャートの処理を実行するたびに順次更新していく。
【0133】
次に、ステップS410において、ステップS409の算出値(e)が「0」かマイナス、もしくは「平均処理所要時間」(b)より小さくなったか否かを判定し、ステップS409の算出値が「0」かマイナス、もしくは「平均処理所要時間」(b)より小さくなったと判定した場合には、ステップS412に進み、「平均処理所要時間」(b)を「現実処理所要時間」として設定し、ステップS413に進む。
【0134】
一方、ステップS410で、ステップS409の算出値(e)が「0」かマイナス、もしくは「平均処理所要時間」(b)より小さくなっていないと判定した場合には、ステップS411にすすみ、ステップS409の算出値(e)を「現実処理所要時間」として設定し、ステップS413に進む。
【0135】
また、ステップS405で、ワークフローサーバ104の処理所要時間計算部106が、ステータスが「待機」中を含むノードであると判定した場合には、ステップS408において、「平均処理所要時間(b)」に「ノード別の待機ステータスのタスク数(x)」を乗算して「待機中の処理に係る時間(z)」を求める。そして、「待機中の処理に係る時間(z)」に「処理中の処理が終わるまでの時間」(c)を加算して「タスク処理が終了するまでの時間」(i)を求める。
【0136】
そして、ステップS409において、まず、計算対象ノードまでの経路にあるノードの処理所要時間を全て加算して「計算対象のノードまでに存在するノードの処理所要時間を合計したもの」(d)を求める。そして、前処理の値(ステップS408で求めた「タスク処理が終了するまでの時間」(i))から「計算対象のノードまでに存在するノードの処理所要時間を合計したもの」(d)を減算し、「平均処理所要時間(b)」を加算した値(f)を算出する。
【0137】
次に、ステップS410において、ステップS409の算出値(f)が「0」かマイナス、もしくは「平均処理所要時間」(b)より小さくなったか否かを判定し、ステップS409の算出値(f)が「0」かマイナス、もしくは「平均処理所要時間」(b)より小さくなったと判定した場合には、ステップS412にすすみ、「平均処理所要時間」(b)を「現実処理所要時間」として設定し、ステップS413に進む。
【0138】
一方、ステップS410で、ステップS409の算出値(f)が「0」かマイナス、もしくは「平均処理所要時間」(b)より小さくなっていないと判定した場合には、ステップS411にすすみ、ステップS409の算出値(f)を「現実処理所要時間」として設定し、ステップS413に進む。
【0139】
また、ステップS405で、ワークフローサーバ104の処理所要時間計算部106が、ステータスに何も定義されていない(そのノードに一つもタスクがないことを表している)場合には、ステップS406において、「平均処理所要時間(b)」を「現実処理所要時間」として設定し、ステップS413に進む。
【0140】
次に、ステップS413において、現実処理所要時間を合計してプロセス全体の時間を出す。即ち、各ノードの現実処理所要時間をサマリーし、その値を合計処理所要時間として起票ノードにセットし、本フローチャートの処理を終了する。
【0141】
以上示したように、各ノードに現実処理所要時間が表示され、起票ノードには全ての処理にかかる時間の合計が表示される。
【0142】
なお、起票ノードについては現実処理所要時間を算出しない。これは起票ノードが全てのワークフローの始まりにあたるため、ある一定の担当者がいつも作業を行うとは限らない、そのため所要時間の算出を行ってもその時間に信憑性が無いということと、このノードの処理時間による後方ノードへの時間的影響がないためである。
【0143】
以下、図19のフローチャートを参照して、クライアントが個別に持っている処理履歴情報の内容を作業者が行った帳票の処理内容に応じて常に最新の状態に保つ機能が処理履歴情報の更新機能について説明する。
【0144】
図19は、本発明のワークフローシステムにおける第4の制御処理の一例を示すフローチャートであり、図12のステップS117の処理履歴情報更新処理に対応するものであり、クライアントが個別に持っている処理履歴情報の内容を作業者が行った帳票の処理内容に応じて常に最新の状態に保つ機能が処理履歴情報の更新機能である。なお、このフローチャートの処理は、ワークフローサーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。また、図中、S2901〜S2904は各ステップを示す。
【0145】
ステップS2901において、ワークフローサーバ104のワークフロー制御部105は、タスクの処理に要した時間を算出する。そして、ワークフロー制御部105は、処理履歴情報を作業者ID、ノードID、経路IDで検索し、処理所要時間と処理回数を乗算し、トータルノード処理時間を求める。
【0146】
次に、ステップS2902において、ワークフロー制御部105は、現在の時刻からタスク情報の開始時刻を減算して、ノード処理時間に要した時間を算出する。
【0147】
次に、ステップS2903において、ワークフロー制御部105は、ステップS2901で算出したトータルノード処理時間とステップS2902で算出したノード処理時間を加算し、その値を「処理回数+1」の値で除算して、平均処理所要時間とする。
【0148】
次に、ステップS2904において、ワークフロー制御部105は、処理回数に処理回数+1の値を上書きし、本フローチャートの処理を終了する。
【0149】
以下、図20のフローチャートを参照して、現実処理所要時間を算出するためにクライアントごとに保持している、処理履歴情報と呼ばれる作業者の行った処理の履歴情報を検索し、自クライアントの処理履歴情報に他のクライアントの処理履歴情報を取り込むための処理履歴情報検索機能について説明する。
【0150】
図20は、本発明のワークフローシステムにおける第5の制御処理の一例を示すフローチャートであり、図12のステップS105の処理履歴情報検索処理に対応するものである。なお、このフローチャートの処理は、クライアント102のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。また、図中、S1101〜S1110は各ステップを示す。
【0151】
ステップS1101において、クライアント102の処理履歴情報制御部114は、自分の処理権限を持つノードの情報を取得する。詳細には、処理履歴情報制御部114は、自身の処理履歴情報を作業者IDで検索しノードIDと経路IDを取得する。
【0152】
次に、相手クライアントの処理履歴情報を検索する。
【0153】
詳細には、ステップS1102において、クライアント102の処理履歴情報制御部114は、ネットワークを介し接続されている他の作業者のクライアントマシンを検索する。
【0154】
次に、ステップS1103において、クライアント102の処理履歴情報制御部114は、検索したクライアントマシンの処理履歴情報を取得し、ステップS1101で取得したノードIDと経路IDをキーに検索を行う。
【0155】
次に、相手処理履歴情報の情報を自処理履歴情報に取り込む処理を行う(S1104〜S1109)。
【0156】
詳細には、ステップS1104において、クライアント102の処理履歴情報制御部114は、ステップS1103の検索結果から1つ処理履歴情報を取り出し、自分の持つノードIDと経路IDが同じ情報であるか否かを判定し、自分の持つノードIDと経路IDが同じ情報でないと判定した場合には、そのままステップS1109に進む。
【0157】
一方、ステップS1104で、クライアント102の処理履歴情報制御部114が、自分の持つノードIDと経路IDが同じ情報であると判定した場合には、ステップS1105において、相手作業者の作業者IDで自処理履歴情報を検索し、一致/不一致の判定を行う。
【0158】
ステップS1105で、クライアント102の処理履歴情報制御部114が、相手作業者の作業者IDと一致する作業者情報が時処理履歴情報に存在しないと判定した場合には、ステップS1106において、取得した相手の処理履歴情報を自分の処理履歴情報に追加し、ステップS1109に進む。
【0159】
一方、ステップS1105で、クライアント102の処理履歴情報制御部114が、相手作業者の作業者IDと一致する作業者情報が時処理履歴情報に存在すると判定した場合には、ステップS1107に進む。
【0160】
次に、ステップS1107において、クライアント102の処理履歴情報制御部114は、自分の処理履歴情報と取得した相手の処理履歴情報の双方の更新日を比較して、自分の処理履歴情報が取得した相手の処理履歴情報より古いか否かを判定する。
【0161】
ステップS1107で、クライアント102の処理履歴情報制御部114が、自分の処理履歴情報が取得した相手の処理履歴情報より古いと判定した場合には、ステップS1108において、取得した相手の処理履歴情報を自分の処理履歴情報に上書きし、ステップS1109に進む。
【0162】
次にステップS1109において、クライアント102の処理履歴情報制御部114は、全ての相手処理履歴情報の検索が終了したか否かを判定し、終了していないと判定した場合には、ステップS1104に戻り、次の処理履歴情報をチェックする。
【0163】
一方、ステップS1109で、クライアント102の処理履歴情報制御部114が、全ての相手処理履歴情報の検索が終了したと判定した場合には、ステップS1110において、自処理履歴情報をノードID、経路ID、処理所要時間、処理回数でソートし、処理を終了する。
【0164】
この、ステップS1110の自処理履歴情報のソート処理は、タスクの処理を行う際、効率よく検索を行うための作業である。
【0165】
なお、検索先は処理履歴情報に他の作業者のシステム情報が入っていれば優先的に検索を行う。もし他の作業者の情報が入っていなければ、自身のマシンから見て一番近いマシンの情報を検索する。
【0166】
また、
図21は、本実施形態における複数のクライアント102とワークフローサーバ104とのつながりをモデル化し模式図である。
【0167】
図21に示すように、図20に示した処理履歴情報検索・収集処理において、クライアントマシン同士は互いに情報を共有する形式をとる。このときサーバを介することはないが、サーバを介して行う構成であってもよい。
【0168】
また、各クライアント102が保持する処理履歴情報を、サーバに保持させるように構成してもよい。
【0169】
以下、図22のフローチャートを参照して、上述した現実処理所要時間を基に行う、タスクの振り分け処理(経路の自動振り分け処理,自動代行処理ともの称する)について説明する。
【0170】
このタスクの自動振り分けとは、ノードにタスクが滞留している場合に、図10に示した振り分けの条件を定義した条件設定ファイルを基に、トリガされ、システムが自動的に滞留しているタスクを代行処理が出来るノードに振り分ける機能のことである。
【0171】
また、図13(d)に示した、「代行処理」ボタンが指示された場合にも、このタスクの自動振り分け処理は実行される。
【0172】
図22は、本発明のワークフローシステムにおける第6の制御処理の一例を示すフローチャートであり、図12のステップS118の経路の自動振り分け処理に対応する。なお、このフローチャートの処理は、ワークフローサーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。また、図中、S501〜S507は各ステップを示す。
【0173】
ステップS501において、作業者による指示「代行指示」を受けたり、又は、条件設定ファイルとワークフローの条件が合致した旨の通知を受けると、ワークフローサーバ104のワークフロー制御部105は、代行処理できるクライアントを検索するために、代行処理を行うノードIDと経路IDを取得し、経路の自動振り分け処理を開始する。
【0174】
次に、ステップS502において、ワークフローサーバ104のワークフロー制御部105は、選択されたタスクが滞留しているクライアントマシンの処理履歴情報(図9)を検索し、代行依頼元と同一のノードIDと経路IDをもつクライアントの情報を取得し、該取得した各クライアントの情報内の平均処理所要時間(列5)を比較し、該平均処理所要時間が時間が最も短いクライアントの情報を取得する。
【0175】
次に、ステップS503において、ワークフローサーバ104のワークフロー制御部105は、図9に示した処理履歴情報をもとに例を示す。
【0176】
例えばノードIDが承認1で経路IDが経路1という組合せが代行処理されるタスクだとすると、行1,行3,行4が対象になる。続いて、それぞれの平均処理所要時間(列5)を比較し、最も時間が短いものを取得する。ここでは行3の情報が取得される。
【0177】
もし、設定ファイルの条件によるタスクの分散の場合は、図10に示した条件設定ファイルで示されているような条件で比較する。例えば、ノードIDが「承認1」で経路IDが「経路1」の場合は、1行目の設定が比較対象になる。
【0178】
設定されている条件は目標時間が「1:00」でその時間に「±0:10」の範囲で処理ができ、なおかつそのノードの処理を「50」回以上行ったことのある作業者が対象となる。この条件で図9に示した処理履歴情報を検索した場合、対象は行3の「B3000」という作業者となる。
【0179】
以下、図22のフローチャートの説明に戻る。
【0180】
ステップS503において、ワークフローサーバ104のワークフロー制御部105は、タスクの振り分け処理を行うために、ステップS502で処理履歴情報から取得した情報のクライアントIDを元に、振り分け先のクライアントマシンを検索し、その接続状態を確認する。また同時に図8に示した作業者情報111を元に、作業者がワークフローシステムへのログインが行われているか否かもチェックする。
【0181】
ステップS503で、ワークフローサーバ104のワークフロー制御部105が、ログインもしくはマシンの起動が確認できなかったと判定した場合には、ステップS502に戻り、再び処理履歴情報を検索し、条件に合う作業者の情報を取得する。なお、条件に合う作業者の情報がない場合は、比較した作業者の情報のクライアントIDを取得して、そのマシンの処理履歴情報も同じように検索する。全てのクライアントの処理履歴情報を検索しても条件に合う作業者の情報が無い場合は、エラーを画面に表示する。
【0182】
一方、ステップS503で、ワークフローサーバ104のワークフロー制御部105が、ログイン且つマシンの起動が確認できたと判定した場合には、その作業者が現在行っているノードの処理状況を調べるため、ステップS504において、ステップS501で取得した、代行処理を行うノードIDと経路IDをしていして、処理所要時間計算部106に処理所要時間前処理(図17に示した)を実行させ、現実処理所要時間を算出させる。
【0183】
次に、ステップS505において、ワークフローサーバ104のワークフロー制御部105は、条件設定ファイルの条件にステップS504で求めた現実処理所要時間が当てはまるか否かを確認する。この確認処理は、ステップS504で求めた現実処理所要時間が処理所要時間情報(図7)の目標時間(列3)より短いか否かで確認する。
【0184】
そして、ステップS505において、ワークフローサーバ104のワークフロー制御部105が、条件設定ファイルの条件が満たされていると判定した場合には、ステップS506において、その作業者に滞留しているタスクを分配し、代行を依頼した趣旨を警告通知機能113を使用して代行者と代行依頼元の作業者に送信する。
【0185】
一方、ステップS505で、ワークフローサーバ104のワークフロー制御部105が、条件設定ファイルの条件が満たされていないと判定した場合には、ステップS502の処理に戻る。
【0186】
そして、ステップS507において、ワークフローサーバ104のワークフロー制御部105は、上記ステップS506までの処理を繰り返し、設定ファイルに設定されたタスクや作業者が指示したタスクが全て分配されたかを確認し、分配されていないと判定した場合には、ステップS502に戻り、次のタスクの分配を行う。
【0187】
一方、ステップS507で、ワークフローサーバ104のワークフロー制御部105が、設定ファイルに設定されたタスクや作業者が指示したタスクを全て分配したと判定した場合には、本フローチャートの処理を終了する。
【0188】
図23,図24は、図22に示したタスク自動振り分け処理を用いて、その効果をプロセスマップで示したものである。
【0189】
なお、図23は上記の分配機能を実行した結果をマップで表したものである。また、図24は上記の分配機能を実行前の図6に示したタスク情報の状態をマップで表したものに対応する。
【0190】
図23を図24比較すると、図24において、1401で示されている処理にかかる合計時間「23:36」が図23において、1301で示されている処理にかかる合計時間「17:00」で示すように短くなっているのがわかる。
【0191】
以下、図25を参照して、タスク情報を監視し、代行処理などノードの情報に変化があった場合に帳票のデータやノードの情報を作業者に通知する警告通知機能について説明する。
【0192】
図25は、本発明のワークフローシステムにおける第8の制御処理の一例を示すフローチャートであり、図12のステップS119の警告通知処理に対応する。なお、このフローチャートの処理は、ワークフローサーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。また、図中、S2801〜S2803は各ステップを示す。
【0193】
まず、ステップS2801において、ワークフローサーバ104の警告通知部113は、タスク情報109のノードIDをタスク別に監視を行う。
【0194】
ステップS2802において、ワークフローサーバ104の警告通知部113は、ノードIDに追加や遷移などの変化があったか否かを判定し、ノードIDに追加や遷移などの変化がなかったと判定した場合には、ステップS2801に戻り、監視を続ける。
【0195】
一方、ステップS2802で、ワークフローサーバ104の警告通知部113は、ノードIDに追加や遷移などの変化があったと判定した場合には、ステップS2803において、作業者情報を検索し、遷移先や委任されたノードの担当者に伝票内容やタスク内容をメールで通知する。
【0196】
なお、本発明はメールでの配信のみに限ったものではなく、システムの通知機能やその他プロトコルを利用した通知機能に対応している。
【0197】
また、ワークフロー制御部105等からの指示により、通知を行うことも可能である。
【0198】
以下、図26を参照して、各ノードの処理に要する時間の目標値として設定した時間と現実処理所要時間を表示して、その差を算出し表示することで担当者の割り当てなどの目安として利用可能な目標処理所要時間の表示機能について説明する。
【0199】
図26は、本発明のワークフローシステムにおける第9の制御処理の一例を示すフローチャートであり、目標処理所要時間の表示処理に対応する。なお、このフローチャートの処理は、ワークフローサーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。また、図中、S1501〜S1505は各ステップを示す。
【0200】
まず、ステップS1501において、ワークフローサーバ104のファークフロー制御部105は、例えば、図13(b)等で指示された伝票に対応する各ノードIDと経路IDをキーに各クライアント102の各ノードに対応する処理履歴情報を検索し、取得した各ノードに対応する平均処理所要時間の平均値をそれぞれ求める。
【0201】
次に、ステップS1502において、ワークフローサーバ104のファークフロー制御部105は、処理所要時間情報110をノードIDと経路IDをキーに検索し、各ノードに対応する目標所要時間をそれぞれ取得する。
【0202】
次に、ステップS1503において、ワークフローサーバ104のファークフロー制御部105は、ステップS1501で算出した各ノードに対応する平均処理所要時間の平均値からステップS1502で取得した各ノードに対応する目標所要時間をそれぞれ減算し、その差をそれぞれ求める。
【0203】
次に、ステップS1504のおいて、ワークフローサーバ104のファークフロー制御部105は、ステップS1503で算出した上記の各ノードに対応する処理所要時間と目標処理所要時間とその差をそれぞれ合計する。
【0204】
ステップS1505において、ワークフローサーバ104のファークフロー制御部105は、ステップS1504で算出した処理所要時間の合計値,目標処理所要時間の合計値,差の合計値を起票ノードに表示し、それ以外のノードにはノードごとの目標時間、現実処理所要時間をプロセスマップに表示する画面を生成し、クライアント102に送信する。
【0205】
上記処理の結果、クライアント102では、図16に示した様に表示される。図16のように、ノードごとに目標と実績の所要時間が表示され、その差も同時に表示される。
【0206】
なお、ここでは振り分けを行っていない状態で所要時間を求めたが、振り分けを行った場合でも上記の方法を使用して求めることが可能である。
【0207】
以下、図27を参照して、タスクの進行状況の表示機能について説明する。この機能は、自分が発行したタスクが現在どのノードの処理に到達しているかを表示するものである。
【0208】
図27は、本発明のワークフローシステムにおける第10の制御処理の一例を示すフローチャートであり、タスクの進行状況の表示処理に対応する。なお、このフローチャートの処理は、ワークフローサーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。また、図中、S1701〜S1703は各ステップを示す。
【0209】
まず、ステップS1701において、ワークフローサーバ104のファークフロー制御部105は、上述した処理所要時間の算出や経路の自動振り分け時に、読み込まれるタスク情報のステータスが「処理中」のノードを検索する。
【0210】
ステップS1702において、ワークフローサーバ104のファークフロー制御部105は、ステップS1701で取得した情報のうち、表示したいタスクをユーザインタフェース103で選択させるために、クライアント102に送信し、クライアント102でいずれかのタスクが選択されると、ステップS1703において、対象ノードを特定できるような視覚形態(本実施形態では、対象ノードに色を付けて区別可能な形態)で、そのタスクの情報をユーザインタフェース103に返す。
【0211】
上記処理の結果、クライアント102では、図15に示した様に表示される。図15のように、承認1ノードのように進行中のノードが色づけされて表示される。
【0212】
以上示したように、各クライアントが作業者のスキル情報をもった処理履歴情報を持っているため、作業者が担当できる処理が増減した場合でも、ワークフローサーバに一切変更を加えることなく対応が出来る。
【0213】
また、作業者のスキルレベルと時間の進行による滞留タスクの増減を加味して処理にかかる予想時間を算出し、タスクの分配に利用しているため、大規模なワークフローシステムであっても精度の高い予想時間を算出でき、常に最適なタスク分配を行うことができワークフローの作業効率あげることが出来る。
【0214】
さらに、クライアント間で作業者の情報を管理するため、サーバはその情報をもとに適時、代行者を設定する。そのため予め代行者として特定の作業者を設定する必要が無く、作業者の増減やスキルレベルに変化に柔軟に対応するシステム構成が可能となる。
【0215】
また、作業者が代行の可否を詳細に設定できるため、機密書類など第三者に見せたくない伝票を勝手に分配されることが無くなり、セキュリティの向上につながる。
【0216】
さらに、目標とされる時間と実際の作業時間との差分を表示することで、人材の教育やシステムの構成の見直しの判断材料として用いることが出来る。
【0217】
また、一連の業務のワークフローに置いて処理終了までの予想時間が分かるため、スケジューリングを行いやすく、より効率的な業務の遂行を可能とする。
【0218】
以上説明したように、作業者の要求から生じた起票や承認などの処理情報を保存するタスク情報109を有し、処理所要時間計算部106,ワークフロー制御部105が、経由するノードに滞留したタスクが時間の経過に従い、処理されていく過程と所要時間をシミュレーションし、作業者のスキルと処理履歴をクライアントマシンごとに格納した処理履歴情報112と前記タスク所要時間解析手段で得た情報からタスクの分配条件を解析し、他のノードにタスクを分配し、処理を代行させる。
【0219】
また、ビジネスプロセスを形成するノード群において、ノードごと他のビジネスプロセスから生成されたタスクが混在して処理を待ち、かつノードごと同時並行してタスク処理される状況下、該ビジネスプロセスに関連したノードとそのタスクの累積処理負荷を、前記処理履歴情報112に基づき、処理能力と処理待ちに関係する累積タスクから処理予定時間として処理所要時間計算部106が演算する。
【0220】
さらに、クライアントマシンごとに自己の処理履歴情報として所有する処理履歴情報112は、クライアントマシン間で共有され、クライアントマシンが他のクライアントマシンの処理履歴保存情報を検索・更新・追加する。
【0221】
また、前記分配設定ファイルに定義されたタスクの分配条件に基づき、タスク分配の可否を判断し、処理履歴情報112に基づく作業者の現在のスキルと、処理予定時間で示されたタスク処理の負荷の情報から、タスクを最適な作業者に分配し代行を指定する。
【0222】
従って、作業者が使用するクライアントごとに処理履歴情報と呼ぶ作業者のスキル情報を備えた作業履歴の情報を持ち、上記の処理履歴情報のスキル情報と、時間の進行によるタスク数の増減を加味した、ノードの滞留タスク数を掛け合わせることで現実処理所要時間を算出し、その算出した時間を元に代行者にタスクを分配することで第一の目的を達成する。
【0223】
また、クライアントが共有する処理履歴情報の作業履歴をサーバが検索し、実績があった場合は代行可能な作業者としてサーバが適時タスクを振り分けることで第二の目的を達成する。
【0224】
さらに、代行処理を行う条件を設定した条件ファイルを担当者ごとに用意し、サーバがこのファイルを読み込むことで条件にそったタスクの分配を行うことを可能とし、第三の目的を達成する。
【0225】
また、プロセス情報と処理履歴情報から経路を割り出し、現実処理所要時間と予め設定した目標時間を比較し、その値の差をプロセスマップに表示することで第四の目的を達成する。
【0226】
よって、各クライアントが作業者のスキル情報をもった処理履歴情報を持っているため、作業者が担当できる処理が増減した場合でも、サーバに一切変更を加えることなく対応が出来る。
【0227】
さらに、作業者のスキルレベルと時間の進行による滞留タスクの増減を加味して処理にかかる予想時間を算出し、タスクの分配に利用しているため、大規模なワークフローシステムであっても精度の高い予想時間を算出でき、常に最適なタスク分配を行うことができワークフローの作業効率あげることが出来る。
【0228】
クライアント間で作業者の情報を管理するため、サーバはその情報をもとに適時、代行者を設定する。そのため予め代行者として特定の作業者を設定する必要が無く、作業者の増減やスキルレベルに変化に柔軟に対応するシステム構成が可能となる。
【0229】
作業者が代行の可否を詳細に設定できるため、機密書類など第三者に見せたくない伝票を勝手に分配されることが無くなり、セキュリティの向上につながる。
【0230】
目標とされる時間と実際の作業時間との差分を表示することで、人材の教育やシステムの構成の見直しの判断材料として用いることが出来る。また、一連の業務のワークフローに置いて処理終了までの予想時間が分かるため、スケジューリングを行いやすく、より効率的な業務の遂行を可能とする。
【0231】
正規のワークフロープロセスに対し、タスクの滞留が起こった場合にクラスタリングしたクライアントマシンを検索し、最適な代行者にタスクを振り分けることを特徴とする。
【0232】
また、任意のタイミングでタスクの処理にかかる全所要時間を表示することを特徴としている。
【0233】
上記各変形例のいずれか又は全てを組み合わせた構成も本発明に含まれるものである。
【0234】
上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0235】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0236】
以下、図28に示すメモリマップを参照して本発明に係るワークフローシステムを構成するコンピュータで読み取り可能なデータ処理プログラムの構成について説明する。
【0237】
図28は、本発明に係るワークフローシステムを構成するコンピュータで読み取り(読み出し)可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【0238】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0239】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0240】
本実施形態における図12,図17,図18,図19,図20,図22,図25,図26,図27に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0241】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0242】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0243】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0244】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0245】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0246】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0247】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【図面の簡単な説明】
【0248】
【図1】本発明に係る第1実施形態を示すワークフローシステムにおけるワークフロープロセスの構成の一例を示す模式図である。
【図2】本発明に係る第1実施形態を示すワークフローシステムの構成の一例を示すシステム構成図である。
【図3】図2に示したワークフローシステムを機能的な視点から説明するための機能ブロック図である。
【図4】図2に示したクライアント,ワークフローサーバに適用可能なコンピュータの構成の一例を示すブロック図である。
【図5】図2に示したプロセス定義情報のデータ構成の一例を示すデータ構成図である。
【図6】図2に示したタスク情報のデータ構成の一例を示すデータ構成図である。
【図7】図2に示した処理所要時間情報のデータ構成の一例を示すデータ構成図である。
【図8】図2に示した作業者情報のデータ構成の一例を示すデータ構成図である。
【図9】図2に示した処理履歴情報のデータ構成の一例を示すデータ構成図である。
【図10】図2に示した条件設定ファイルのデータ構成の一例を示すデータ構成図である。
【図11】図7に示した処理所要時間情報,図8に示した作業者情報,図10に示した条件設定ファイルを設定するための定数設定画面の一例を示す模式図である。
【図12】本発明のワークフローシステムにおける第1の制御処理の一例を示すフローチャートである。
【図13】図12に示した処理に応じたクライアントの画面遷移を示す模式図である。
【図14】本発明のワークフローシステムにおける現実処理所要時間表示の一例を示す模式図である。
【図15】本発明のワークフローシステムにおける進行状況表示の一例を示す模式図である。
【図16】本発明のワークフローシステムにおける目標時間表示の一例を示す模式図である。
【図17】本発明のワークフローシステムにおける第2の制御処理の一例を示すフローチャートである。
【図18】本発明のワークフローシステムにおける第3の制御処理の一例を示すフローチャートである。
【図19】本発明のワークフローシステムにおける第4の制御処理の一例を示すフローチャートである。
【図20】本発明のワークフローシステムにおける第5の制御処理の一例を示すフローチャートである。
【図21】本実施形態における複数のクライアントとワークフローサーバとのつながりをモデル化し模式図である。
【図22】本発明のワークフローシステムにおける第6の制御処理の一例を示すフローチャートである。
【図23】本発明のワークフローシステムにおける自動振り分け後の状態を示す模式図である。
【図24】本発明のワークフローシステムにおける自動振り分け後の状態を示す模式図である。
【図25】本発明のワークフローシステムにおける第8の制御処理の一例を示すフローチャートである。
【図26】本発明のワークフローシステムにおける第9の制御処理の一例を示すフローチャートである。
【図27】本発明のワークフローシステムにおける第10の制御処理の一例を示すフローチャートである。
【図28】本発明に係るワークフローシステムを構成するコンピュータで読み取り(読み出し)可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0249】
101 ネットワーク
102 クライアント
103 ユーザインタフェース
104 ワークフローサーバ
105 ワークフロー制御部
106 処理所要時間計算部
107 待ちタスク解析部
108 プロセス定義情報
109 タスク情報
110 処理所要時間情報
111 作業者情報
112 処理履歴情報
113 警告通知部
114 処理履歴情報制御部
115 条件設定ファイル

【特許請求の範囲】
【請求項1】
クライアント・サーバシステムで構成されるワークフローシステムにおいて、
ワークフローの処理単位であるノードが所定の順序で複数結合されるビジネスプロセスから生成されたタスクの処理状況を管理するタスク管理手段と、
前記ノード毎に過去の処理履歴情報を記憶する処理履歴情報記憶手段と、
前記ビジネスプロセスから生成されるタスクの、該ビジネスプロセスを形成する任意のノードでの処理所要時間を、該ノードに滞留するタスク数と該ノードの前記過去の処理履歴に基づいて算出される値から、該ノードより上流のノードでの前記生成されるタスクの処理所要時間の合算値を減算することにより算出する算出手段と、
を有することを特徴とするワークフローシステム。
【請求項2】
各クライアントマシンは、前記ノード毎に過去の処理履歴情報を記憶する処理履歴情報記憶手段と、前記他のクライアントマシンの前記記憶手段から前記ノード毎の処理履歴情報を取得し、更新又は追加する更新手段とを有することを特徴とする請求項1記載のワークフローシステム。
【請求項3】
タスクの分配条件として処理履歴を記憶する分配条件記憶手段と、
前記分配条件記憶手段に記憶される処理履歴に合致した処理履歴に対応するノードへタスクを分配する分配手段と、
を有することを特徴とする請求項1又は2記載のワークフローシステム。
【請求項4】
タスクの分配条件としてタスクの各ノードでの処理目標時間を記憶する分配条件記憶手段と、
前記算出手段で算出される分配されるタスクの処理所要間が、前記処理目標時間内となるノードにタスクを分配する分配手段と、
を有することを特徴とする請求項1又は2記載のワークフローシステム。
【請求項5】
クライアント・サーバシステムで構成されるワークフローシステムの制御方法において、
ワークフローの処理単位であるノードが所定の順序で複数結合されるビジネスプロセスから生成されたタスクの処理状況を管理するタスク管理ステップと、
ノードの処理の際に、前記ノード毎に過去に処理した処理履歴情報を記憶手段に記憶していく処理履歴情報更新ステップと、
前記ビジネスプロセスから生成されるタスクの、該ビジネスプロセスを形成する任意のノードでの処理所要時間を、該ノードに滞留するタスク数と該ノードの前記過去の処理履歴に基づいて算出される値から、該ノードより上流のノードでの前記生成されるタスクの処理所要時間の合算値を減算することにより算出する算出ステップと、
を有することを特徴とするワークフローシステムの制御方法。
【請求項6】
請求項5に記載されたワークフローシステムの制御方法を実行するためのプログラム。
【請求項7】
請求項5に記載されたワークフローシステムの制御方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate


【公開番号】特開2006−18529(P2006−18529A)
【公開日】平成18年1月19日(2006.1.19)
【国際特許分類】
【出願番号】特願2004−194952(P2004−194952)
【出願日】平成16年6月30日(2004.6.30)
【出願人】(301015956)キヤノンソフトウェア株式会社 (364)