JP2008135054A - ワークフロー管理方法及びその実施システム - Google Patents
ワークフロー管理方法及びその実施システム Download PDFInfo
- Publication number
- JP2008135054A JP2008135054A JP2008007480A JP2008007480A JP2008135054A JP 2008135054 A JP2008135054 A JP 2008135054A JP 2008007480 A JP2008007480 A JP 2008007480A JP 2008007480 A JP2008007480 A JP 2008007480A JP 2008135054 A JP2008135054 A JP 2008135054A
- Authority
- JP
- Japan
- Prior art keywords
- work
- staying
- priority
- workflow management
- affected
- 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.)
- Pending
Links
Images
Abstract
【課題】 滞留作業が発生した場合にその滞留作業によって業務の進行に影響を受けない案件に計算機リソースや人的リソースを優先的に配分することが可能な技術を提供する。
【解決手段】 業務における複数の作業間の関係を定義するプロセス定義情報に基づいて作業の実行管理を行うワークフロー管理方法において、作業の進捗状況を検知し、その検知された進捗状況に基づいて滞留作業を特定するステップと、前記プロセス定義情報に基づいて前記滞留作業と所定の関係を有する作業を特定するステップと、前記所定の関係を有する作業の処理優先度を前記滞留作業との間の関係に応じて設定するステップと、前記設定された処理優先度に応じて当該作業の実行を制御するステップとを有するものである。
【選択図】 図10
【解決手段】 業務における複数の作業間の関係を定義するプロセス定義情報に基づいて作業の実行管理を行うワークフロー管理方法において、作業の進捗状況を検知し、その検知された進捗状況に基づいて滞留作業を特定するステップと、前記プロセス定義情報に基づいて前記滞留作業と所定の関係を有する作業を特定するステップと、前記所定の関係を有する作業の処理優先度を前記滞留作業との間の関係に応じて設定するステップと、前記設定された処理優先度に応じて当該作業の実行を制御するステップとを有するものである。
【選択図】 図10
Description
本発明は複数の作業からなる業務の流れを事前定義したプロセス定義に基づいて作業実行と業務の進行状態の管理を支援するワークフロー管理システムに関し、特に業務中の滞留作業の存在を考慮して作業実行と業務の進行状態の管理を支援するワークフロー管理システムに適用して有効な技術に関するものである。
ワークフロー管理システムは、複数の作業からなる業務の流れをプロセス定義として事前定義し、この定義に基づいて作業実行と業務の進行状態の管理を支援する技術である。プロセス定義は、業務の流れである業務フローをモデル化したものと言える。各作業における処理は、人が行う場合や、業務プログラムにより自動的に実行される場合があるが、ワークフロー管理システムは、これらの作業の人への割り当てや業務プログラムによる処理の実行制御を行い、且つ業務フロー全体としての状態管理、進捗管理を行うものである。
こうしたワークフロー管理システムには、作業者に大量の作業が割り当てられた場合や、作業者が不在の場合に、作業が滞留するという問題がある。一般には、滞留した作業を別の作業者に割り当てることにより、前記問題の解決を行っている。この様な解決手法の例として、米国特許第5、918、226号(特開平8−190584号公報)がある。この従来技術では、滞留している回覧文章の回収及び再配布等により作業が滞ってしまう滞留状態を解消可能なワークフローシステムについて述べている。
しかしながら、滞留作業を別の作業者に割り当てることにより滞留状態を解消する従来の手法は、滞留作業を割り当てる作業者が存在しない場合では適用することができない。例えば、滞留作業を実行する際に、専門知識や特別な処理装置等を必要とする場合や、余剰な人員が存在しない場合等では、滞留作業を別の作業者に割り当てることができない可能性がある。また、滞留作業を別の作業者に割り当てる事が可能な場合でも、処理能力を上回る大量の作業が発生した場合等では、滞留作業が発生する。
なお、滞留作業には、全く作業が進捗しない作業の他、作業自体は進捗しているが、予定よりも進捗状況が遅れている作業も含まれるものとする。
滞留作業が発生した場合、当該作業に関連する作業に影響が生じる。例えば、滞留作業の上流にある作業を実行中の案件は、滞留作業により業務処理の進捗に影響を受ける。この場合、滞留作業の遷移元にある作業を実行した場合、該作業終了後に案件は滞留作業へと遷移し、そこで業務処理の進行は中断される。
こうした場合、作業者が複数の異なる業務に携わっているのであれば、直後で業務の進行が中断される作業を行うよりも他の業務処理を優先的に行った方が、全体として効率が良くなり、作業者の人的リソースを有効に活用出来ることがある。
特に、処理終了後に滞留作業へ遷移する作業の優先度が高い場合に有効に活用できる度合いが大きくなる。これは、作業者は作業に関連付けられた優先度に基づき、処理すべき作業を特定する為である。この様な場合、滞留せずに完了可能な業務があるかどうかに関わらず、滞留作業へ遷移する作業に人的リソースや計算機リソースを優先的に割り当てることになり、この割り当てを滞留作業以外の他の作業に変更した場合の効果はより顕著になる。
なお、滞留作業に関連する作業としては、上流にある作業以外のものも含まれ、例えば、下流にあるものや並行して行われるものも含まれるものとする。すなわち、この関連する作業には、滞留作業の滞留に起因して業務処理の進捗に影響が表れる作業が含まれる。
本発明の目的は上記問題を解決し、滞留作業が発生した場合にその滞留作業によって業務の進行に影響を受けない案件に計算機リソースや人的リソースを優先的に配分することが可能な技術を提供することにある。
本発明の他の目的は案件に応じて閾値を変更することにより種々の案件における作業の滞留状態を判定することが可能な技術を提供することにある。
本発明の他の目的は個々の作業者または業務プログラムにより滞留した作業を効率良く検出することが可能な技術を提供することにある。
本発明は、業務における複数の作業間の関係を定義するプロセス定義情報に基づいて、作業の実行管理を行うワークフローシステムにおいて、作業の滞留状態に応じて、作業の処理優先度を設定若しくは変更するものである。これは、滞留している作業と所定の関係を有する作業の処理優先度を設定若しくは変更することである。なお、プロセス定義情報には、複数の作業と該作業間の処理順序とを定義する情報が含まれるものとする。
本発明のワークフロー管理システムでは、まず、各作業に対する未実行作業数を取得する。この未実行作業数が事前定義した閾値を超える作業を検索することにより、滞留作業を検知する。
次にプロセス定義を用いて、この滞留作業により業務の進捗に影響を受ける作業の範囲または影響を受ける作業の少なくとも一方を検知する。
そして、この作業範囲に含まれる作業若しくは影響を受ける作業に対する処理優先度を下げ、処理優先度の高い順に作業の実行要求を行う。これらの処理を実行することにより、滞留作業によって業務の進捗に影響を受ける作業は優先度を下げて処理することになる。その結果、案件の進行に影響を受けない業務に、計算機リソースや人的リソースを配分することが可能となる。
また本発明には、以下の処理が含まれる。すなわち、検知された滞留作業により業務の進捗に影響を受けない作業範囲または進捗に影響を受けない作業の少なくとも一方を検知し、その検知された作業範囲に含まれる作業若しくは検知された作業の処理優先度を上げる処理を実行する。
更に本発明には、上記の処理優先度を上げる処理と下げる処理のコンビネーションも含まれる。つまり、影響を受ける作業の処理優先度を下げてかつ影響を受けない作業の処理優先度を上げる処理を行う。
以上の様に本発明のワークフロー管理システムによれば、作業の滞留状態に応じて各作業の処理優先度を変更するので、滞留作業が発生した場合にその滞留作業によって業務の進行に影響を受けない案件に計算機リソースや人的リソースを優先的に配分することが可能である。
本発明によれば作業の滞留状態に応じて各作業の処理優先度を変更するので、滞留作業が発生した場合にその滞留作業によって業務の進行に影響を受けない案件に計算機リソースや人的リソースを優先的に配分することが可能である。
以下に複数の作業からなる業務の流れを事前定義したプロセス定義に基づいて作業実行と業務の進行状態の管理を支援し、作業の滞留状態に応じて処理優先度を変更する一実施形態のワークフロー管理システムについて説明する。
以下の実施形態におけるワークフロー管理システムの例は、本発明の説明に不要な機能や詳細は省略している為、一般的なワークフロー管理システムに比べて単純化されているが、本発明の適用範囲が制限されるものではない。
図1は本実施形態のワークフロー管理システムの構成を示す図である。図1に示す様に本実施形態のワークフロー管理システムを実現する計算機0120は、クライアント要求処理部0151と、ワークフロー実行状態制御部0152と、業務プログラム実行制御部0153と、優先度制御部0154とを有している。
クライアント要求処理部0151は、クライアント業務プログラム0103から送信されたコマンドを受け付ける処理部である。ワークフロー実行状態制御部0152は、クライアント要求処理部0151及び業務プログラム実行制御部0153より送信されたコマンドを受け付け、プロセス定義0141に従い、ワークフロー実行状態情報0142を適切に変更する処理部である。
業務プログラム実行制御部0153は、各作業の処理優先度に応じてその作業の実行要求を行う実行制御部である。優先度制御部0154は、前記作業の滞留状態を判定し、該作業の滞留により業務の進捗に影響を受ける作業の範囲を特定し、特定した該作業範囲に含まれる各作業に対する処理優先度を決定する処理部である。
ワークフロー管理システムをクライアント要求処理部0151、ワークフロー実行状態制御部0152、業務プログラム実行制御部0153及び優先度制御部0154として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納される。また、格納されたプログラムは、メモリにロードされて実際に実行される。なお、前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。記録媒体は、情報を格納するものであれば良く、DVD(Digital Versatile Disc)やフロッピーディスクが含まれる。また、前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
本実施形態の計算機0120は、表示装置0161、キーボード0162、マウス0163、通信装置0164、メモリ0165、CPU0166、補助記憶装置0167の各ハードウェアから構成される。
ワークフロー実行制御エンジン0101、自動実行業務プログラム0102及びクライアント業務プログラム0103は、ソフトウェアプログラムであり、補助記憶装置0167内に格納されている。各ソフトウェアプログラムは、実行時にメモリ0165に読み込まれ、CPU0166にて実行される。
また、表示装置0161や、キーボード0162、マウス0163等の入力装置により、各ソフトウェアプログラムは作業者と対話を行うことができる。更に、通信装置0164により、コンピュータネットワーク0110を介して、他の計算機0120上で動作するソフトウェアプログラムと通信することができる。また、各ソフトウェアプログラムは、同一計算機0120上で動作しても、コンピュータネットワーク0110を介し、異なる計算機0120上で動作しても構わない。
ワークフロー実行制御エンジン0101は、作業の処理手順について事前定義したプロセス定義0141に基づき、作業や業務フローの実行状態を管理する。また、ワークフロー実行制御エンジン0101は、コンピュータネットワーク0110を介し、自動実行業務プログラム0102に対して処理要求を送信し、結果を取得する。更に、ワークフロー実行制御エンジン0101は、クライアント業務プログラム0103から処理要求を受け付ける。ワークフロー実行制御エンジン0101の動作に関しては後述する。
自動実行業務プログラム0102は、ワークフロー実行制御エンジン0101からの業務処理の実行要求を受け付け、作業に対する業務処理を人手を介さずに実行し、業務処理実行後に完了通知若しくは障害発生通知を返す。
クライアント業務プログラム0103は、作業者である人が直接操作することで処理を行うソフトウェアプログラムである。クライアント業務プログラム0103は、ワークフロー実行制御エンジン0101に対して作業者に割り当てられた作業を取得する。そして、クライアント業務プログラム0103は、表示装置0161に前記取得結果の表示を制御し、また割り当てられた作業に対する業務処理を行う。また、作業に対する業務処理完了後に、ワークフロー実行制御エンジン0101に対して、作業の完了通知を行う。
ここで本実施形態では、作業者が不在となった場合、業務プログラムで障害が発生した場合、未実行作業数が所定の閾値を超えた場合、または状態が「Ready」となっている作業数が所定の閾値を超えた場合に滞留状態が生じているものとして判定する。また本実施形態の処理優先度は、業務プログラム実行制御部0153が作業の実行要求を行う際の各作業の優先順位を示すものである。なお前記滞留状態の判定では、ある作業が複数の副作業からなり、それらの副作業の内で予め定められた閾値以上の副作業が未実行である場合にその作業を滞留作業として特定する処理も含まれるものとする。
図2は本実施形態のプロセス定義0141の定義イメージを示す図である。本実施形態において事前定義されたプロセス定義0141は補助記憶装置0167内に複数格納出来る。
プロセス定義0141は、作業定義0220と、複数の作業定義0220をアロー0210で連結した有向グラフとして表現される。有向グラフの開始点、終了点、分岐点、合流点は制御ノードと呼ぶ有向グラフ上の特殊なノードを用いて表現する。
図2中の0201〜0204は制御ノードであり、それぞれ開始ノード0201、終了ノード0204、分岐ノード0202、合流ノード0203である。有向グラフは開始ノード0201で始まり終了ノード0204で終了する。
次にプロセス定義0141の詳細及び補助記憶装置0167への格納例を図3で示す。
図3は本実施形態のプロセス定義0141の一例を示す図である。図3で示す様に、プロセス定義0141内の制御ノード0201〜0204に関する定義情報は、制御ノード定義情報テーブル0311内に格納される。また、作業定義0220に関する定義情報は、作業定義情報テーブル0411内に格納される。更に、アロー0210に関する定義情報は、アロー定義情報テーブル0511内に格納される。何れのテーブルも複数のプロセス定義0141に関する情報を格納する為、どのプロセス定義0141に属する情報かを一意に特定するプロセス定義名を第1カラムに持つ(図中のカラム、0301、0401、0501)。以下、各テーブル毎にカラムの詳細を説明する。
制御ノード定義情報テーブル0311において、制御ノード名0302は制御ノード0201〜0204を特定する為の名称である。ノード種別0303は、制御ノードの種類を表し、「開始」、「終了」、「分岐」、「合流」の何れかの値をとる。
作業定義情報テーブル0411において、作業定義名0402は、プロセス定義0141における作業定義0220を一意に特定する為の名称である。作業種別0403は、「作業者実行」、「自動実行」の何れかの値をとり、作業定義に対する業務処理を、作業者がクライアント業務プログラム0103を直接操作することによって実行するか(「作業者実行」)、ワークフロー実行制御エンジン0101が自動実行業務プログラム0102に対して処理要求を送信することにより人手を介さず処理するか(「自動実行」)を設定する。
作業情報0404は、作業種別0403が「作業者実行」の場合に、作業を処理すべき作業者を特定する為の作業者名を指定し、作業種別0403が「自動実行」の場合に、作業を処理すべき自動実行業務プログラム0102を特定する為の自動実行業務プログラム名を指定する。
遷移先関連度0405は、「依存」、「独立」の何れかの値をとり、該作業定義の処理優先度が遷移先の作業の状態に応じて影響を受けるか(「依存」)、処理優先度に影響を受けないか(「独立」)、を設定する。
優先度0406は、作業定義の処理の優先順位を表し、「高」、「中」、「低」の何れかの値をとる。滞留閾値0407は、作業定義の滞留状態を判定する為の情報である。作業定義の未実行作業数が前記滞留閾値0407を超えた場合に、ワークフロー実行制御エンジン0101は、該作業定義を滞留状態と判定する。
アロー定義情報テーブル0511において、遷移元0502、遷移先0503は、プロセス定義0141におけるアロー0210の接続元及び接続先となる作業定義0220若しくは制御ノード0201〜0204を設定する。
ワークフロー実行状態情報0142は、案件単位での作業の実行状態を表し、補助記憶装置0167内に格納される。ワークフロー実行状態情報0142の詳細及び補助記憶装置0167への格納形式を図4にて示す。
図4は本実施形態のワークフロー実行状態テーブルの一例を示す図である。図4に示すワークフロー実行状態テーブル0611の各レコードは、案件内の各作業の状態を保持している。
案件名0601は、各案件を一意に特定する為の名称である。プロセス定義名0602は、案件の雛型となるプロセス定義0141を示す。作業定義名0603は、作業の雛型となる作業定義0220を示す。作業情報0604は、作業種別が「作業者実行」の場合、作業を実行すべき作業者名をとり、作業種別が「自動実行」の場合、作業を処理する自動実行業務プログラム0102を特定する為の自動実行業務プログラム名をとる。
状態0605は、作業の状態で、「Initial」、「Ready」、「Completed」の何れかの値をとる。「Initial」状態は、作業の初期状態を表し、「Ready」は作業に対する業務処理の開始可能状態を表し、更に、「Completed」は作業に対する業務処理の完了を表す。
作業者負荷情報0143は、各作業者及び各自動実行業務プログラム0102に割り当てられた「Ready」状態の作業数を管理する為の情報である。作業者負荷情報0143の詳細及び補助記憶装置0167への格納形式を図5にて示す。
図5は本実施形態の作業者負荷情報テーブルの一例を示す図である。図5に示す作業者負荷情報テーブル0711の各レコードは、事前登録された作業者若しくは自動実行業務プログラム0102毎の「Ready」状態の作業数を表す。
作業情報0701は、作業者の名前若しくは自動実行業務プログラム0102の名前をとる。未実行作業数0702は、作業情報0701で示された作業者若しくは自動実行業務プログラム0102に現在割り当てられている「Ready」状態の作業数をとる。
有効フラグ0703は、作業者若しくは自動実行業務プログラム0102が利用可能かを示し、利用可能な場合は「Yes」をとり、利用不可能な場合は「No」をとる。例えば、作業者不在時や自動実行業務プログラム0102内での障害発生時等では、有効フラグ0703は「No」をとる。
滞留閾値0704は、作業者または自動実行業務プログラムの滞留状態を判定する為の情報である。この滞留閾値0704を使用することで、滞留状態を判断する。判断手法としては、例えば、作業情報0701で示される作業者若しくは自動実行業務プログラムの未実行作業数0702が該閾値を超えた場合に、該作業者若しくは該自動実行業務プログラムを滞留状態と判定する。
閑散閾値0705は、作業者または自動実行業務プログラムの閑散状態を判定する為の情報である。この閑散閾値0705を使用することで、閑散状態を判定する。判定手法としては、例えば、作業情報0701で示される作業者若しくは自動実行業務プログラムの未実行作業数0702が該閾値を下回った場合に、該作業者若しくは該自動実行業務プログラムを閑散状態と判定する。
業務プログラム実行要求管理情報0144は、自動実行業務プログラム0102への起動要求を管理する。作業種別が「自動実行」である作業定義の状態が「Ready」となったときに、ワークフロー実行制御エンジン0101は、自動実行業務プログラム0102への起動要求を業務プログラム実行要求管理情報0144に登録する。図6に、自動実行業務プログラム0102への起動要求の補助記憶装置0167への格納形式を示す。
図6は本実施形態の業務プログラム実行要求管理テーブルの一例を示す図である。図6に示す様に該起動要求は、業務プログラム実行要求管理テーブル0811内に、起動要求毎に1レコードずつ格納される。
プロセス定義名0801、作業定義名0802、及び案件名0803は、実行要求の発生元である作業を一意に特定するものである。作業情報0804は、該実行要求に対する業務処理を行う自動実行業務プログラム0102を特定する為の名称であり、作業定義情報テーブル0411の作業情報0404カラムから取得される。発生日時0805は、実行要求の発生した日時である。
次に、ワークフロー実行制御エンジン0101の動作について説明する。図1に示す様にワークフロー実行制御エンジン0101は、クライアント要求処理部0151、ワークフロー実行状態制御部0152、業務プログラム実行制御部0153、優先度制御部0154からなる。なお、以降の説明では、作業定義から生成された作業を作業インスタンスと呼ぶことにする。
クライアント要求処理部0151は、クライアント業務プログラム0103から送信されたコマンドを受け付ける。クライアント要求処理部0151は、作業一覧取得コマンド「GetWorkList」と、作業完了通知コマンド「CompleteWork」と、案件開始コマンド「StartProcess」と、作業者不在通知コマンド「StopWorker」と、作業者復帰通知コマンド「RestartWorker」をクライアント業務プログラム0103より受け付ける。
「GetWorkList」は、作業者名を受け取り、該作業者に割り当てられた作業インスタンス一覧を返すコマンドである。「CompleteWork」は、プロセス定義名と、案件名と、作業定義名とを受け取り、指定した作業インスタンスの完了を通知するコマンドである。「StartProcess」は、プロセス定義名と案件名を受け取り、指定したプロセス定義の案件を指定した案件名で投入、開始するコマンドである。「StopWorker」は、作業者名を受け取り、該作業者が不在状態であることを通知するコマンドである。「RestartWorker」は、作業者名若しくは自動実行業務プログラム名を受け取り、該作業者が復帰したこと、若しくは、該自動実行業務プログラムが障害から回復したことを通知するコマンドである。
以下、クライアント要求処理部0151が、前記コマンドを受け付けた時の処理概要を示す。
「GetWorkList」では、次に示す処理手順で、指定された作業者に割り当てられた作業インスタンス一覧を返す。
まず、優先度制御部0154に対して、「作業優先度一覧取得」コマンドを送信することで、ワークフロー実行制御エンジン0101内で管理する作業インスタンス一覧を取得する。この時、前記一覧内の各作業インスタンスは、プロセス定義名と、案件名と、作業定義名とで一意に特定され、属性情報として該作業インスタンスの処理優先度を保持する。
次に、前記作業インスタンス一覧内から、「GetWorkList」コマンドにて指定された作業者に割り当てられた作業インスタンスを取得する。該作業者に割り当てられた作業インスタンスは、作業情報0604をキーにして、作業情報0604に前記作業者名を持つ作業インスタンスをワークフロー実行状態テーブル0611から検索することにより取得する。
「CompleteWork」では、プロセス定義名と案件名と作業定義名とを受け取り、ワークフロー実行状態制御部0152に対して、「作業完了要求」コマンドを送信する。ワークフロー実行状態制御部0152は「作業完了要求」コマンドを受け付けると、該プロセス定義名と、該案件名と、該作業定義名とで示される作業インスタンスの完了処理を行い、新たに開始可能な作業インスタンスの状態を「Ready」にする。
「StartProcess」では、プロセス定義名と案件名とプロセス定義名とを受け取り、ワークフロー実行状態制御部0152に対して、「案件開始要求」コマンドを送信する。ワークフロー実行状態制御部0152は、「案件開始要求」コマンドを受け付けると、該プロセス定義名と及び該案件名で示される案件の開始処理を行う。また、新たに開始可能な作業インスタンスの状態を「Ready」にする。
「StopWorker」では、作業者名を受け取り、優先度制御部0154に対して、「作業者不在通知」コマンドを送信する。優先度制御部0154は、「作業者不在通知」コマンドを受け付けると、作業者負荷情報テーブル0711内で保持する前記作業者に関する情報を更新する。
「RestartWorker」では、作業者名若しくは自動実行業務プログラム名を受け取り、優先度制御部0154に対して、「作業者復帰通知」コマンドを送信する。優先度制御部0154は、「作業者復帰通知」コマンドを受け取り、作業者負荷情報テーブル0711内で保持する前記作業者若しくは前記自動実行業務プログラムに関する情報を更新する。
ワークフロー実行状態制御部0152は、クライアント要求処理部0151及び業務プログラム実行制御部0153より送信されたコマンドを受け付ける。そして、受け付けられたコマンドにより、プロセス定義0141に従って、ワークフロー実行状態情報0142を変更する。
ワークフロー実行状態制御部0152は、新たな案件の開始処理を行う「案件開始要求」コマンドと、作業インスタンスの完了処理を行う「作業完了要求」コマンドを受け付ける。
「案件開始要求」コマンドは、クライアント要求処理部0151より送信される。「案件開始要求」コマンドは、プロセス定義名と案件名を受け取り、指定したプロセス定義を指定した案件名で開始し、更に、案件開始時に開始可能な作業インスタンスを特定し、該作業インスタンスの状態を「Ready」とするコマンドである。
「作業完了要求」コマンドは、クライアント要求処理部0151及び業務プログラム実行制御部0153より送信される。「作業完了要求」コマンドは、プロセス定義名と、案件名と、作業定義名とを受け取り、指定した作業インスタンスの状態を「Completed」とし、新たに開始可能な作業インスタンスを特定し、該作業インスタンスの状態を「Ready」とするコマンドである。
以下、ワークフロー実行状態制御部0152が前記コマンドを受け付けた時の処理について説明する。
「案件開始要求」コマンド受付け時には、指定されたプロセス定義0141において定義された各作業定義0220の情報を、作業定義情報テーブル0411からプロセス定義名をキーに検索し、各作業定義0220に対応する作業のレコードをワークフロー実行状態テーブル0611へ挿入する。この時、各作業の状態0605は「Initial」状態としておく。
また、案件名0601及びプロセス定義名0602の各カラムには、コマンド受付け時に指定された案件名とプロセス定義名を設定する。また、作業定義名0603及び作業情報0604の各カラムには該レコードに対応する作業定義0220の属性情報である作業定義名0402及び作業情報0404を設定する。
更に、プロセス定義0141の有向グラフに従って開始ノード0201から辿って最初に実行すべき作業定義0220を決定し、該作業定義に対応する作業インスタンスの状態0605を「Ready」状態とし、優先度制御部0154へ「作業開始通知」コマンドを送信する。更に、該作業定義0220の作業種別0403が「自動実行」の場合、業務プログラム実行制御部0153へ「業務プログラム実行」コマンドを送信する。
「作業完了要求」コマンド受付け時には、指定された案件の指定された作業定義に対する作業インスタンスの状態を「Completed」状態にし、プロセス定義0141の有向グラフに従って該作業定義の次に実行すべき作業定義を決定する。そして、次に実行すべき作業定義に対する作業インスタンスの状態0605を「Ready」状態とする。更に、「Completed」状態に更新した作業インスタンスのプロセス定義名と、案件名と、作業定義名を指定して、優先度制御部0154に「作業完了通知」コマンドを送信する。
また、「Ready」状態に更新した作業インスタンスのプロセス定義名と、案件名と、作業定義名を指定して、優先度制御部0154に「作業開始通知」コマンドを送信する。この時、「Ready」状態に更新した作業インスタンスの作業種別0403が「自動実行」の場合、業務プログラム実行制御部0153へ「業務プログラム実行」コマンドを送信する。
業務プログラム実行制御部0153は、ワークフロー実行状態制御部0152より送信された「業務プログラム実行」コマンドを受け付け、自動実行業務プログラム0102へ起動要求を送信する。
業務プログラム実行制御部0153は、「起動要求受付け部」と「業務プログラム起動部」とからなる。「起動要求受付け部」は、ワークフロー実行状態制御部0152から「業務プログラム実行」コマンドを受け付け、受け取った実行要求を業務プログラム実行要求管理情報0144へ格納する。「業務プログラム起動部」は、一定間隔毎に、業務プログラム実行要求管理情報0144から起動要求を各作業インスタンスの処理優先度順に取り出し、自動実行業務プログラム0102へ実行要求を送信する。更に、「業務プログラム起動部」は、前記実行要求に対する結果を取得する。
次に、業務プログラム実行制御部0153の「起動要求受付け部」の処理手順を示す。
「起動要求受付け部」が、「業務プログラム実行」コマンドをワークフロー実行状態制御部0152から受け付けた時の動作は以下の通りである。
「起動要求受付け部」は、ワークフロー実行状態制御部0152より「業務プログラム実行」コマンドを受け付ける。この際、プロセス定義名、作業定義名、案件名、及び自動実行業務プログラム名を、ワークフロー実行状態制御部0152より受け取る。次に、現在の日時を取得する。日時の取得は、例えば、オペレーティングシステムの提供するシステムコールを呼び出すことで取得することができる。前記処理にて取得した現在日時と、ワークフロー実行状態制御部0152より受け取った実行要求とを、業務プログラム実行要求管理テーブル0811へ挿入する。
次に、業務プログラム実行制御部0153の「業務プログラム起動部」の処理手順を示す。
図7は本実施形態の「業務プログラム起動部」が、自動実行業務プログラム0102へ業務処理の実行要求を送信する際の処理手順を示すフローチャートである。図7に示す処理手順は、「業務プログラム起動部」により、繰り返し実行される。この繰り返しの実行は、一定時間毎に行っても良い。
ステップ0901では、優先度制御部0154に対して、「作業優先度一覧取得」コマンドを送信することで、ワークフロー実行制御エンジン0101内で管理する作業インスタンス一覧を取得する。この時、前記一覧内の各作業インスタンスは、プロセス定義名、案件名及び作業定義名とで特定され、属性情報として該作業インスタンスの処理優先度を保持する。
ステップ0902では、ステップ0901の取得結果から、優先度に「高」が設定された作業インスタンスに関する起動要求の内、発生日時が最も古い起動要求を1つ取得する。起動要求の取得処理は、業務プログラム実行要求管理テーブル0811からプロセス定義名0801と作業定義名0802と案件名0803とをキーに取得する。
ステップ0903では、ステップ0902の検索結果が空ならば、ステップ0904へ進む。それ以外ならば、ステップ0908へ進む。
ステップ0904では、ステップ0901の取得結果から、優先度に「中」が設定された作業インスタンスに関する起動要求の内、発生日時が最も古い起動要求を1つ取得する。起動要求の取得処理は、業務プログラム実行要求管理テーブル0811からプロセス定義名0801と作業定義名0802と案件名0803とをキーに取得する。
ステップ0905では、ステップ0904の検索結果が空ならば、ステップ0906へ進む。それ以外ならば、ステップ0908へ進む。
ステップ0906では、ステップ0901の取得結果から、優先度に「低」が設定された作業インスタンスに関する起動要求の内、発生日時が最も古い起動要求を1つ取得する。起動要求の取得処理は、業務プログラム実行要求管理テーブル0811からプロセス定義名0801と作業定義名0802と案件名0803とをキーに取得する。
ステップ0907では、ステップ0906の検索結果が空ならば、終了する。それ以外ならば、ステップ0908へ進む。
ステップ0908では、ステップ0902、ステップ0904若しくは、ステップ0906にて取得した起動処理要求を自動実行業務プログラム0102に送信し、自動実行業務プログラム0102からの返信を受信する。
ステップ0909では、ステップ0908にて取得した自動実行業務プログラム0102からの返信が、完了通知の場合は、ステップ0911へ進む。障害発生通知の場合は、ステップ0910へ進む。
ステップ0910では、優先度制御部0154に対して、障害発生通知を送信した自動実行業務プログラム名を指定して、「作業者不在通知」コマンドを送信し、ステップ0901へ戻る。自動実行業務プログラム名は、業務プログラム実行要求管理テーブル0811の作業情報0804より取得することができる。
ステップ0911では、ワークフロー実行状態制御部0152に対して、処理を行った作業インスタンスを指定して、「作業完了通知」コマンドを送信し、ステップ0901へ戻る。
優先度制御部0154は、「作業者不在通知」コマンドと、「作業者復帰通知」コマンドと、「作業開始通知」コマンドと、「作業完了通知」コマンドと、「作業優先度一覧取得」コマンドを受け付ける。
「作業者不在通知」コマンドは、クライアント要求処理部0151及び業務プログラム実行制御部0153より呼び出される。「作業者不在通知」コマンドは、不在となった作業者名若しくは障害が発生した自動実行業務プログラム名を受け取り、作業者負荷情報0143を更新する。
「作業者復帰通知」コマンドは、クライアント要求処理部0151より呼び出される。「作業者復帰通知」コマンドは、復帰した作業者名若しくは障害が回復した自動実行業務プログラム名を受け取り、作業者負荷情報0143を更新する。
「作業開始通知」コマンドは、ワークフロー実行状態制御部0152より呼び出される。「作業開始通知」コマンドは、「Ready」状態となった作業インスタンスのプロセス定義名と、作業定義名を受け取り、該作業インスタンスに割り当てられた作業者若しくは自動実行業務プログラムを特定し、作業者負荷情報0143を更新する。
「作業完了通知」コマンドは、ワークフロー実行状態制御部0152より呼び出される。「作業完了通知」コマンドは、「Completed」状態となった作業インスタンスのプロセス定義名と、作業定義名を受け取り、該作業インスタンスに割り当てられた作業者若しくは自動実行業務プログラムを特定し、作業者負荷情報0143を更新する。
「作業優先度一覧取得」コマンドは、クライアント要求処理部0151及び業務プログラム実行制御部0153より呼び出され、ワークフロー実行状態テーブル0611にて管理している作業インスタンスの一覧を返す。このとき、「作業優先度一覧取得」コマンドでは、作業インスタンス一覧内の各作業インスタンスに対して処理優先度を適切に決定し、決定した処理優先度を各作業インスタンスの属性情報として設定する。例えば、滞留作業により影響を受ける作業の処理優先度を「低」に変更する。
以下、各コマンドの処理の詳細について説明する。
優先度制御部0154が「作業者不在通知」コマンドを受け付けた時の処理の詳細は次の通りである。「作業者不在通知」コマンドでは、作業者名若しくは自動実行業務プログラム名を受け取り、該作業者名若しくは該自動実行業務プログラム名を作業情報0701カラムに持つレコードを作業者負荷情報テーブル0711から取得し、該レコードの有効フラグ0703を「No」に変更する。
優先度制御部0154が「作業者不在通知」コマンドを受け付けた時の処理の詳細は次の通りである。「作業者不在通知」コマンドでは、作業者名若しくは自動実行業務プログラム名を受け取り、該作業者名若しくは該自動実行業務プログラム名を作業情報0701カラムに持つレコードを作業者負荷情報テーブル0711から取得し、該レコードの有効フラグ0703を「No」に変更する。
優先度制御部0154が「作業者復帰通知」コマンドを受け付けた時の処理の詳細は次の通りである。「作業者復帰通知」コマンドでは、作業者名若しくは自動実行業務プログラム名を受け取り、該作業者名若しくは該自動実行業務プログラム名を作業情報0701カラムに持つレコードを作業者負荷情報テーブル0711から取得し、該レコードの有効フラグ0703を「Yes」に変更する。
優先度制御部0154が「作業開始通知」コマンドを受け付けた時の処理の詳細は以下の通りである。
まず、コマンドにて指定されたプロセス定義名及び作業定義名をキーに作業定義情報テーブル0411から作業定義を検索し、作業者名若しくは自動実行業務プログラム名を取得する。即ち、該プロセス定義名と該作業定義名とを、プロセス定義名0401及び作業定義名0402に持つ、作業定義の作業情報0404を取得する。次に、前記処理において取得した作業者名若しくは自動実行業務プログラム名を作業情報0701カラムに持つレコードを作業者負荷情報テーブル0711から検索する。更に、該レコードの未実行作業数0702を、「1」増加させる。
「作業完了通知」コマンドでは、「Completed」状態となった作業インスタンスのプロセス定義名及び作業定義名を受け取る。優先度制御部0154が「作業完了通知」コマンドを受け付けた時の処理の詳細は次の通りである。まず、作業定義情報テーブル0411より、「作業完了通知」コマンドにて指定されたプロセス定義名と作業定義名を、プロセス定義名0401及び作業定義名0402に持つ、作業定義の作業情報0404を取得する。更に、前記処理において取得した作業情報を作業情報0701カラムに持つレコードを作業者負荷情報テーブル0711から検索し、該レコードの未実行作業数0702の値を「1」減少させる。
優先度制御部0154が「作業優先度一覧取得」コマンドを受け付けた時の処理概要は次の通りである。
「作業優先度一覧取得」では、まず、滞留作業者若しくは滞留自動実行業務プログラムを特定する(ステップA)。次に、滞留作業を特定する(ステップB)。更に、該滞留作業により業務の進捗に影響を受ける作業範囲を特定する(ステップC)。その後、ワークフロー実行状態テーブル0611にて管理している作業インスタンスの一覧を取得し、各作業インスタンスの処理優先度を適切に決定する(ステップD)。最後に、作業インスタンスの一覧をコマンド要求元に返す。
以下では、各処理に関して説明する。
まず、滞留作業者、滞留自動実行業務プログラムの特定処理(ステップA)について、何通りかの方法を説明する。これらの各方法は、作業者の不在通知、業務プログラムの障害発生、事前定義された閾値による作業者または業務プログラムの滞留状態の判定に対応するものである。
まず、滞留作業者、滞留自動実行業務プログラムの特定処理(ステップA)について、何通りかの方法を説明する。これらの各方法は、作業者の不在通知、業務プログラムの障害発生、事前定義された閾値による作業者または業務プログラムの滞留状態の判定に対応するものである。
始めに、作業者の不在通知及び業務プログラムの障害発生に対する処理内容を説明する。この処理では、作業に対する作業者の不在通知を受けた場合に該作業者を滞留状態として判定する場合と、自動実行業務プログラムに障害が発生した場合に該自動実行業務プログラムを滞留状態として判定する場合の両方に対応する。前記処理では、作業者負荷情報テーブル0711から、有効フラグ0703に「No」が指定された作業情報0701を検索することにより、滞留状態の作業者または自動実行業務プログラムを特定する。
次に、事前定義された閾値による作業者または業務プログラムの滞留状態の判定に対する処理内容を説明する。この処理では、作業者または自動実行業務プログラムに割り当てられた作業における滞留数の累計が閾値を上回る場合に、該作業者または該自動実行業務プログラムを滞留状態として判定する。前記処理では、作業者負荷情報テーブル0711から、未実行作業数0702が滞留閾値0704を超える作業情報0701を取得することにより、滞留状態の作業者または自動実行業務プログラム名を特定することができる。
次に、滞留作業の特定処理(ステップB)について、何通りかの方法を説明する。これらの各方法は、事前定義された閾値による作業の滞留状態の判定、滞留状態の作業者または自動実行業務プログラムに割り当てられていた作業を滞留作業とする判定に対応している。
始めに、事前定義された閾値による作業の滞留状態の判定に対する処理内容を説明する。この処理では、各作業における滞留数が閾値を上回っている場合に該作業を滞留状態と判定する。この処理の詳細な処理手順は、以下の通りである。まず、ワークフロー実行状態テーブル0611を検索し、状態0605が「Ready」となっているレコード数を作業定義毎に集計する。これにより、「Ready」状態の作業数を作業定義毎に取得できる。次に、取得した「Ready」状態の作業数が作業定義に設定された閾値を超える作業定義名を特定し、特定した作業定義を滞留作業とする。各作業定義に設定された閾値は、作業定義情報テーブル0411からプロセス定義名0401と作業定義名0402をキーに、滞留閾値0407を検索することにより取得する。
次に、滞留状態の作業者または自動実行業務プログラムに割り当てられた作業を滞留作業と判定する処理内容について説明する。この処理では、ステップAにて取得した滞留状態の作業者または自動実行業務プログラムを作業情報0404にとる作業定義を作業定義情報テーブル0411から取得することにより、滞留作業を特定することができる。
次に、前記処理により特定した滞留作業により、作業の進捗に影響を受ける作業範囲を特定する処理(ステップC)について説明する。
優先度制御部0154では、プロセス定義0141を滞留作業から逆に辿ることにより、滞留作業の影響範囲を決定する。前記処理の詳細を図8に示す。プロセス定義を逆に辿るとは、プロセス定義で定義される処理順序とは逆の順序で辿ることを示す。
図8は本実施形態の滞留作業の影響範囲を特定する処理の処理手順を示すフローチャートである。ステップ1001では、滞留作業の遷移元にある作業定義若しくは制御ノードを全て取得する。滞留作業の遷移元は、滞留作業の作業定義名を遷移先0503に持つレコードの遷移元0502を、アロー定義情報テーブル0511から検索することで取得する。
ステップ1002では、ステップ1001若しくはステップ1006の取得結果が存在しない場合は、終了する。それ以外は、ステップ1003へ進む。
ステップ1003では、ステップ1001若しくはステップ1006にて取得した作業定義及び制御ノードから、制御ノードを抽出し滞留作業の影響範囲内に含める。制御ノードの抽出は、制御ノード定義情報テーブル0311から制御ノード名0302の一覧を取得し、該一覧を参照することにより行う。
ステップ1004では、ステップ1001若しくはステップ1006にて取得した作業定義及び制御ノードから、作業定義を抽出する。作業定義の抽出は、作業定義情報テーブル0411から作業定義名0402の一覧を取得し、該一覧を参照することにより行う。
ステップ1005では、ステップ1004にて取得した作業定義一覧から、遷移先関連度が「依存」である作業定義を取得する。また、前記処理にて取得した作業定義を、滞留作業の影響範囲内に含める。前記遷移先関連度は、作業定義情報テーブル0411から、作業定義名をキーにして、遷移先関連度0405を検索することにより取得する。
ステップ1006では、ステップ1003及びステップ1005にて影響範囲内に含めた制御ノード及び作業定義の遷移元を検索する。遷移元は、アロー定義情報テーブル0511から、前記作業定義名若しくは前記制御ノード名を遷移先0503に持つ、遷移元0502を検索することで取得する。
前記処理のステップ1005では、遷移先関連度に「依存」が設定された作業を滞留作業の影響範囲に登録する。そして更に、該作業の遷移元に関して影響範囲に含まれるかどうかの判定を行う。この為、作業の遷移先関連度に「独立」を設定することで、該作業の遷移先で滞留作業が発生した場合に、前記滞留作業が与える影響範囲に該作業と該作業の遷移元を含めない様に制御することができる。また、前記処理では、作業定義毎に遷移先との関連を定義することにより、滞留作業の影響範囲を指定したが、作業定義毎に、影響範囲を直接定義しても良い。影響範囲の補助記憶装置0167への格納内容の一例を図9に示す。
図9は本実施形態の影響範囲定義テーブルの一例を示す図である。図9に示す影響範囲定義テーブル1111では、プロセス定義名1101及び作業定義名1102で示す作業定義が滞留状態となった時に業務の進捗に影響を与える作業定義を影響作業定義名1103に示す。
また、前記処理では、「分岐ノード」の遷移元も検索することで、滞留作業に遷移可能な作業を特定している。このとき、「分岐ノード」の全ての遷移先が滞留作業の影響範囲に含まれるときに限り「分岐ノード」の遷移元を検索することにより、滞留作業に確実に遷移する作業を特定することができる。
例えば、ステップ1003の処理を以下の様に変更することにより、前記処理を実現する。まず、ステップ1001若しくはステップ1006にて取得した作業定義及び制御ノードから、制御ノードを抽出する。次に、前記処理にて取得した制御ノード一覧から、ノード種別が「分岐ノード」以外の制御ノードを取得し、該制御ノードを滞留作業の影響範囲内に含める。ノード種別は、制御ノード定義情報テーブル0311から制御ノード名0302をキーに、ノード種別0303を検索することで確かめる。また、ステップ1001若しくはステップ1006にて取得した一覧から、ノード種別が「分岐ノード」である制御ノードを取得する。更に、前記処理にて取得した「分岐ノード」の遷移先を調べ、遷移先が影響範囲内に含まれる場合に、該制御ノードを滞留作業の影響範囲内に含める。制御ノードの遷移先は、アロー定義情報テーブル0511から遷移元0502をキーに、遷移先0503を検索することで取得する。
次に、優先度制御部0154が、各作業インスタンスの処理優先度を適切に決定する処理(ステップC)について説明する。この処理では、前記ステップBにて特定した滞留作業の影響範囲に含まれる各作業インスタンスの処理優先度を下げて、作業インスタンス一覧を生成する。以下、この処理について説明する。
まず、ワークフロー実行状態テーブル0611より、状態0605カラムをキーにして、状態0605に「Ready」を持つ作業インスタンスを取得する。作業インスタンスは、プロセス定義名と、案件名と、作業定義名とで一意に定まり、各値は案件名0601、プロセス定義名0602及び作業定義名0603から取得可能である。次に、各作業インスタンスに対して処理優先度を設定する。前記影響範囲に含まれる作業インスタンスは、該作業の処理優先度を「低」とする。また、前記影響範囲に含まれない作業インスタンスは、作業定義情報テーブル0411から、プロセス定義名0401と作業定義名0402をキーにして該作業に対応する優先度0406を取得する。
最後に、優先度制御部0154は、前記処理にて取得した作業インスタンスの一覧を「作業優先度一覧取得」コマンドの呼び出し元に返す。
前記処理は、滞留状態の作業の影響範囲に含まれる各作業インスタンスの処理優先度を下げる処理に関して説明した。なお、以下の処理を行うことにより、前記影響範囲に含まれる各案件の優先度を下げることも実現可能である。各案件の優先度を下げる処理に関して、以下で説明する。
まず、ワークフロー実行状態テーブル0611より、前記影響範囲に含まれる作業を作業定義名0603に持ち、状態0605に「Ready」を持つ、案件名0601の一覧を取得する。更に、ワークフロー実行状態テーブル0611より、状態0605カラムをキーにして、状態0605に「Ready」を持つ作業インスタンスを取得する。作業インスタンスは、プロセス定義名と、案件名と、作業定義名とで一意に定まり、各値は案件名0601及びプロセス定義名0602及び作業定義名0603から取得可能である。
次に、各作業インスタンスに関して処理優先度を設定する。作業インスタンスの案件名が先に取得した案件名の一覧に含まれる場合は、優先度を「低」とし、含まれない場合は、作業定義情報テーブル0411から、プロセス定義名0401と作業定義名0402をキーにして、該作業インスタンスに対応する優先度0406を取得する。最後に、前記処理にて取得した作業インスタンスの一覧を「作業優先度一覧取得」コマンドの呼び出し元に返す。
前記処理では、滞留状態に基づいて各作業の処理優先度を決定していたが、「作業優先度一覧取得」時に作業者若しくは自動実行業務プログラムの閑散状態を加味して処理優先度を決定することも可能である。前記処理により、「Ready」状態の作業が割り当てられていない閑散状態の作業者または自動実行業務プログラムを有効活用する様に処理優先度を変更することが可能となる。
以下、前記処理の概要について説明する。
「作業優先度一覧取得」では、滞留状態に基づいて各作業の処理優先度を決定した時と同様に、まず前記ステップA〜ステップDを実行する。次に、閑散状態の作業者または自動実行業務プログラムを判定する(ステップE)。更に、閑散状態の前記作業者または自動実行業務プログラムに割り当てられた作業を閑散状態と判定し、閑散状態の作業に遷移可能な作業範囲をフロー定義に基づいて特定する(ステップF)。最後に、前記作業範囲に含まれる作業の処理優先度を高くする(ステップG)。次に、各ステップの一実現例について説明する。
「作業優先度一覧取得」では、滞留状態に基づいて各作業の処理優先度を決定した時と同様に、まず前記ステップA〜ステップDを実行する。次に、閑散状態の作業者または自動実行業務プログラムを判定する(ステップE)。更に、閑散状態の前記作業者または自動実行業務プログラムに割り当てられた作業を閑散状態と判定し、閑散状態の作業に遷移可能な作業範囲をフロー定義に基づいて特定する(ステップF)。最後に、前記作業範囲に含まれる作業の処理優先度を高くする(ステップG)。次に、各ステップの一実現例について説明する。
閑散状態の作業者または自動実行業務プログラムの判定処理(ステップE)は、未実行作業数0702が閑散閾値0705を下回り、かつ、有効フラグ0703が「Yes」である作業情報0701を作業者負荷情報テーブル0711から取得することで行う。
次に、処理優先度を変更する作業範囲の特定処理(ステップF)について詳細を示す。まず、ステップEにより取得した閑散状態の作業者または自動実行業務プログラムを、作業情報0404に持つ作業定義名0402を作業定義情報テーブル0411より取得する。次に、前記処理にて取得した作業定義に遷移可能な作業範囲を、プロセス定義を逆に辿ることにより特定する。前記作業範囲を特定する前記処理は、滞留作業により作業の進捗に影響を受ける作業範囲の特定処理(ステップB)と同じ処理にて行う。最後に、前記処理にて取得した作業範囲から、滞留作業により影響を受ける作業範囲に含まれる作業を取り除く。
最後に、優先度制御処理(ステップG)では、前記処理にて得られた作業範囲に含まれる作業の優先度を「高」に変更する。
この様に、滞留作業に影響を受ける案件の優先順位をより低くすることにより、滞留案件の発生を抑止することができる。なお、優先順位を低くすることには、予め設定された自身の優先度より低くすること及び影響を受けない作業の優先度より低くすることが含まれる。
特に、同一の作業者若しくは自動実行業務プログラムに複数の作業が割り当てられる場合、滞留作業定義の影響を受けない業務を優先的に処理することにより、業務の進捗が滞留作業により影響を受けない作業に、計算機リソースや人的リソースを割り当てることが可能となる。なお滞留作業定義の影響を受けない業務を優先的に処理した後、滞留作業による影響の少ない業務を優先的に処理する様に優先順位を変更することとしても良い。
図10は本実施形態のプロセス定義0141の第1の定義例を示す図である。
例えば図10で示す様なプロセス定義「PD2」、「PD3」において、作業定義「A」と作業定義「X」を割り当てられた作業者「E」は、作業定義「A」及び作業定義「X」の優先度を元に、処理すべき作業を決定する。
例えば図10で示す様なプロセス定義「PD2」、「PD3」において、作業定義「A」と作業定義「X」を割り当てられた作業者「E」は、作業定義「A」及び作業定義「X」の優先度を元に、処理すべき作業を決定する。
このとき、作業者「F」が滞留状態の場合は、作業Bは滞留作業となり、作業定義「A」は滞留作業Bの影響範囲内に含まれる為、作業定義「A」の優先度は「低」に変更される。これにより、作業者「E」は、作業定義「A」よりも作業定義「X」に関する処理を優先して実行し、更なる滞留案件の発生を抑止することができる。また、前記処理により作業者「G」への作業量が増え、作業定義「A」の優先度を変更することで、作業者「G」を有効活用することが可能となる。
図11は本実施形態のプロセス定義0141の第2の定義例を示す図である。図11で示す様なプロセス定義「PD4」、「PD5」の場合では、不在等により作業者「F」が滞留状態であるとき、作業定義「B」から作業定義「C」への遷移が滞り、作業者「G」の作業量が減少する。
このとき、滞留作業Bの影響範囲内に含まれる作業定義「A」の優先度を「低」に変更することで、作業者「E」はプロセス定義「PD5」を優先的に処理する。これにより、作業定義「X」から作業定義「Y」への遷移が増加し、作業Bの滞留による作業者「G」への作業量の減少を抑制することが可能となる。
図12は本実施形態のプロセス定義0141の第3の定義例を示す図である。
更に図12で示す様なプロセス定義「PD6」、「PD7」の場合の様に、滞留状態及び閑散状態の作業者が混在する場合においても、閑散状態及び滞留状態に基づいて適切に処理優先度を変更することにより、計算機リソースや人的リソースを適切に配分することができる。
更に図12で示す様なプロセス定義「PD6」、「PD7」の場合の様に、滞留状態及び閑散状態の作業者が混在する場合においても、閑散状態及び滞留状態に基づいて適切に処理優先度を変更することにより、計算機リソースや人的リソースを適切に配分することができる。
前記ケースでは、滞留状態の作業者「G」の影響により、作業定義「A」の処理優先度は「低」に変更される。一方、閑散状態の作業者「H」により、作業定義「X」、作業定義「Y」の処理優先度は「高」と変更される。前記優先度制御により、作業者「F」はプロセス定義「PD7」を優先的に処理する。これにより、作業者「H」に作業が割り当てられ、作業者「H」を有効活用することが可能となる。
また、前記優先度制御は、ワークフロー管理システムが作業者毎の作業数や自動実行業務プログラムからの障害発生通知に基づいて行う為、システム管理者による運用の手間を軽減することができる。
なお本実施形態では、滞留作業により影響を受ける作業の処理優先度を「低」としたが、「高」を「中」にする等、前記影響を受ける作業の処理優先度を、その作業に予め設定されている処理優先度や、影響を受けない作業の処理優先度、または予め定められた基準の処理優先度よりも低く変更する処理を実行しても良い。
また本実施形態では、滞留作業により影響を受ける作業を検知し、検知された作業の処理優先度を変更している。しかし、滞留作業により影響を受けない作業の処理優先度を変更しても良い。例えば、滞留により業務の進捗に影響を受ける作業を検知し、検知された作業以外の作業を特定して、特定された作業の処理優先度を高めても良い。その際、特定された作業の処理優先度を「高」若しくは「中」と設定する等、前記影響を受けない作業の処理優先度を、その作業に予め設定されている処理優先度や、影響を受ける作業の処理優先度、または予め定められた基準の処理優先度よりも高く変更する。なお、影響を受ける作業の検知には、上述した通りの「作業の範囲」を特定する方法を用いても良い。
更に、処理優先度を低くする処理と高くする処理を併用しても良い。つまり、影響を受ける作業の処理優先度を予め設定されたものより低くし、影響を受けない作業の処理優先度を予め設定されたものより高くしても良く、例えば、影響を受ける作業の処理優先度を「低」に設定し、影響を受けない作業の処理優先度を「高」に設定する処理を行う。なお、この処理で設定される処理優先度は、影響を受けない作業の処理優先度を、影響を受ける作業の処理優先度より高くすれば良い。この為には、各作業の処理優先度をシステム側で把握できるデータを用意しておくものとする。
以上説明した様に本実施形態のワークフロー管理システムによれば、作業の滞留状態に応じて各作業の処理優先度を変更するので、滞留作業が発生した場合にその滞留作業によって業務の進行に影響を受けない案件に計算機リソースや人的リソースを優先的に配分することが可能である。
また本実施形態のワークフロー管理システムによれば、事前定義された閾値により滞留状態を判定するので、案件に応じて閾値を変更することにより種々の案件における作業の滞留状態を判定することが可能である。
また本実施形態のワークフロー管理システムによれば、作業者または業務プログラムの滞留状態により作業の滞留状態を判定するので、個々の作業者または業務プログラムにより滞留した作業を効率良く検出することが可能である。
0101…ワークフロー実行制御エンジン、0102…自動実行業務プログラム、0103…クライアント業務プログラム、0110…コンピュータネットワーク、0120…計算機、0141…プロセス定義、0142…ワークフロー実行状態情報、0143…作業者負荷情報、0144…業務プログラム実行要求管理情報、0151…クライアント要求処理部、0152…ワークフロー実行状態制御部、0153…業務プログラム実行制御部、0154…優先度制御部、0161…表示装置、0162…キーボード、0163…マウス、0164…通信装置、0165…メモリ、0166…CPU、0167…補助記憶装置、0201…開始ノード、0202…分岐ノード、0203…合流ノード、0204…終了ノード、0210…アロー、0220…作業定義、0301…プロセス定義名、0302…制御ノード名、0303…ノード種別、0311…制御ノード定義情報テーブル、0401…プロセス定義名、0402…作業定義名、0403…作業種別、0404…作業情報、0405…遷移先関連度、0406…優先度、0407…滞留閾値、0411…作業定義情報テーブル、0501…プロセス定義名、0502…遷移元、0503…遷移先、0511…アロー定義情報テーブル、0601…案件名、0602…プロセス定義名、0603…作業定義名、0604…作業情報、0605…状態、0611…ワークフロー実行状態テーブル、0701…作業情報、0702…未実行作業数、0703…有効フラグ、0704…滞留閾値、0705…閑散閾値、0711…作業者負荷情報テーブル、0801…プロセス定義名、0802…作業定義名、0803…案件名、0804…作業情報、0805…発生日時、0811…業務プログラム実行要求管理テーブル、1101…プロセス定義名、1102…作業定義名、1103…影響作業定義名、1111…影響範囲定義テーブル。
Claims (21)
- 業務における複数の作業間の関係を定義するプロセス定義情報に基づいて作業の実行管理を行うワークフロー管理方法において、
作業の進捗状況を検知し、その検知された進捗状況に基づいて滞留作業を特定するステップと、前記プロセス定義情報に基づいて前記滞留作業と所定の関係を有する作業を特定するステップと、前記所定の関係を有する作業の処理優先度を前記滞留作業との間の関係に応じて設定するステップと、前記設定された処理優先度に応じて当該作業の実行を制御するステップとを有することを特徴とするワークフロー管理方法。 - 前記作業の各々に対して業務処理の滞留状態を判定する為の閾値を事前定義し、該作業における滞留数が該閾値を上回る場合に、該作業を滞留状態として判定することを特徴とする請求項1に記載されたワークフロー管理方法。
- 前記作業の業務処理を実行する作業者または業務プログラムの滞留状態を判定し、滞留状態と判定された作業者または業務プログラムに割り当てられている作業を滞留状態として判定することを特徴とする請求項1に記載されたワークフロー管理方法。
- 前記滞留作業と所定の関係を有する作業として、前記滞留作業の滞留により作業の進捗に影響を受ける作業を特定することを特徴とする請求項1乃至請求項3のいずれか1項に記載されたワークフロー管理方法。
- 前記滞留作業の滞留により作業の進捗に影響を受ける作業の範囲を特定し、特定された範囲に含まれる作業を、前記影響を受ける作業として特定することを特徴とする請求項4に記載されたワークフロー管理方法。
- 前記影響を受ける作業の処理優先度を、その作業に予め設定されている処理優先度、影響を受けない作業の処理優先度、または予め定められた基準の処理優先度よりも低く変更することを特徴とする請求項4または請求項5のいずれかに記載されたワークフロー管理方法。
- 前記滞留作業と所定の関係を有する作業として、前記滞留作業の滞留により作業の進捗に影響を受けない作業を特定することを特徴とする請求項1乃至請求項3のいずれか1項に記載されたワークフロー管理方法。
- 前記滞留作業の滞留により作業の進捗に影響を受ける作業を特定し、その特定された影響を受ける作業から前記影響を受けない作業を特定することを特徴とする請求項7に記載されたワークフロー管理方法。
- 前記影響を受けない作業の処理優先度を、その作業に予め設定されている処理優先度、影響を受ける作業の処理優先度、または予め定められた基準の処理優先度よりも高く変更することを特徴とする請求項7または請求項8のいずれかに記載されたワークフロー管理方法。
- 作業を構成する複数の副作業の内、予め定められた閾値以上の副作業が未実行である作業を滞留作業として特定することを特徴とする請求項1乃至請求項9のいずれか1項に記載されたワークフロー管理方法。
- 業務における複数の作業間の関係を定義するプロセス定義情報に基づいて作業の実行管理を行うワークフロー管理システムにおいて、
作業の進捗状況を検知し、その検知された進捗状況に基づいて滞留作業を特定し、前記プロセス定義情報に基づいて前記滞留作業と所定の関係を有する作業を特定し、前記所定の関係を有する作業の処理優先度を前記滞留作業との間の関係に応じて設定する優先度制御部と、前記設定された処理優先度に応じて当該作業の実行を制御する実行制御部とを備えることを特徴とするワークフロー管理システム。 - 前記優先度制御部は、前記作業の各々に対して業務処理の滞留状態を判定する為の閾値を事前定義し、該作業における滞留数が該閾値を上回る場合に、該作業を滞留状態として判定するものであることを特徴とする請求項11に記載されたワークフロー管理システム。
- 前記優先度制御部は、前記作業の業務処理を実行する作業者または業務プログラムの滞留状態を判定し、滞留状態と判定された作業者または業務プログラムに割り当てられている作業を滞留状態として判定するものであることを特徴とする請求項11に記載されたワークフロー管理システム。
- 前記優先度制御部は、前記滞留作業と所定の関係を有する作業として、前記滞留作業の滞留により作業の進捗に影響を受ける作業を特定するものであることを特徴とする請求項11乃至請求項13のいずれか1項に記載されたワークフロー管理システム。
- 前記優先度制御部は、前記滞留作業の滞留により作業の進捗に影響を受ける作業の範囲を特定し、特定された範囲に含まれる作業を、前記影響を受ける作業として特定するものであることを特徴とする請求項14に記載されたワークフロー管理システム。
- 前記優先度制御部は、前記影響を受ける作業の処理優先度を、その作業に予め設定されている処理優先度、影響を受けない作業の処理優先度、または予め定められた基準の処理優先度よりも低く変更するものであることを特徴とする請求項14または請求項15のいずれかに記載されたワークフロー管理システム。
- 前記優先度制御部は、前記滞留作業と所定の関係を有する作業として、前記滞留作業の滞留により作業の進捗に影響を受けない作業を特定するものであることを特徴とする請求項11乃至請求項13のいずれか1項に記載されたワークフロー管理システム。
- 前記優先度制御部は、前記滞留作業の滞留により作業の進捗に影響を受ける作業を特定し、その特定された影響を受ける作業から前記影響を受けない作業を特定するものであることを特徴とする請求項17に記載されたワークフロー管理システム。
- 前記優先度制御部は、前記影響を受けない作業の処理優先度を、その作業に予め設定されている処理優先度、影響を受ける作業の処理優先度、または予め定められた基準の処理優先度よりも高く変更するものであることを特徴とする請求項17または請求項18のいずれかに記載されたワークフロー管理システム。
- 前記優先度制御部は、作業を構成する複数の副作業の内、予め定められた閾値以上の副作業が未実行である作業を滞留作業として特定するものであることを特徴とする請求項11乃至請求項19のいずれか1項に記載されたワークフロー管理システム。
- 業務における複数の作業間の関係を定義するプロセス定義情報に基づいて作業の実行管理を行うワークフロー管理システムとしてコンピュータを機能させる為のプログラムにおいて、
作業の進捗状況を検知し、その検知された進捗状況に基づいて滞留作業を特定し、前記プロセス定義情報に基づいて前記滞留作業と所定の関係を有する作業を特定し、前記所定の関係を有する作業の処理優先度を前記滞留作業との間の関係に応じて設定する優先度制御部と、前記設定された処理優先度に応じて当該作業の実行を制御する実行制御部としてコンピュータを機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008007480A JP2008135054A (ja) | 2001-05-10 | 2008-01-17 | ワークフロー管理方法及びその実施システム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001140210 | 2001-05-10 | ||
JP2008007480A JP2008135054A (ja) | 2001-05-10 | 2008-01-17 | ワークフロー管理方法及びその実施システム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002120748A Division JP2003030389A (ja) | 2001-05-10 | 2002-04-23 | ワークフロー管理方法及びその実施システム並びにその処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008135054A true JP2008135054A (ja) | 2008-06-12 |
Family
ID=39559822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008007480A Pending JP2008135054A (ja) | 2001-05-10 | 2008-01-17 | ワークフロー管理方法及びその実施システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008135054A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010018004A (ja) * | 2008-07-14 | 2010-01-28 | Canon Inc | ワークフロー実行装置及びワークフロー実行方法 |
JP2010123124A (ja) * | 2008-11-17 | 2010-06-03 | Toshiba Corp | ワークフロー管理装置、ならびにその方法およびプログラム |
US10733554B2 (en) | 2016-02-12 | 2020-08-04 | Fujitsu Limited | Information processing apparatus and method for managing connections |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168881A (ja) * | 1993-12-15 | 1995-07-04 | Nec Corp | 作業管理システム |
JPH07296061A (ja) * | 1994-04-28 | 1995-11-10 | Fujitsu Ltd | 作業進捗管理装置及びその方法 |
JPH09305659A (ja) * | 1996-05-10 | 1997-11-28 | Hitachi Ltd | 電子化文書回覧システム |
JPH11262843A (ja) * | 1998-03-17 | 1999-09-28 | Mitsubishi Electric Corp | 物流制御装置 |
-
2008
- 2008-01-17 JP JP2008007480A patent/JP2008135054A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168881A (ja) * | 1993-12-15 | 1995-07-04 | Nec Corp | 作業管理システム |
JPH07296061A (ja) * | 1994-04-28 | 1995-11-10 | Fujitsu Ltd | 作業進捗管理装置及びその方法 |
JPH09305659A (ja) * | 1996-05-10 | 1997-11-28 | Hitachi Ltd | 電子化文書回覧システム |
JPH11262843A (ja) * | 1998-03-17 | 1999-09-28 | Mitsubishi Electric Corp | 物流制御装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010018004A (ja) * | 2008-07-14 | 2010-01-28 | Canon Inc | ワークフロー実行装置及びワークフロー実行方法 |
JP2010123124A (ja) * | 2008-11-17 | 2010-06-03 | Toshiba Corp | ワークフロー管理装置、ならびにその方法およびプログラム |
US10733554B2 (en) | 2016-02-12 | 2020-08-04 | Fujitsu Limited | Information processing apparatus and method for managing connections |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7346532B2 (en) | Workflow system | |
US9916552B2 (en) | Workflow system and method with skip function | |
US6799314B2 (en) | Work flow management method and work flow management system of controlling a work flow | |
JP4020504B2 (ja) | ワークフロー管理システム制御方法及びワークフロー管理システム | |
US8577709B2 (en) | Workflow system, information processor, and method and program for workflow management | |
RU2419854C2 (ru) | Основанное на шаблоне управление службами | |
JP4824148B2 (ja) | コンピュータが実行可能なワークフロー・リソース管理システム | |
JPH08287162A (ja) | ワークフローシステム | |
JP4709612B2 (ja) | プロジェクトを構成するタスクに人員を割当てるための方法、プログラムおよびコンピュータ | |
JP2006338197A (ja) | トランザクション制御プログラム、トランザクション制御方法及びトランザクション処理システム | |
JP2008135054A (ja) | ワークフロー管理方法及びその実施システム | |
JPH11316780A (ja) | 階層化されたビジネスプロセス定義を有するワークフローシステム | |
JPH1063751A (ja) | ワークフローシステムおよびその作業分割方法 | |
JP2001209738A (ja) | ワークフローシステムにおける処理時間表示方法および処理期限設定方法 | |
JP4055013B2 (ja) | ワークフローシステムおよびワークフローシステムにおける作業分割方法 | |
JP7246301B2 (ja) | プログラム開発支援システム及びプログラム開発支援方法 | |
JP2003030389A (ja) | ワークフロー管理方法及びその実施システム並びにその処理プログラム | |
US20030018683A1 (en) | Method, system and program for deleting work flow item | |
JP2012164260A (ja) | コンピュータ運用管理システム、コンピュータ運用管理方法及びコンピュータ運用管理プログラム | |
JP2004062439A (ja) | 情報管理支援装置、情報管理支援システム、情報管理支援方法、記憶媒体、及びプログラム | |
JP2007257603A (ja) | リスト登録対象情報取得システム、方法、プログラム及び装置 | |
JP2002049496A (ja) | プログラム制御方法およびシステム並びにその処理プログラムを格納した記録媒体 | |
JP2001134476A (ja) | データベース一括更新方法 | |
CN114385279A (zh) | 子进程管理方法、装置、设备及介质 | |
CN116893932A (zh) | 一种基于云平台工作流的资源定时快照与备份实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100706 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100903 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101228 |