(57)【要約】【課題】ワークフローの例外事項をあらかじめすべて想定して定義するのは困難である。【解決手段】プロセス定義Ｘを適用したインスタンスＡおよびＢが進行する間に、インスタンスＢにだけ有効なフロー変更を施すために、プロセス定義Ｘには変更を加えず、プロセス定義Ｘを複製して変更を加えたプロセス定義Ｘ’を生成し、インスタンスＢに適用する。プロセス定義Ｘ自体を変更してプロセス定義Ｙを生成するときもプロセス定義Ｘを残存させて、この定義を適用したインスタンスＡの進行を維持する。【選択図】　図１
2004086498.tif 000002
【特許請求の範囲】
【請求項１】
ワークフローのプロセス定義に基づくインスタンスの開始に関する指示を取得する工程と、
前記インスタンスに適用すべきプロセス定義を読み出す工程と、
前記読み出したプロセス定義を適用したインスタンスを開始する工程と、
前記プロセス定義に関して特定のインスタンスへ限定的に適用すべき変更指示を取得したときに前記特定のインスタンスを一時停止させる工程と、
前記プロセス定義に変更を加えた新たなプロセス定義を生成し、これを変更前のプロセス定義とは別個に格納する工程と、
前記変更前のプロセス定義に基づいて既に進行している他のインスタンスに関しては前記変更前のプロセス定義を適用した状態でその進行を維持しつつ、前記一時停止した特定のインスタンスに対して前記新たなプロセス定義を適用してこれを再開させる工程と、
を有することを特徴とするワークフロー管理方法。
【請求項２】
ワークフローのプロセス定義を保持する定義格納部と、
前記プロセス定義に基づくインスタンスを進行させるフロー処理部と、
前記プロセス定義に関して特定のインスタンスへ限定的に適用すべき変更が指示されたとき、変更前のプロセス定義を保持させたままそのプロセス定義に変更が加えられた新たなプロセス定義を生成するプロセス変更部と、を有し、
前記フロー処理部は、前記限定的な変更が指示されたとき、他のインスタンスの進行を維持しつつ前記特定のインスタンスを一時停止させ、前記変更後の新たなプロセス定義を前記特定のインスタンスに適用してこれを再開させることを特徴とするワークフロー管理装置。
【請求項３】
ワークフローのプロセス定義を保持する定義格納部と、
前記プロセス定義に基づくインスタンスを進行させるフロー処理部と、
前記定義格納部が保持するプロセス定義に恒常的な変更を加える指示がなされたとき、変更前のプロセス定義を保持させたままそのプロセス定義に変更が加えられた新たなプロセス定義を生成するプロセス変更部と、を有し、
前記フロー処理部は、前記恒常的な変更の指示がなされたときに変更対象のプロセス定義に基づく進行中のインスタンスが存在する場合、変更前のプロセス定義に基づいてそのインスタンスの進行を維持しつつ、新たに開始されるインスタンスに変更後の新たなプロセス定義を適用することを特徴とするワークフロー管理装置。
【請求項４】
前記プロセス変更部は、前記変更の履歴を前記プロセス定義に記述することにより変更前後のプロセス定義を関連づけることを特徴とする請求項２または３に記載のワークフロー管理装置。
【請求項５】
ワークフローのプロセス定義に基づくインスタンスの開始に関する指示を取得する工程と、
前記インスタンスに適用すべきプロセス定義を読み出す工程と、
前記読み出したプロセス定義を適用したインスタンスを開始する工程と、
前記プロセス定義に関して特定のインスタンスへ限定的に適用すべき変更指示を取得したときに前記特定のインスタンスを一時停止させる工程と、
前記プロセス定義に変更を加えた新たなプロセス定義を生成し、これを変更前のプロセス定義とは別個に格納する工程と、
前記変更前のプロセス定義に基づいて既に進行している他のインスタンスに関しては前記変更前のプロセス定義を適用した状態でその進行を維持しつつ、前記一時停止した特定のインスタンスに対して前記新たなプロセス定義を適用してこれを再開させる工程と、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ワークフロー管理方法およびワークフロー管理装置に関する。この発明は特に、ワークフローの内容を動的に変更する技術に関する。
【０００２】
【従来の技術】
ワークフローは、業務において複数人によって順に手続されるべき作業手順の詳細をあらかじめ定義しておき、その定義に基づく作業進行を電子メールなどの通信手段を利用して自動化したものである。こうした技術は、会社業務における作業の効率化に寄与し、人的資源の浪費を回避できる点で重要な意味を持つ。また同時に手続の適正化も実現され、単なるコスト面の効果に留まらない。
【０００３】
ワークフローの標準仕様はＷｆＭＣ（Ｗｏｒｋｆｌｏｗ　Ｍａｎａｇｅｍｅｎｔ　Ｃｏａｌｉｔｉｏｎ）が定めており、その仕様の下で作業手順を事前に想定して定義しておく。この標準仕様では、適用する定義にしたがったフローしか進行させることができない。したがって、例外的な処理まで含めてワークフローで自動化したい場合はあらゆる例外事項を予測して定義しておく必要がある。
【０００４】
【発明が解決しようとする課題】
しかし、あらゆる例外事項を事前に想定することは際限がなく、しかもこれらをすべて定義すると徒に定義が複雑になり却って作業効率の妨げとなり得る。一方で、ワークフローシステムの稼働を開始した後は、つねに何らかのフローが進行している状況が想定され、無闇に定義を変更できない。そうした使い勝手の面で標準仕様には課題が残されている。
【０００５】
本発明者は以上の認識に基づき本発明をなしたもので、その目的は、業務における作業効率を向上させる技術の提供にある。本発明の別の目的は、ワークフローの柔軟性を向上させる技術の提供にある。
【０００６】
【課題を解決するための手段】
本発明のある態様は、ワークフロー管理方法に関する。この方法は、ワークフローのプロセス定義に基づくインスタンスの開始に関する指示を取得する工程と、そのインスタンスに適用すべきプロセス定義を読み出す工程と、読み出したプロセス定義を適用したインスタンスを開始する工程と、プロセス定義に関して特定のインスタンスへ限定的に適用すべき変更指示を取得したときにその特定のインスタンスを一時停止させる工程と、プロセス定義に変更を加えた新たなプロセス定義を生成し、これを変更前のプロセス定義とは別個に格納する工程と、変更前のプロセス定義に基づいて既に進行している他のインスタンスに関しては変更前のプロセス定義を適用した状態でその進行を維持しつつ、一時停止した特定のインスタンスに対して新たなプロセス定義を適用してこれを再開させる工程と、を有する。
【０００７】
「ワークフロー」は、複数人が介在する一連の作業をあらかじめ規定されたプロセス定義にしたがって自動的に進行させる。「プロセス定義」には、一連の作業を進行させるときの当事者、その当事者ごとになすべき作業（以下、「アクティビティ」という）、そのアクティビティの順序、などが規定される。プロセス定義は、ＷＰＤＬ（ＷｆＭＣ　Ｐｒｏｃｅｓｓ　Ｄｅｆｉｎｉｔｉｏｎ　Ｌａｎｇｕａｇｅ）などの記述言語を用いて記述される。
【０００８】
「インスタンス」は、プロセス定義にしたがって開始された現実のワークフローの例である。例えば、物品購入申請の承諾に関するワークフローの場合、インスタンスごとに申請書のデータが生成され、インスタンスごとに稟議される。プロセス定義とインスタンスの関係は、ひな形とそのひな形に基づいて作成された書類の関係に類似する。インスタンスのデータには、ワークフローにおいて転送すべきフォームや、ワークフロー進行の過程で記録される進行状況の情報、アクティビティごとに担当者が入力するデータ、などが含められてもよい。
【０００９】
インスタンスの開始指示やプロセス定義の変更指示は、いずれも明示的な指示であっても暗示的な指示であってもよい。インスタンスの一時停止は、結果としてそのインスタンスのフロー停止が実現されれば足りる。
【００１０】
この態様によれば、変更前のプロセス定義には直接的な変更を加えずにこれを残存させ、いわば別ファイルとして変更後のプロセス定義を生成する。その新たなプロセス定義は特定のインスタンスに対してだけ有効にされ、進行中の他のインスタンスは変更前のプロセス定義にしたがった処理が維持される。これによりワークフロー内容の動的な変更が実現され、作業効率の向上が図られる。
【００１１】
本発明の別の態様は、ワークフロー管理装置に関する。この装置は、ワークフローのプロセス定義を保持する定義格納部と、プロセス定義に関して特定のインスタンスへ限定的に適用すべき変更が指示されたとき、変更前のプロセス定義を保持させたままそのプロセス定義に変更が加えられた新たなプロセス定義を生成するプロセス変更部と、を有する。フロー処理部は、限定的な変更が指示されたとき、他のインスタンスの進行を維持しつつ特定のインスタンスを一時停止させ、変更後の新たなプロセス定義を特定のインスタンスに適用してこれを再開させる。この態様では、指定のあったインスタンスについてだけ変更が適用される。
【００１２】
本発明のさらに別の態様もまたワークフロー管理装置に関する。この装置は、ワークフローのプロセス定義を保持する定義格納部と、プロセス定義に基づくインスタンスを進行させるフロー処理部と、定義格納部が保持するプロセス定義に恒常的な変更を加える指示がなされたとき、変更前のプロセス定義を保持させたままそのプロセス定義に変更が加えられた新たなプロセス定義を生成するプロセス変更部と、を有する。フロー処理部は、恒常的な変更の指示がなされたときに変更対象のプロセス定義に基づく進行中のインスタンスが存在する場合、変更前のプロセス定義に基づいてそのインスタンスの進行を維持しつつ、新たに開始されるインスタンスに変更後の新たなプロセス定義を適用する。この態様では、変更以降に開始されるインスタンスについて変更が適用される。すなわち、変更結果が恒常的にプロセス定義に反映される。
【００１３】
定義格納部は、主にハードディスクなどの記憶装置を示す。この格納部を本体から分離した形で構成してもよく、その場合ネットワークを介して本体に接続してもよい。フロー処理部およびプロセス変更部は、中央演算装置や制御装置などによって実現される。
【００１４】
本装置は、ネットワーク上に設置されたサーバまたはユーザ端末のいずれかを指す場合と、ネットワークを介して接続されたサーバおよびユーザ端末からなるシステムを指す場合の双方を含み、定義格納部、フロー処理部、およびプロセス変更部の各機能ブロックは、サーバ側に設けられてもよいし、ユーザ端末側に設けられてもよい。サーバおよびユーザ端末の双方に設けられてもよいし、その場合の各機能ブロックはそれぞれ同じ名称でもよい。これら各機能は、それぞれプログラムモジュールのかたちで提供され、サーバおよびユーザ端末のいずれかまたは双方にて実行されてもよいし、実行にあたりサーバからユーザ端末へダウンロードされてもよい。
【００１５】
これらの態様によれば、プロセス定義の変更を特定のインスタンスに対してだけ、あるいは変更以降に開始されるインスタンスに対してだけ有効にでき、他の進行中のインスタンスに影響が及ばない。したがって、ワークフロー内容の動的な変更が実現でき、よって作業効率のさらなる向上が図られる。
【００１６】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体、データ構造などの間で相互に置換したものもまた、本発明の態様として有効である。
【００１７】
【発明の実施の形態】
以下、会社内での業務におけるワークフローを例に説明する。
図１は、ワークフローにおけるプロセス定義の変更方法を模式的に示す図である。まず、物品の購入申請に関するプロセス定義Ｘに基づいて社員ＡがインスタンスＡを起票する。同様に、同じプロセス定義Ｘに基づいて社員ＢがインスタンスＢを起票する。これら二つのインスタンスは互いに独立して進行される。
【００１８】
プロセス定義Ｘには、購入申請書のフォームと、その承認に関する稟議手順が定められている。例えば、申請者の所属部署の課長および部長の順で承諾を得る手順が定められる。ここで、社員Ｂが購入申請した物品は他の部署の承諾も得るべきであったため、稟議の途中でいったんインスタンスＢを停止し、プロセス定義Ｘを一部変更した新たなプロセス定義Ｘ’を作成する。プロセス定義Ｘ’を適用したインスタンスＢ’を新たに生成してフローを再開する。
【００１９】
プロセス定義Ｘ’にさらなる変更を加える場合、プロセス定義Ｘ’を変更したプロセス定義Ｘ’’を作成し、これ適用したインスタンスＢ’’を新たに生成してフローを再開する。なお、他の形態においては、新たなプロセス定義を作成するたびに新たなインスタンスを生成せず、元のインスタンスＢに新たなプロセス定義を適用する構成としてもよい。例えばプロセス定義Ｘ’、Ｘ’’を作成したときにこれを停止中のインスタンスＢに直接適用して再開する方法が該当する。
【００２０】
一方、インスタンスＡが進行している間にプロセス定義Ｘを全面的に見直す場合、まずプロセス定義Ｘを変更したプロセス定義Ｙを作成し、変更後に開始されるすべてのインスタンスについて適用する。したがって、インスタンスＣにはプロセス定義Ｙが適用されるが、進行中のインスタンスＡには依然として変更前のプロセス定義Ｘが適用される。ユーザ側からは新たなプロセス定義Ｙが元のプロセス定義Ｘを置き換えた新たなプロセス定義Ｘに見えるよう扱う。すなわち、プロセス定義ＸとＹはデータとしては別個独立のデータであるが、表面上はいずれも「プロセス定義Ｘ」であって画面に併存させることはない。
【００２１】
各インスタンスはそれぞれに適用されるプロセス定義の終了条件を満たしたときにそのフローを完了する。このように実現されるワークフローの動的変更は、ＷｆＭＣ標準仕様に対する拡張機能と位置づけられる。
【００２２】
図２は、実施の形態に係るワークフロー管理システムの構成を示す図である。ワークフロー管理システム１０は、ネットワーク１６を介して接続される複数のユーザ端末１２およびワークフロー管理サーバ１４により構成される。ワークフロー管理サーバ１４は、ウェブサーバを含む構成であってもよいし、ユーザ端末１２は、パーソナルコンピュータと、これにインストールされたクライアントソフトウェアを含む構成であってもよい。
【００２３】
ワークフロー管理サーバ１４は、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子で実現でき、ソフトウェア的にはデータ送受信機能や表示画面生成機能のあるプログラムなどによって実現されるが、以下説明する図３ではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できる。
【００２４】
図３は、実施の形態に係るワークフロー管理サーバの基本構成を示す機能ブロック図である。ワークフロー管理サーバ１４は、通信部２０と、ユーザ端末１２からワークフローの実行やプロセス定義の変更に関する指示を取得する指示取得部３０と、プロセス定義を複数保持する定義格納部２８を有する。ワークフロー管理サーバ１４は、プロセス定義に基づいてワークフローを進行させるフロー処理部３２と、ユーザの指示に基づいてプロセス定義を変更するプロセス変更部２２と、各プロセス定義を管理するプロセス管理部４０をさらに有する。各部は、通信部２０を介してネットワーク１６上のユーザ端末１２との間でデータを送受信する。通信部２０は、データ送受信機能のほか、ルータ機能やサーバ機能を有してもよい。
【００２５】
プロセス変更部２２は、定義格納部２８から変更対象のプロセス定義を読み出してこれを複製した新たなプロセス定義を生成する定義生成部２４と、その生成したプロセス定義に修正を加えて元のプロセス定義と異なる内容に変化させる変更処理部２６とを含む。例えば指示取得部３０を介してプロセス定義の変更が指示されたとき、変更前のプロセス定義は定義格納部２８に保持させたままにするとともに、そのプロセス定義に変更が加えられた別個のプロセス定義を定義生成部２４およびプロセス変更部２２が生成する。
【００２６】
プロセス定義を変更する際、変更処理部２６は、その変更の履歴をプロセス定義の中に記述することにより変更前後のプロセス定義を関連づける。例えば、変更前と変更後のプロセス定義の中に変更履歴としてそれぞれ互いの識別情報を記述する。
【００２７】
フロー処理部３２は、定義格納部２８からプロセス定義を読み出す定義読出部３４と、読み出したプロセス定義を記憶する定義記憶部３６と、そのプロセス定義を適用したインスタンスを進行させるフロー制御部３８とを含む。
【００２８】
フロー制御部３８は、進行中のインスタンスに適用したプロセス定義が変更される場合に、そのインスタンスを一時停止させる。変更後の新たなプロセス定義を定義読出部３４がプロセス変更部２２から取得した後、フロー制御部３８がその定義を適用してインスタンスを再開させる。
【００２９】
同じプロセス定義に基づく複数のインスタンスが進行中のときにいずれかのインスタンスについてプロセス定義の変更が指示された場合、フロー制御部３８は、変更指示のあったインスタンスを一時停止させる。フロー制御部３８は、変更前のプロセス定義に基づく他のインスタンスの進行をそのまま維持し、停止したインスタンスには変更後のプロセス定義を適用して再開させる。
【００３０】
定義格納部２８が保持するプロセス定義を直接変更する指示がなされたときにそのプロセス定義を適用したインスタンスが進行中であった場合、フロー制御部３８は、変更前のプロセス定義に基づいてそのインスタンスの進行を維持する。定義記憶部３６が記憶する変更前のプロセス定義は、そのインスタンス終了後は破棄され、以降のインスタンスは変更後のプロセス定義を適用して開始される。
【００３１】
プロセス管理部４０は、各プロセス定義の状態に関する情報を保持する。例えば、進行中のインスタンスに適用したプロセス定義を原則として「基本状態」と位置づけるとともに、特定のインスタンスに対してだけ有効な変更後のプロセス定義を「臨時状態」とする。その他、利用不可にされているプロセス定義を「停止状態」とし、変更前の内容をもつプロセス定義を「破棄状態」、削除扱いするプロセス定義を「削除状態」と位置づける。このように、ひとつのプロセス定義から複数のプロセス定義を派生させてもそれぞれの状態が区別され管理されるので、プロセス定義の変更が他の無関係なインスタンスに影響を与えない。
【００３２】
図４は、実施の形態に係るワークフロー管理システムによりインスタンスが進行される間にプロセス定義が動的に変更される過程を示すフローチャートである。ワークフローのインスタンスの開始指示を受け取り（Ｓ１０）、適用するプロセス定義を読み出し（Ｓ１２）、これに基づいてインスタンスを開始する（Ｓ１４）。
【００３３】
インスタンス進行中にプロセス定義の変更指示を受け取ったとき（Ｓ１６Ｙ）、そのインスタンスを一時停止する（Ｓ１８）。元のプロセス定義に変更を加えた新たなプロセス定義を生成し（Ｓ２０）、その変更後のプロセス定義を適用してインスタンスを再開する（Ｓ２２）。
【００３４】
インスタンスが終了するまでの間（Ｓ２４Ｎ）、プロセス定義の変更指示があったときには再度Ｓ１８〜Ｓ２２のステップを処理する。
【００３５】
図５は、ワークフロー管理システムのユーザの画面例を示す図である。ユーザ画面５０において、プロセス定義に定められた作業手順がワークフロー図５２に表示される。このワークフロー図５２には、ワークフローを構成する複数のアクティビティがその順序通りに表示され、アクティビティごとに実行済、実行中、未実行の別が図示される。詳細ボタン６０をクリックすると申請内容の詳細を閲覧でき、承認ボタン５４をクリックするとその申請に承認を与える処理が実行され、否認ボタン５６をクリックすると否認する処理が実行される。変更ボタン５８をクリックすると、ユーザ画面５０において進行中のインスタンスに適用されたプロセス定義を変更するための別画面に切り替わる。
【００３６】
図６は、ワークフローにおけるプロセス定義の状態遷移図である。プロセス管理部４０で管理する各プロセス定義の状態が本図に示される。インスタンスが開始されたときのプロセス定義は原則として基本状態７０とされる。ここで、特定のインスタンスについてプロセス定義を変更するときは、新たに生成されるプロセス定義が臨時状態７６として扱われる。臨時状態７６のプロセス定義を用いて元のプロセス定義を置き換えた場合、元のプロセス定義は放棄状態７２へ移行し、新たなプロセス定義は基本状態７０へ移行する。
【００３７】
一方、臨時状態７６のプロセス定義にさらなる変更が加えられた場合、変更前の臨時のプロセス定義は削除状態７８へ移行し、変更後のプロセス定義が臨時状態７６として扱われる。臨時状態７６のプロセス定義に基づくインスタンスが終了したときはそのプロセス定義は削除状態７８に移行する。その他、利用不可にすべきプロセス定義は停止状態７４として扱われる。
【００３８】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、変形例を挙げる。
【００３９】
プロセス定義の変更に関する権限をあらかじめ特定の者に限定するために、その規則をプロセス定義自身に記述しておいてもよい。
【００４０】
プロセス定義の変更後におけるワークフローの再開に関し、特定のアクティビティを再開位置としてプロセス定義に記述しておいてもよいし、変更の際にユーザに再開位置を指定させてもよい。
【００４１】
【発明の効果】
本発明によれば、プロセス定義に基づくワークフローの効率をさらに向上させることができる。
【図面の簡単な説明】
【図１】ワークフローにおけるプロセス定義の変更方法を模式的に示す図である。
【図２】実施の形態に係るワークフロー管理システムの構成を示す図である。
【図３】実施の形態に係るワークフロー管理サーバの基本構成を示す機能ブロック図である。
【図４】実施の形態に係るワークフロー管理システムによりインスタンスが進行される間にプロセス定義が動的に変更される過程を示すフローチャートである。
【図５】ワークフロー管理システムのユーザの画面例を示す図である。
【図６】ワークフローにおけるプロセス定義の状態遷移図である。
【符号の説明】
１０　ワークフロー管理システム、　１２　ユーザ端末、　１４　ワークフロー管理サーバ、　１６　ネットワーク、　２２　プロセス変更部、　２８　定義格納部、　３２　フロー処理部。
【図１】
2004086498.tif 000003
【図２】
2004086498.tif 000004
【図３】
2004086498.tif 000005
【図４】
2004086498.tif 000006
【図５】
2004086498.tif 000007
【図６】
2004086498.tif 000008