(57)【要約】【課題】ワークフローシステムにおいて、同一処理者が処理する連続する複数のノードにて、従来は複数回行っていた処理を一回で済ます。【解決手段】ワークフローを実行する操作用コンピュータ端末２０と、操作用コンピュータ端末２０に対してネットワークを介して接続されてワークフローを管理するワークフローサーバ３０とを備え、このワークフローサーバ３０は、操作用コンピュータ端末２０を操作する同一処理者が処理する連続した複数のノードにおける処理について、この複数のノードにおける処理に必要な情報を集約させて操作用コンピュータ端末２０に対して送信する。【選択図】　　　　図１
2004062438.tif 000002
【特許請求の範囲】
【請求項１】
ワークフローを実行する操作用コンピュータ端末と、
前記操作用コンピュータ端末に対してネットワークを介して接続されて前記ワークフローを管理するワークフローサーバとを備え、
前記ワークフローサーバは、前記操作用コンピュータ端末を操作する同一処理者が処理する連続した複数のノードにおける処理について、当該複数のノードにおける処理に必要な情報を集約させて当該操作用コンピュータ端末に対して送信することを特徴とするワークフローシステム。
【請求項２】
前記ワークフローサーバは、前記同一処理者が処理する複数のノードの先頭のノードに前記ワークフローが実行される帳票が到達した際、当該同一処理者の判断に必要な情報を集約し、集約された当該情報を前記操作用コンピュータ端末に対して送信することを特徴とする請求項１記載のワークフローシステム。
【請求項３】
前記操作用コンピュータ端末は、前記ワークフローサーバから送信された前記情報に基づく前記同一処理者の処理結果を当該ワークフローサーバに対して送信することを特徴とする請求項１記載のワークフローシステム。
【請求項４】
前記ワークフローサーバは、前記操作用コンピュータ端末から送信された前記同一処理者の処理結果に基づいて前記複数のノードにおける個々の処理を行い、前記ワークフローを進めることを特徴とする請求項３記載のワークフローシステム。
【請求項５】
複数のコンピュータ端末に接続されてワークフローを管理するワークフローサーバであって、
ワークフローを実行する処理者に割り当てられるノードの定義を格納する格納手段と、
前記ワークフロー内にて、同一処理者が処理する連続する複数のノードを集約する集約範囲を決定する集約範囲決定手段と、
前記集約範囲決定手段により決定された前記集約範囲内の各ノード毎の選択可能な処理を前記格納手段から取得する取得手段と、
前記取得手段により取得された処理を集約して前記同一処理者に提供する提供手段と
を含むワークフローサーバ。
【請求項６】
前記格納手段に格納される前記ノードの定義は、当該ノードでの各フィールドのアクセス権に関する情報を含み、
前記集約範囲決定手段により決定された前記集約範囲内にて、各フィールドに対して最大のアクセス権を前記格納手段から取得する最大アクセス権取得手段を更に備えることを特徴とする請求項５記載のワークフローサーバ。
【請求項７】
前記格納手段は、同一処理者が連続する場合の帳票レイアウト定義を格納し、
前記提供手段は、前記格納手段から取得された前記帳票レイアウト定義および前記最大アクセス権取得手段から取得されたフィールドのアクセス権に基づいてフォーマットされた帳票を前記同一処理者に提供することを特徴とする請求項６記載のワークフローサーバ。
【請求項８】
複数のコンピュータ端末に接続されてワークフローを管理するワークフローエンジンであって、
前記ワークフロー内にて、同一処理者によって処理される連続する複数のノードを集約する集約範囲を決定する集約範囲決定手段と、
前記集約範囲決定手段により決定された前記集約範囲内にて、各ノードにおけるアクセス権限を各フィールドに対して設定するアクセス権限設定手段と、
前記集約範囲決定手段により決定された前記集約範囲内の各ノード毎の選択可能な処理を取得する選択可能処理取得手段と、
前記アクセス権限設定手段により設定されたアクセス権限および前記選択可能処理取得手段により取得された処理に基づいて帳票を生成する帳票生成手段と、前記帳票生成手段により生成された前記帳票を前記同一処理者に送付する帳票送付手段と
を含むワークフローエンジン。
【請求項９】
前記集約範囲決定手段は、所定のノードで選択可能な処理が複数あり、それぞれの処理に対して決まる経路について、その中の一つの経路に他の経路が包含される場合に、包含される当該他の経路を前記集約範囲として決定することを特徴とする請求項８記載のワークフローエンジン。
【請求項１０】
前記集約範囲決定手段は、所定のノードで選択可能な処理が複数あり、それぞれの処理に対して決まる経路が包含関係にない場合には、経路の共通部分を前記集約範囲として決定することを特徴とする請求項８記載のワークフローエンジン。
【請求項１１】
前記アクセス権限設定手段は、帳票上に定義された前記フィールドに対し、各ノードにおける前記同一処理者の有するアクセス権限の強いものを集約時におけるアクセス権限として設定することを特徴とする請求項８記載のワークフローエンジン。
【請求項１２】
ネットワークに接続されたコンピュータ端末を操作する処理者に割り当てられるワークフローのノードに対し、複数の当該ノードにおける処理を集約するワークフロー処理集約方法であって、
記憶装置に格納されたワークフロー定義に基づいて同一処理者によって処理される連続する複数のノードが集約された集約範囲を決定するステップと、
決定された前記集約範囲内の各ノード毎の選択可能な処理を前記記憶装置に格納された前記ワークフロー定義から取得するステップと、
取得された前記選択可能な処理を集約して集約情報を生成し、前記ネットワークを介して前記同一処理者に当該集約情報を提供するステップと
を含むワークフロー処理集約方法。
【請求項１３】
前記集約範囲を決定するステップは、所定のノードで選択可能な処理が複数あり、それぞれの処理に対して決まる経路について、包含される経路または経路の共通部分を当該集約範囲として決定することを特徴とする請求項１２記載のワークフロー処理集約方法。
【請求項１４】
前記記憶装置に格納された前記ワークフロー定義より、各フィールドに対して前記集約範囲内にて最大となるアクセス権限を求めるステップと、
前記記憶装置に格納された前記ワークフロー定義より、前記同一処理者に対して提供する帳票のレイアウト定義を取得するステップとを更に含み、
前記集約情報を提供するステップは、前記アクセス権限と前記レイアウト定義とに基づいて、前記集約情報としての帳票を生成することを特徴とする請求項１２記載のワークフロー処理集約方法。
【請求項１５】
前記同一処理者が前記集約情報に対して行った処理を受信するステップと、
受信した前記処理の中から、前記同一処理者が入力したフィールドの値および選択した処理を記憶装置に格納するステップと
を更に含む請求項１２記載のワークフロー処理集約方法。
【請求項１６】
ネットワークに接続された複数のコンピュータ端末によって実行されるワークフローを管理するコンピュータに、
記憶装置に格納されたワークフロー定義に基づいて、同一処理者によって処理される連続する複数のノードが集約された集約範囲を決定する機能と、
決定された前記集約範囲内の各ノード毎の選択可能な処理を前記記憶装置に格納された前記ワークフロー定義から取得する機能と、
取得された前記選択可能な処理を集約して集約情報を生成する機能と
を実現させるプログラム。
【請求項１７】
前記コンピュータに、
前記記憶装置に格納された前記ワークフロー定義より、各フィールドに対して前記集約範囲内にて最大となるアクセス権限を求める機能と、
前記記憶装置に格納された前記ワークフロー定義より、前記同一処理者に対して提供する帳票のレイアウト定義を取得する機能とを更に実現させ、
前記コンピュータに実行させる前記集約情報を生成する機能は、前記アクセス権限および前記レイアウト定義に基づいて前記同一処理者に提供する帳票を生成する機能であることを特徴とする請求項１６記載のプログラム。
【請求項１８】
前記コンピュータに、
前記集約情報を生成する機能により生成された前記帳票を前記同一処理者に送信する機能と、
生成された前記帳票に対する前記同一処理者からの処理を受信する機能と、
受信した前記処理の中から、フィールドの値および選択した処理を記憶装置の作業用データテーブルに格納する機能と
を更に実現させる請求項１７記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オフィスにおけるワークフローの改善に係り、より詳しくは、処理者の処理を簡潔化させるワークフローシステム等に関する。
【０００２】
【従来の技術】
複数の作業者が関わる一連の業務手順を定義し、その業務の流れを実際に管理して運用するワークフローシステムは、業務手順に従った業務の管理・運用を電子化にて実現しており、このワークフローシステムの導入によって、作業の効率化を図ることができる。オフィスにおける事務処理の効率化、ファイルキャビネットのスペースコストの問題、環境問題等から、このワークフローの１つである例えば伝票処理を電子化して、ペーパーレスによる帳票処理システムを構築することの必要性は非常に高いものがある。しかしながら、実際の伝票処理は複雑であり、例外処理に対する対応の問題などから、ペーパーレスな帳票処理システムは、未だ十分に普及されているとは言い得ない。
【０００３】
そこで、複雑なワークフローを簡単に設計・管理できる電子申請システムとして、日本アイ・ビー・エム株式会社から「ＦｏｒｍＷａｖｅ」（インターナショナル・ビジネス・マシーンズ社の商標）が提供されている。この「ＦｏｒｍＷａｖｅ」では、各種申請・承認業務における起票から承認・保管までの一連の流れの中で、複雑な経路の設定・管理をワークフローエンジンにて行うことで、迅速かつ正確な処理が可能となり、部門や組織の生産性の向上を図ることができる。
【０００４】
また、ワークフローシステムに関する従来技術として、例えば、特開平１０−１０５６２３号公報には、ワークフローの定義情報を分割して登録し、分割した登録情報を複数のワークフローで共有化する技術について開示されている。これにより、プロセスの部分的変更や、プロセスの部分的停止や再開等を行い、効率的できめ細やかな管理を実現することができる。また、特開平１０−１３４１２７号公報には、停滞している回覧を回収する際に、現在回覧を処理中の作業者および後に回覧を処理する予定の作業者に対して予告を行い、各作業者における業務の混乱を防ぐ技術について示されている。更に、特開２０００−１３７７６３号公報には、処理担当ユーザがやむを得ない事態で一時的に処理業務ができなくなった場合に、業務遂行を停滞させることがないように、あるノードに電子化文書が送付された時点からの経過時間を監視し、処理完了がなされないまま制限処理時間に達した場合には電子化文書を自動的にスキップする技術について開示されている。
【０００５】
【発明が解決しようとする課題】
ここで、これらのワークフローシステムにおいて、上位の役職を兼任している処理者がいる場合などに、同一の処理者が同じ帳票に対して続けて承認などの処理を行う場合がある。例えば、起票者Ａさんの所属する部署では、係長と課長とをＢさんが兼任し、部長はＣさんが務めるような場合である。このようなときに、係長と課長とを兼任しているＢさんは、帳票に対する判断は変わらないのに、同一の帳票に対して続けて２回、処理する必要がある。かかる場合、同一人物が処理を行うために、その帳票に対する判断は夫々のノードで賛否が変わることがなく、同一の判断が行われるものと考えられ、一度の処理で済むはずである。しかしながら、現行のワークフローシステムでは、それぞれのノードにおいて複数回の処理を行う必要があった。
【０００６】
また、このように同一処理者のノードが連続する場合に、最初のノードでの処理が他のノードでも可能なとき、即ち、その先頭のノードにおける処理がそれ以降のノードでも適用可能な場合（同一の処理が適用可能でなくても、同一とみなすことができる処理が定義してある場合はその処理を適用する場合）、その処理が以降のノードでも行われたものとして処理を行う方法が提案されている。しかしながら、かかる提案の方法では、処理者は、先頭ノードで提供される情報しか参照することができず、また、情報の入力も先頭ノードにおいて入力可能なものしか入力することができなかった。このために、参照や変更できるフィールドが異なる場合、例えば、係長と課長とで人事情報への権限が異なる等、それぞれのノードでの情報へのアクセス権限が異なる場合には、意思決定に必要な情報を参照することができず、また、必要な情報の変更や入力ができずに、途中のノードでエラーが発生することも考えられる。
【０００７】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的とするところは、ワークフローシステムにおいて、例えば、同一処理者が処理する連続する複数のノードにて、従来は複数回行っていた処理を一回で済ますことにある。
【０００８】
【課題を解決するための手段】
かかる目的のもと、本発明は、同一処理者が処理するノードが連続する場合、帳票が先頭のノードに到達したときに、ワークフローエンジンは、連続するノード上における処理者の判断に必要な情報を集約し、その集約された情報を処理者に送付している。この情報を送付された処理者は、その情報を元に意思決定を行い、処理結果をワークフローエンジンに送付する。ワークフローエンジンでは、処理者から送られた情報をもとに、各ノードにおける必要な処理を行い、ワークフローを進めるように構成されている。これらの一連の処理によって、従来は複数回行っていた処理を、例えば一回で済ませることが可能となる。即ち、本発明が適用されるワークフローシステムは、ワークフローを実行する操作用コンピュータ端末と、操作用コンピュータ端末に対してネットワークを介して接続されてワークフローを管理するワークフローサーバとを備え、このワークフローサーバは、操作用コンピュータ端末を操作する同一処理者が処理する連続した複数のノードにおける処理について、この複数のノードにおける処理に必要な情報を集約させて操作用コンピュータ端末に対して送信することを特徴としている。
【０００９】
ここで、このワークフローサーバは、同一処理者が処理する複数のノードの先頭のノードにワークフローが実行される帳票が到達した際、同一処理者の判断に必要な情報を集約し、集約された情報を操作用コンピュータ端末に対して送信することを特徴とすることができる。また、この操作用コンピュータ端末は、ワークフローサーバから送信された情報に基づく同一処理者の処理結果をワークフローサーバに対して送信している。更に、このワークフローサーバは、操作用コンピュータ端末から送信された同一処理者の処理結果に基づいて複数のノードにおける個々の処理を行い、ワークフローを進めることを特徴とすることができる。
【００１０】
一方、本発明が適用されるワークフローサーバは、複数のコンピュータ端末に接続されてワークフローを管理するワークフローサーバであって、ワークフローを実行する処理者に割り当てられるノードの定義を格納する格納手段と、ワークフロー内にて、同一処理者が処理する連続する複数のノードを集約する集約範囲を決定する集約範囲決定手段と、この集約範囲決定手段により決定された集約範囲内の各ノード毎の選択可能な処理を格納手段から取得する取得手段と、この取得手段により取得された処理を集約して同一処理者に提供する提供手段とを含んでいる。
【００１１】
ここで、このノードの定義は、ノードでの各フィールドのアクセス権に関する情報を含み、集約範囲決定手段により決定された集約範囲内にて、各フィールドに対して最大のアクセス権を格納手段から取得する最大アクセス権取得手段を更に備えることを特徴とすることができる。また、この格納手段は、同一処理者が連続する場合の帳票レイアウト定義を格納し、提供手段は、格納手段から取得された帳票レイアウト定義および最大アクセス権取得手段から取得されたフィールドのアクセス権に基づいてフォーマットされた帳票を同一処理者に提供することを特徴とすることができる。
【００１２】
他の観点から捉えると、本発明は、複数のコンピュータ端末に接続されてワークフローを管理するワークフローエンジンであって、ワークフロー内にて、同一処理者によって処理される連続する複数のノードを集約する集約範囲を決定する集約範囲決定手段と、この集約範囲決定手段により決定された集約範囲内にて、各ノードにおけるアクセス権限を各フィールドに対して設定するアクセス権限設定手段と、この集約範囲決定手段により決定された集約範囲内の各ノード毎の選択可能な処理を取得する選択可能処理取得手段と、アクセス権限設定手段により設定されたアクセス権限および選択可能処理取得手段により取得された処理に基づいて帳票を生成する帳票生成手段と、この帳票生成手段により生成された帳票を同一処理者に送付する帳票送付手段とを含んでいる。
【００１３】
ここで、集約範囲決定手段は、集約範囲の決定手法として幾つかを採用することができる。例えば、所定のノードで選択可能な処理が複数あり、それぞれの処理に対して決まる経路について、その中の一つの経路に他の経路が包含される場合に、包含される他の経路を集約範囲として決定するものがある。また、それぞれの処理に対して決まる経路が包含関係にない場合には、経路の共通部分を集約範囲として決定することができる。更に、このアクセス権限設定手段は、帳票上に定義されたフィールドに対し、各ノードにおける同一処理者の有するアクセス権限の強いものを集約時におけるアクセス権限として設定することができる。
【００１４】
また、本発明は、ネットワークに接続されたコンピュータ端末を操作する処理者に割り当てられるワークフローのノードに対し、複数の当該ノードにおける処理を集約するワークフロー処理集約方法として捉えることができる。この方法では、記憶装置に格納されたワークフロー定義に基づいて同一処理者によって処理される連続する複数のノードが集約された集約範囲を決定するステップと、ワークフロー定義より、各フィールドに対して集約範囲内にて最大となるアクセス権限を求めるステップと、決定された集約範囲内の各ノード毎の選択可能な処理を記憶装置に格納されたワークフロー定義から取得するステップと、ワークフロー定義より、同一処理者に対して提供する帳票のレイアウト定義を取得するステップと、アクセス権限とレイアウト定義とに基づいて集約情報としての帳票を生成し、即ち、取得された選択可能な処理を集約して集約情報を生成し、ネットワークを介して同一処理者に集約情報を提供するステップとを含む。
【００１５】
更に、後処理として、同一処理者が集約情報に対して行った処理をネットワークを介して受信するステップと、受信した処理の中から、同一処理者が入力したフィールドの値および選択した処理を記憶装置に格納するステップとを更に含むことができる。
【００１６】
尚、本発明は、コンピュータであるワークフローエンジンに実行させるプログラムとして把握することができる。即ち、本発明が適用されるプログラムは、ネットワークに接続された複数のコンピュータ端末によって実行されるワークフローを管理するコンピュータに、記憶装置に格納されたワークフロー定義に基づいて、同一処理者によって処理される連続する複数のノードが集約された集約範囲を決定する機能と、ワークフロー定義より、各フィールドに対してこの集約範囲内にて最大となるアクセス権限を求める機能と、決定された集約範囲内の各ノード毎の選択可能な処理を記憶装置に格納されたワークフロー定義から取得する機能と、ワークフロー定義より、同一処理者に対して提供する帳票のレイアウト定義を取得する機能と、アクセス権限およびレイアウト定義に基づいて同一処理者に提供する帳票を生成し、取得された選択可能な処理を集約して集約情報を生成する機能と、生成された帳票を同一処理者に送信する機能と、この帳票に対する同一処理者からの処理を受信する機能と、受信した処理の中から、フィールドの値および選択した処理を記憶装置の作業用データテーブルに格納する機能とを実現させる。
【００１７】
尚、これらのプログラムとしては、コンピュータであるワークフローエンジンを顧客に対して提供する際に、インストールされた状態にて提供される場合の他、コンピュータに実行させるプログラムをコンピュータが読取可能に記憶した記憶媒体にて提供する形態が考えられる。この記憶媒体としては、例えばフロッピーディスクやＣＤ−ＲＯＭ媒体等が該当し、フロッピーディスクドライブやＣＤ−ＲＯＭ読取装置等によってプログラムが読み取られ、フラッシュＲＯＭ等にこのプログラムが格納されて実行される。また、これらのプログラムは、例えば、プログラム伝送装置によってネットワークを介して提供される形態がある。このプログラム伝送装置としては、例えば、ホスト側のサーバに設けられ、プログラムを格納するメモリと、ネットワークを介してプログラムを提供するプログラム伝送手段とを備えている。
【００１８】
【発明の実施の形態】
以下、添付図面を用い、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態が適用されるワークフローシステムの概略構成を示す図である。本実施の形態におけるワークフローシステムは、ワークフローの設計のための設計用コンピュータ端末１０、業務を遂行する処理者（担当者）に対応して設けられたワークフローの操作用コンピュータ端末２０、ワークフローを実行するための各種プログラムや各種テーブルが格納されるワークフローサーバ３０を備えている。この設計用コンピュータ端末１０、操作用コンピュータ端末２０、およびワークフローサーバ３０は、それぞれ接続されてネットワークを形成している。
【００１９】
設計用コンピュータ端末１０は、ワークフローの設計機能が導入されており、業務処理をワークフローシステムで実現するための定義機能を備えている。業務処理定義者（処理設計者）は、この設計用コンピュータ端末１０を用いて業務処理手順をワークフローシステムに定義する。操作用コンピュータ端末２０には、予め指定された所定の業務を実行する機能が備えられており、例えば、起票者、係長、課長、部長等の各処理担当者に配置されている。業務処理定義者は、設計用コンピュータ端末１０を用いて、自己の識別情報を入力してワークフローシステムに接続する。また、業務処理定義者は、ワークフロー設計機能を用いて、対象としている業務における処理の流れと、処理で用いられるデータ構造とを設計している。
【００２０】
本実施の形態が適用されるワークフローシステムでは、担当者（処理者）に割り当てられる所定業務の単位であるノードを、所定業務処理の順番、即ち、処理のつながりを示すパスによって連結し、ワークフローが定義される。例えば、全てのノードにて単一のデータ定義が参照され、各処理間で必要となるデータの受け渡しはパスに従うと仮定することができる。複数の操作用コンピュータ端末２０と複数のノードとが一致する場合もあるが、複数のノードの業務を単一の操作用コンピュータ端末２０にて実行する場合もある。ノードはワークフローの業務の単位であって、操作用コンピュータ端末２０とは一致するものではない。
【００２１】
本実施の形態では、同一担当者（例えば、一台の操作用コンピュータ端末２０を操作する同一人物）が処理するノードが連続する場合（例えば、係長ノードと課長ノードであり、所定の業務において係長と課長とを同一人物が兼務している場合）、ワークフローに用いられる帳票がその先頭ノード（例えば係長ノード）に到達したときに、ワークフローサーバ３０にて、連続するノード上における処理者の判断に必要な情報を集約する。そして、その集約された情報を、例えば新たな帳票として実現して、処理者（兼務している担当者、同一処理者）の操作用コンピュータ端末２０に、ネットワークを介して送信する。この情報（例えば新たな帳票）を受信した操作用コンピュータ端末２０の処理者（兼務している担当者、同一処理者）は、その情報を元に意思決定を行い、ネットワークを介して処理結果をワークフローサーバ３０に送信する。処理結果を受信したワークフローサーバ３０では、送付された処理結果を用いて、集約した各ノードにおける必要な処理を行い、その後のワークフローを進めるように構成されている。尚、集約される情報としては、帳票以外に所定のテキスト情報等で実現される場合もある。
【００２２】
図２は、ワークフローサーバ３０の構成を示した図である。本実施の形態におけるワークフローサーバ３０は、ワークフローエンジン４０として、ワークフロー定義管理プログラム４１、ワークフロー処理実行プログラム４２、ワークフローインスタンス管理プログラム４３、クライアント要求処理プログラム４４、およびユーザ管理プログラム４５を備えている。また、各種情報を記憶する記憶装置として、ワークフロー定義３１、ワークフローインスタンスデータ３２、処理履歴３３、同一処理者連続時作業用データ３４、およびユーザ情報３５の各テーブルを備えている。図２では、これらの情報が格納される記憶装置をワークフローサーバ３０内に配置してあるが、これらはネットワーク内のどこに配置させても構わない。
【００２３】
ワークフロー定義管理プログラム４１は、業務処理定義者が定義したワークフローをワークフロー定義３１に保存して管理する。定義される各々のワークフローは、ワークフロー定義ＩＤによって識別され、新たな定義の登録および既にある定義の修正は、ワークフロー定義管理プログラム４１を通じてワークフロー定義ＩＤを用いて管理される。また、操作用コンピュータ端末２０を操作する処理者が新規プロセスを作成する際には、処理者が操作用コンピュータ端末２０よりクライアント要求処理プログラム４４に対して、その処理者が作成できるプロセスの一覧を作成し操作用コンピュータ端末２０上に表示するように要求を出す。処理者からの要求を受けたクライアント要求処理プログラム４４は、ワークフロー定義管理プログラム４１に対して受け取った要求を渡し、ワークフロー定義管理プログラム４１は、ワークフロー定義３１を用いて作成可能なプロセスの一覧を作成する。このワークフロー定義３１には、同一処理者が連続する場合の処理方法を決める集約フラグや、集約処理を決定する際に用いられる各ノードでの各フィールドのアクセス権、各ノード毎の選択可能な処理等が格納されている。
【００２４】
ワークフロー処理実行プログラム４２は、ワークフロー定義３１に格納されたテーブル情報に基づいてワークフロー処理を実行している。このワークフロー処理実行プログラム４２では、情報を集約する範囲の決定や、情報の集約処理が実行される。ワークフローインスタンス管理プログラム４３は、実際に流れているインスタンスの状況、例えば、処理の流れの中でユーザが入力したデータを保持したり、ユーザが入力したデータなどをワークフローインスタンスデータ３２に格納すると共に、これらの情報に基づく処理履歴３３を管理している。ここで、ワークフローのインスタンスとは、動いている伝票等を示しており、ワークフローとして定義され、実体として流れているものである。
【００２５】
クライアント要求処理プログラム４４は、操作用コンピュータ端末２０を用いる担当者からの要求、例えば、処理依頼や「処理待ち伝票を開く」といったようなクライアントからの各種要求を受け付ける機能を有している。このクライアント要求処理プログラム４４は、担当者に対して、現在割り当てられているアクティビティの一覧を提供し、また、担当者のアクティビティ終了要求を受け付ける機能等を備えている。担当者（処理者）自身が参加したプロセスが現在どのような状態にあるかを参照するためには、ワークフローインスタンスデータ３２に格納されている情報が用いられる。クライアントからの要求は、ワークフロー処理実行プログラム４２やワークフローインスタンス管理プログラム４３に渡される。ユーザ管理プログラム４５は、ワークフローシステムに参加できる担当者（ユーザ）の定義や例えばＡさんの上司はＢさんである、といったようなユーザに関する情報を定義しており、処理者の各種情報をユーザ情報３５に登録し、必要に応じてユーザ情報３５にアクセスしている。
【００２６】
図３（ａ），（ｂ）および図４（ａ），（ｂ），（ｃ）は、各種テーブルに格納される情報を説明するための図である。図３（ａ）は、ワークフロー定義３１に格納されるテーブル情報が示されている。ワークフロー定義３１には、識別子である「ワークフロー定義ＩＤ」、ワークフローの「タイトル」、同一処理者が連続する場合の処理方法として「集約フラグ」が定義される。この「集約フラグ」では、それぞれのノードを個別に処理する場合には「０」を、ノード情報を集約して処理者に送付して一度に処理する場合には「１」が設定される。また、ワークフロー定義３１には、フィールドの定義である「フィールド定義」、処理の名前やその処理が選択されたときのワークフローのフロー方向、およびワークフローエンジン４０がワークフローに対して行う操作の定義である「処理定義」、ノードの名前や処理者の指定、そのノードでの各フィールドのアクセス権、選択可能な処理の一覧、およびノード固有の帳票レイアウト等を定義する「ノード定義」、ノードの接続情報である「パス定義」、標準の帳票レイアウト定義である「標準レイアウト」、同一処理者が連続する場合の帳票レイアウト定義である「同一処理者連続時レイアウト」などが格納される。
【００２７】
図３（ｂ）は、ワークフローインスタンスデータ３２に格納されるテーブル情報が示されている。ここでは、ワークフローインスタンスの識別子である「レコードＩＤ」、ワークフロー定義３１に格納される定義の識別子である「ワークフロー定義ＩＤ」、「伝票番号」、操作用コンピュータ端末２０を操作する処理者として、「起票者ＩＤ」、一つ前の処理者ＩＤである「前処理者ＩＤ」、現在の処理者ＩＤである「現処理者ＩＤ」、現在のノードＩＤである「ノードＩＤ」、各フィールドのデータである「伝票データ」が格納されている。
【００２８】
図４（ａ）は、処理履歴３３に格納される各種テーブル情報が示されている。ここでは、図３（ｂ）と同様に、「ワークフロー定義ＩＤ」、「伝票番号」、「現処理者ＩＤ」、「ノードＩＤ」が格納される。また、処理者ＩＤ、処理者の名前、選択した処理、処理を行ったノード、処理を行った日時、処理の結果（エラー／正常）の組を各ノード毎に記録する「処理履歴」が格納される。
【００２９】
図４（ｂ）は、同一処理者連続時作業用データ３４に格納される作業用データテーブルが示されている。ここでは、「レコードＩＤ」、「ワークフロー定義ＩＤ」、「伝票番号」、「現処理者ＩＤ」、「ノードＩＤ」、の他に、同一処理者が連続する範囲である「経路情報」、「フィールドアクセス権」、経路情報に含まれる各ノードでの選択可能な処理一覧である「処理テーブル」、ユーザが入力した各フィールドのデータである「伝票データ」、ユーザが選択した処理である「処理」が格納される。
【００３０】
図４（ｃ）は、ユーザ情報３５に格納されるユーザ情報テーブルが示されており、処理者の識別子である「処理者ＩＤ」、処理者の名前である「名前」、処理者の上司の処理者ＩＤである「上司」の情報がテーブル情報として格納される。尚、図３（ａ），（ｂ）および図４（ａ），（ｂ）に示される「＊１」は、複数個のデータからなりＸＭＬ形式で保管されるデータを示している。
【００３１】
次に、図５および図６を用いて起票時および起票時以外の大まかな流れについて説明する。
図５は、起票時の流れを説明するための図である。まず、操作用コンピュータ端末２０の処理者である起票者から起票要求（図のＩ）を受けたワークフローエン
ジン４０は、ワークフロー定義３１を参照し（図のＩＩ）、ユーザ情報３５から、
ノードの処理者を決定するためのユーザ情報を参照する（図のＩＩＩ）。また、同一処理者連続時作業用データ３４に集約データを保管し（図のＩＶ）、操作用コンピ
ュータ端末２０の処理者に帳票が送られる（図のＶ）。その後、処理者から入力
済み帳票の送付を受けると（図のＶＩ）、ワークフローエンジン４０は、同一処理
者連続時作業用データ３４に入力データを保管し（図のＶＩＩ）、ワークフローインスタンスデータ３２におけるインスタンスデータを更新する（図のＶＩＩＩ）。最後に、処理履歴３３に対して処理履歴の更新を行う（図のＩＸ）。
【００３２】
図６は、図５に示した起票時以外の流れを説明するための図である。まず、操作用コンピュータ端末２０の処理者である、例えば承認等を行う担当者から処理要求（図のＩ）を受けたワークフローエンジン４０は、ワークフロー定義３１を
参照し（図のＩＩ）、ワークフローインスタンスデータ３２からインスタンスデー
タを参照する（図のＩＩＩ）と共に、ユーザ情報３５から、ノードの処理者を決定するためのユーザ情報を参照する（図のＩＶ）。また、同一処理者連続時作業用デー
タ３４に集約データを保管する（図のＶ）。そして、ワークフローエンジン４０
は、操作用コンピュータ端末２０の処理者に帳票を送付する（図のＶＩ）。その後
、処理者から入力済み帳票が送付されると（図のＶＩＩ）、ワークフローエンジン４０は、同一処理者連続時作業用データ３４に入力データを保管し（図のＶＩＩＩ）、ワークフローインスタンスデータ３２の伝票データであるフィールドの値（データ）を更新する（図のＩＸ）。最後に、処理履歴３３に対して処理履歴の更新を行う
（図のＸ）。
【００３３】
次に、同一処理者が処理する連続する複数のノードでの処理を一回の操作で行う方法について説明する。本実施の形態のワークフローエンジン４０は、同一処理者が連続する場合に、その最初のノードに帳票が送付された時点で、それぞれのノードで参照や変更ができるフィールドと可能な処理の和集合をとり、操作用コンピュータ端末２０の処理者にまとめて渡している。後述するように、フィールドへのアクセス権（参照可／不可、変更可／不可、入力必須）については、それぞれのフィールドへのアクセス権の中で最大の権限を与えている。
【００３４】
まず、ワークフローエンジンの前処理について説明する。ここでは、連続するノードの定義として、ワークフロー定義管理プログラム４１によって実行され、前処理の結果は、ワークフロー定義３１に格納される。
図７（ａ）〜（ｃ）は、ノードの順位の定義およびノードの進む方向を説明するための図である。図７（ａ）に示すように、ワークフローＷ内で、ノードＮＳからノードＮＥ（ＮＳとＮＥとは異なるノード）までが連続し、経路の順方向がノードＮＳからノードＮＥの方向とするとき、その経路を（ＮＳ，　ＮＥ）と表す。また、経路（ＮＳ，ＮＥ）内の任意のノードをＮとしたとき、ノードの順位を以下のように定義する。
ＮＳ＜ＮＥ
ＮＳ＜Ｎ＜ＮＥ　（ＮがＮＳ，ＮＥのどちらとも一致しない場合）
ＮＳ＝Ｎ　　　　（ＮがＮＳと同一ノードの場合）
ＮＥ＝Ｎ　　　　（ＮがＮＥと同一ノードの場合）
【００３５】
図７（ｂ）に示すように、経路（ＮＳ，　ＮＥ）内に含まれる全てのノードの集合をＳＮＳ，Ｅとすると、このＳＮＳ，Ｅは、以下のように表される。
ＳＮＳ，Ｅ＝［ＮＳ，　Ｎ１，　ＮＪ，　ＮＫ，　ＮＥ］
【００３６】
また、図７（ｃ），（ｄ）に示すように、ノードＮで処理Ｅを行った場合に、処理Ｅの結果フローの進む方向が経路の順方向と一致するとき、即ち、ノードＮからＮ＜ＭなるノードＭへ進むとき）に１を、逆方向のとき（ノードＮからＮ＞ＭなるノードＭへ進むとき）に−１を返す関数Ｄｉｒを定義する。この図７（ｃ）では、ワークフロー定義のフロー方向と処理Ｅの結果フローが進む方向とが順方向であり、
Ｄｉｒ（Ｅ）　＝　１
となる。一方、図７（ｄ）では、ワークフロー定義のフロー方向と処理Ｅの結果フローが進む方向とが逆方向であり、
Ｄｉｒ（Ｅ）　＝　−１
となる。
【００３７】
ここで、処理者Ｕが、あるノードで行う処理が処理Ｅと決まったとき、別のノードＮＭにおいて処理Ｅが選択肢にない場合に、ＵがＥの代わりに選択する代替処理がＦに決まるときには、
Ａｌｔ（Ｅ，　ＮＭ）＝Ｆ
と表わす。例えば、処理者が「起票」という処理を行った場合、他のノードでは必ず「承認」を選択する場合などが挙げられる。また、ノードＮＭにおいてＥの代わりに処理が一意に決まらず、ＮＭにおいてＵが改めて判断を行う必要がある場合に、
Ａｌｔ（Ｅ，　ＮＭ）＝０
と表わす。このようにして関数Ａｌｔが定義される。更に、ノードＮＭにおいて処理Ｅが選択可能な場合には、
Ａｌｔ（Ｅ，　ＮＭ）＝Ｅ
とされる。但し、
Ｄｉｒ（Ｅ）＝Ｄｉｒ（Ｆ）≠０
とする。この関数Ａｌｔは、それぞれのワークフローの属性として定義され、ワークフローの定義内に記録されるものとする。
【００３８】
ここで、属する全てのノードの処理者が同一処理者Ｕである経路（ＮＳ，　ＮＥ）があり、後述する条件（１）〜（３）のうち一つを経路（ＮＳ，　ＮＥ）が満たす場合を考える。このとき、ワークフローエンジン４０は、最初のノード（条件（１），（２）の場合はＮＳ、条件（３）の場合はＮＥ）において、Ｕに対して経路（ＮＳ，　ＮＥ）で処理に必要な情報を集約して提供することにより、Ｕの処理を一度で済むようにする。
【００３９】
図８（ａ）〜（ｃ）は、条件（１）〜（３）の経路（ＮＳ，　ＮＥ）を説明するための図である。まず、条件（１）では、図８（ａ）に示すように、ワークフローＷがＮＳから始まりＮＳでＵが行う処理をＥＳ（Ｄｉｒ（ＥＳ）＝１）としたときに、経路（ＮＳ，　ＮＥ）内の全てのノードＮでＥＳの代替処理が存在する。即ち、Ａｌｔ（ＥＳ，　Ｎ）＝Ｅ≠０なる処理が存在する。
【００４０】
次に、条件（２）では、図８（ｂ）に示すように、経路（ＮＳ，　ＮＥ）の外部のノードＮＯから処理ＥＯ（Ｄｉｒ（ＥＯ）＝１）によってフローがＮＳより経路（ＮＳ，　ＮＥ）に入り、ＮＳでＵが行う処理をＥＳ（Ｄｉｒ（ＥＳ）＝１）としたときに、経路（ＮＳ，　ＮＥ）内の全てのノードＮでＥＳの代替処理が存在する。即ち、Ａｌｔ（ＥＳ，　Ｎ）＝Ｅ≠０なる処理が存在する。
【００４１】
次に、条件（３）では、図８（ｃ）に示すように、経路（ＮＳ，　ＮＥ）の外部のノードＮＯから処理ＥＯ（Ｄｉｒ（ＥＯ）＝−１）によってフローがＮＥより経路（ＮＳ，　ＮＥ）に入り、ＮＥでＵが行う処理をＥＥ（Ｄｉｒ（ＥＳ）＝−１）としたときに、経路（ＮＳ，　ＮＥ）内の全てのノードＮでＥＥの代替処理が存在する。
【００４２】
図９（ａ）〜（ｃ）は、上述した条件（１）〜（３）の補足説明をするための図である。
図９（ａ），（ｂ）は、最初のノードで選択可能な処理が複数あり、その中の２つ以上の処理に対してこの条件（１）〜（３）を満たす経路が存在する場合について、Ｕに対して提供する情報の範囲を決定する方法を説明している。まず、それぞれの処理に対して決まる経路がその中の一つに他の全てが包含されるような場合には、その他を包含する経路を範囲としてＵに提供する。図９（ａ）の例では、経路１は経路２に包含されることから、経路２の範囲が処理者に提供される。また、それぞれの処理に対して決まる経路が包含関係にない場合は、全ての経路の共通部分を範囲としてＵに提供する。例えば、経路１は「ログを取って承認する」場合であり、経路２は「ログを取らないで承認する」場合等がある。図９（ｂ）に示す例では、経路１と経路２とが条件分岐であり、その共通部分を範囲としてＵに提供する。
【００４３】
ここで、条件付きの経路で、その条件が最初のノードに入ってきた段階で真偽が確定しない場合は、その経路の前のノードまでの経路を対象とする。
更に、無条件分岐あるいは条件付経路でその条件が最初のノードに入ってきた段階で真偽が確定し、経路内でその真偽が変化しない場合には、それ以降のノードも条件を満たす限り経路に含める。例えば、図９（ｃ）では、Ｎ０，Ｎ１，Ｎ２，Ｎ３，Ｎ４の処理者は同一の処理者Ｕとする。また、Ｎ０→Ｎ１およびＮ０→Ｎ３の経路は、例えばカーボンコピーで流れるのと同様に、必ず両方に流れるものであり、条件無し経路とする。このとき、ＵにはＮ０，Ｎ１，Ｎ２，Ｎ３，Ｎ４に関する情報を集約したものを提供する。
【００４４】
次に、集約する情報について説明する。ワークフローエンジン４０は、同一処理者Ｕに対して提供される情報を定義し、Ｕに送付する前に伝票定義の情報を元に情報の集約を行う。
まず、フィールドについての定義では、同一処理者Ｕが帳票に対する判断をするに際し、その元となる情報は、帳票上に定義されたフィールドに保持されているものとする。ここでフィールドとは、ユーザの入力を保持し、表示のときには、その内容を画面上に表示するためのデータベース上の区分けである。例えば、ワークフローで流れる帳票を例に挙げると、氏名や人事情報、人事評価等を入れる桝目が該当する。例えば、人事記録を例に挙げれば、フィールドの値である起票者の情報として、起票者の氏名、起票者の人事評価等が該当する。例えば、起票者は所定のフィールドＦ２に入力したが、課長ノードでは表示させたくないといったような場合や、起票者の氏名は表示するが各ノードで変更はさせたくない、人事評価について役職によっては個人の情報を見せたくない、といった場合がある。本実施の形態では、これらの場合に対応して各種情報をフィールドによって区分けし、各ノードにて、フィールド毎にアクセス権限を定義することができる。
【００４５】
ここで、帳票上に定義されたフィールドをＦ１，Ｆ２…Ｆｎとし、フィールドＦに対してノードＮＸにおけるＵのアクセス権限をＡＲ（Ｆ，　ＮＸ）とする。Ｕに対して提供される集約された情報として、フィールドＦｍ（ｍ＝１，…，ｎ）のアクセス権は、ＮＳ≦Ｎ≦ＮＥを満たすＮに対してＡＲ（Ｆｍ，　Ｎ）の最大値とする。即ち、各フィールドに対して、各ノードにおけるアクセス権限の中で値が一番大きくなるものをＵに提供するフィールドのアクセス権限とする。このように情報へのアクセス権限を設定しても、本来、同一処理者が処理するノードでの権限を元にしたものであるから、セキュリティ上問題となることはない。
【００４６】
ここで、例えば、以下のようにアクセス権限が定義されているものとする。
１．参照不可：そのノードではフィールドの値を参照できない。
２．参照可能：そのノードではフィールドの値を参照できるが、値の変更はできない。
３．変更可能：そのノードではフィールドの値を参照でき、かつ、値の入力および変更ができる。
４．入力必須：参照可能と同じ権限を持ち、かつ、そのノードから他のノードへ帳票が送られるときに、フィールドには値が入力されていることが必要である。
このときの権限の強さは、
参照不可＜参照可能＜変更可能＜入力必須
とする。例えば、所定のフィールドについて、アクセス権限として「１．参照不可」が定義されたノードでは、そのノードに該当する操作用コンピュータ端末２０に、このフィールドの値が表示されない。また、例えば、所定のフィールドについて、「２．参照可能」がアクセス権限として定義されているノードでは、そのノードに該当する操作用コンピュータ端末２０に、このフィールドの値が表示されるものの、値の変更等は禁止される。例えば人事記録では、起票者の氏名にあたるフィールドについて、このように定義する例が挙げられる。このように、アクセス権限が定義され、権限の強さを定義することで、連続するノード内で、全てのノードで参照不可の情報は参照不可に、最大のアクセス権が参照可能である情報は参照可能に、最大のアクセス権が入力可能である情報は入力可能に、また、最大のアクセス権が入力必須である情報は入力必須にすることができる。
【００４７】
図１０（ａ），（ｂ）は、フィールドのアクセス権を説明するための図である。ここでは、例えば、図１０（ａ）に示すような係長ノードと課長ノードの処理者が同一処理者Ｕとなり、それぞれのノードでのフィールドのアクセス権が図１０（ｂ）に示すように定義されているものとする。これらの定義は、ワークフロー定義３１に格納されている。図１０（ｂ）に示すフィールドＦ１については、同一処理者Ｕに提供するアクセス権は、係長ノードでのアクセス権「参照可能」となる。同一処理者Ｕに提供するフィールドＦ２のアクセス権については、課長ノードでのアクセス権「参照可能」となる。フィールドＦ３については、係長ノードおよび課長ノードの何れにも処理すべき帳票とされているが、係長ノードでは「参照可能」の権限であり、課長ノードでは「変更可能」の権限である。従って、同一処理者Ｕに提供される集約情報としては、権限の大きい「変更可能」がフィールドＦ３のアクセス権限として同一処理者Ｕに提供される。また、フィールドＦ４については、権限の大きい「入力必須」がアクセス権限として同一処理者Ｕに提供される。
【００４８】
次に、集約する情報の処理については、経路（ＮＳ，　ＮＥ）内の全てのノード名とそのノードで適用可能な処理における集合のテーブルが生成され、そのテーブルの情報が同一処理者Ｕに提供される。この情報を元に、後述するユーザインタフェースによって同一処理者Ｕは処理を決定する。図１１は、同一処理者Ｕが処理するノードの処理テーブル例を示した図である。ここでは、可能な処理として、起票、差し戻しであるノードＡと、可能な処理として承認、差し戻しであるノードＢとを同一処理者Ｕが処理する場合の処理テーブルが示されている。
【００４９】
次に、同一処理者Ｕの処理について説明する。同一処理者Ｕは、送付された情報を元に、情報の参照・入力を行い、最後に処理の選択を行う。この処理の選択については、図１２（ａ），（ｂ）に示す２つのユーザインタフェースが提供される。どちらのユーザインタフェースを使用するかは、帳票の定義時に指定するかあるいは実行時にユーザが選択できるものとする。
【００５０】
図１２（ａ）は、「ノード毎に処理を選択」する場合のユーザインタフェースの例を示している。ここでは、ワークフローエンジン４０から送られた処理テーブルを元に、同一処理者Ｕであるユーザは各ノードで選択する処理を一つずつ選択し、全て選択した後にワークフローエンジン４０へ送付する操作を行っている。図１２（ａ）に示す例では、ノードＡについては、ラジオボタンによって「起票」と「差戻し」とのどちらか一方が選択され、また、ノードＢについては、ラジオボタンによって「承認」と「差戻し」とのどちらか一方が選択される。図１２（ｂ）は、「処理を一つだけ選択」する場合のユーザインタフェースの例を示している。ここでは、経路内の最初のノードで選択可能な処理を表示し、同一処理者Ｕであるユーザは、その中から一つを選ぶことによって、処理を選択し、ワークフローエンジン４０に送付している。
【００５１】
次に、ワークフローエンジン４０の後処理について説明する。同一処理者Ｕの処理結果を送付した後、ワークフローエンジン４０は、「各ノードでの処理の決定」、および「各フィールドの値の変更」を行う。まず、「各ノードでの処理の決定」では、前述の同一処理者Ｕの処理にて、図１２（ａ）に示した「ノード毎に処理を選択」の方法で処理が選択された場合、以下の規則に従って各ノードでの処理が決定される。この規則では、同一処理者Ｕが最初のノードＮＳで選択した処理をＥＳとしたとき、
・ノードＭでの処理ＥがＡｌｔ（ＥＳ，Ｍ）＝Ｅを満たすときは、ノードＭでの処理をＥとし、フローを進める。
・ノードＭでの処理ＥがＡｌｔ（ＥＳ，Ｍ）＝Ｅを満たさないときは、その処理をワークフローエンジン４０が評価して、次のノードに伝票が移動した時点でフローを停止し、あらためてそのノードで同一処理者Ｕが処理を行うように帳票をＵに送付する。
【００５２】
図１２（ｂ）で示した「処理を一つだけ選択」の方法で処理が選択された場合、以下の規則に従って各ノードの処理を決定していく。この規則では、同一処理者Ｕが選択した処理をＥとしたとき、
・選択された処理がノードＭ上で選択可能な場合は、その処理が選択されたものとする。
・選択された処理がノードＭ上で選択可能でない場合に、その代替処理が定義されている場合（即ち、Ａｌｔ（Ｅ，Ｍ）≠０の場合）は、その代替処理Ａｌｔ（Ｅ，Ｍ）が選択されたものとする。代替処理が定義されていない場合には、フローを停止し、あらためてそのノードＭで同一処理者Ｕが処理を行うように帳票を同一処理者Ｕに送付する。
【００５３】
次に、「各フィールドの値の変更」では、前述したワークフローエンジン４０の前処理で説明したように、フィールドのアクセス権限として経路（ＮＳ，ＮＥ）内で最大のものが与えられている。そのために、「各ノードでの処理の決定」の規則に従って各ノードでの処理を決定し、フローを進めていくときに、そのノードでのフィールドのアクセス権限に反する値の変更が行われている場合がある。例えば、図１０（ｂ）に示す例のようなアクセス権限が設定されている場合に、フィールドＦ３は同一処理者Ｕによって値が変更されている可能性があるが、ワークフローエンジン４０が係長ノードでの処理を評価する場合に、参照可能（値の変更は不可）というアクセス権限に反することとなる。かかる場合、ワークフローエンジン４０は、帳票上のＦ３の値は変更せずに、フローを課長ノードに進める。但し、Ｆ３に対するユーザの入力値は保持し、次の課長ノードでその値をＦ３に対して反映している。これによって、そのノードでのフィールドのアクセス権限に反する値の変更が行われることを防ぐことができる。
【００５４】
以上、本実施の形態について詳述してきたが、これらの処理について、図１３〜図１８のフローチャートを用いて説明する。
図１３〜図１６は、情報を集約する範囲の決定方法および情報の集約方法を説明するための図である。図１３に示すように、ワークフローエンジン４０は、まず、操作用コンピュータ端末２０を操作する処理者からの処理要求を受信し（ステップ１０１）、ワークフロー定義３１の集約フラグの値が１であるか否かの判断がなされる（ステップ１０２）。即ち、処理者が連続する場合に、まとめて処理を行うか、従来のように一つずつ処理を行うのかを判断する。まとめて処理を行う場合には、集約フラグの値を１としている。このステップ１０２で、集約フラグの値が１でない場合には、▲１▼の処理、即ち、一般的な処理と同様に、処理者が連続する場合でも一つ一つ順番に処理を行うために、図１５に示すステップ３０５へ移行する。集約フラグの値が１である場合には、集約処理に移行する。
【００５５】
集約処理では、まず、処理要求が起票処理か否かが判断される（ステップ１０３）。起票処理でない場合には、図１４に示す▲２▼の処理に移行する。起票処理である場合には、ワークフロー定義３１から起票ノードを取得し（ステップ１０４）、カレントノードＮを起票ノードとして（ステップ１０５）、注目しているノードとする。そして、ノードＮで選択可能な処理の集合Ｅｉ（ｉ＝１…ｎ）を取得する（ステップ１０６）。この集合Ｅｉの各要素に対して、対応する情報を集約する範囲である経路Ｒｉを求める。まず、集合Ｅｉにおける初期値としてｉ＝１とし（ステップ１０７）、ｉ≦ｎであるか否かが判断される（ステップ１０８）。ｉ≦ｎでない場合（ｉがｎを超えた場合）には、▲３▼の処理、即ち、情報の集約処理として図１５に示すステップ３０１へ移行する。ｉ≦ｎである場合には、経路ＲｉにＮを加え（ステップ１０９）、集約範囲の決定がなされる。そして、同一処理者Ｕが処理する連続する次のノードの存在を調べるためのＣｈｅｃｋＮｅｘｔＮｏｄｅ（Ｎ，Ｅｉ）のサブルーチンに移行する（ステップ１１０）。この処理については、図１６に示されている。この処理の後、ｉ＝ｉ＋１として１を加算して（ステップ１１１）、ステップ１０８へ戻り、ｉがｎを超えるまで、ステップ１０９〜ステップ１１１の処理が繰り返される。
【００５６】
図１４は、図１３に示すステップ１０３で処理要求が起票処理でないときの処理を示したフローチャートである。ワークフローエンジン４０では、まず、ワークフローインスタンスデータ３２のテーブルから現在のノードが取得される（ステップ２０１）。ここで、現在のノードをＮとし（ステップ２０２）、ノードＮで選択可能な処理Ｅｉ（ｉ＝１…ｎ）を取得する（ステップ２０３）。ここで、Ｅｉは、ノードＮにフローが移動する原因となった処理をＥｏとしたとき、Ｄｉｒ（Ｅｏ）＝Ｄｉｒ（Ｅｉ）を満たすものとする。ここで、関数Ｄｉｒは、図７（ｃ）にて説明したように、フロー方向を定義した関数である。ここで、処理Ｅｉの集合を取得するにあたり、ｉ＝１とし（ステップ２０４）、ｉ≦ｎであるか否かが判断される（ステップ２０５）。ｉ≦ｎでない場合（ｉがｎを超えた場合）には、▲３▼の処理、即ち、情報の集約処理として、図１５に示すステップ３０１へ移行する。ｉ≦ｎである場合には、経路ＲｉにＮを加え（ステップ２０６）、ステップ２０７に示すＣｈｅｃｋＮｅｘｔＮｏｄｅ（Ｎ，　Ｅｉ）のサブルーチンに移行する。この処理は、図１６に示されている。この処理の後、ｉ＝ｉ＋１として１を加算して（ステップ２０８）、ステップ２０５へ戻り、ｉがｎを超えるまで、ステップ２０６〜ステップ２０８の処理が繰り返される。
【００５７】
図１５は、情報の集約処理である▲３▼の処理を示したフローチャートである。図１３に示すステップ１０８、および図１４に示すステップ２０５にて、ｉ≦ｎでない場合（ｉがｎを超えた場合）に実行される。まず、Ｒｉ（ｉ＝１…ｎ）の中にある経路Ｒｋが他の全ての経路を包含するか否かが判断される（ステップ３０１）。具体的には、図９（ａ）に示すように、例えば経路１が経路２に包含される場合がある。包含される場合には、経路Ｒｋを集約範囲として（ステップ３０２）、ステップ３０６へ移行する。ステップ３０１で包含されない場合には、全てのＲｉについて開始ノードを含む共通の範囲（開始ノードのみの場合を除く）が存在するか否かが判断される（ステップ３０３）。具体的には、図９（ｂ）に示すように、途中で経路１と経路２とで条件分岐される場合に共通部分が存在するか否かが判断される。共通の範囲が存在する場合には、この共通の範囲を集約範囲として（ステップ３０４）、ステップ３０６へ移行する。ステップ３０３で、共通の範囲が存在しない場合には、開始ノード以外に共通部分がないものとして、一つ一つ処理を進めていく。即ち、ワークフロー定義３１よりカレントノード（起票の場合は起票ノード）用のレイアウト定義を取得し（ステップ３０５）、ワークフローインスタンスデータ３２のテーブルより、フィールド値を取得して、レイアウト定義およびフィールドのアクセス権に基づき、帳票をフォーマットする（ステップ３０９）。その後、同一処理者Ｕに帳票を送付して（ステップ３１０）、処理が終了する。尚、ステップ３０５からの処理は、一つ一つ進む通常の処理であることから、集約処理が行われない場合、即ち図１３に示すステップ１０２で、ワークフロー定義の集約フラグが１でない場合にも実行される（▲１▼の処理）。
【００５８】
ステップ３０２およびステップ３０４を経た後、ワークフローエンジン４０は、集約処理として、ワークフロー定義３１より各フィールドに対して集約範囲内での最大のアクセス権を求め、同一処理者連続時作業用データ３４のテーブルに記録する（ステップ３０６）。また、ワークフロー定義３１より集約範囲内の各ノード毎の選択可能な処理を取得し、同一処理者連続時作業用データ３４のテーブルに記録する（ステップ３０７）。そして、ワークフロー定義３１より同一処理者連続時の帳票レイアウト定義を取得する（ステップ３０８）。その後、前述したように、ワークフローインスタンスデータ３２のテーブルより、フィールド値を取得して、帳票レイアウト定義およびフィールドのアクセス権に基づき、帳票をフォーマットする（ステップ３０９）。その後、操作用コンピュータ端末２０の処理者に帳票を送付して（ステップ３１０）、処理が終了する。
【００５９】
図１６は、図１３に示すステップ１１０、図１４に示すステップ２０７に示すＣｈｅｃｋＮｅｘｔＮｏｄｅ（Ｎ，　Ｅ）の処理を示したフローチャートである。ＣｈｅｃｋＮｅｘｔＮｏｄｅ（Ｎ，　Ｅ）の開始として（ステップ４００）、まず、Ｎで処理Ｅを行うことによりフローが進むノードＮｊ（ｊ＝１…ｍ）が求められる（ステップ４０１）。ここで、まず、ｊ＝１が導入された後（ステップ４０２）、ｊがｍを超えるまで所定の処理が実行される。即ち、ｊ≦ｍか否かが判断され（ステップ４０３）、ｊ≦ｍでないときは、前の処理に戻ってサブルーチンから出る（ステップ４０４）。ｊ≦ｍのときは、ノードＮｊでの処理者が同一処理者Ｕで、かつＡｌｔ（Ｅ，　Ｎｊ）＝Ｆ≠０なる処理Ｆが存在するか否かが判断される（ステップ４０５）。存在しない場合には、ステップ４０８へ移行する。存在する場合には、経路ＲｉにＮｊを加え、ステップ４００から開始するサブルーチンであるＣｈｅｃｋＮｅｘｔＮｏｄｅ（Ｎｊ，　Ｅ）の処理を実行し、再帰的に同一処理者Ｕが処理する連続する次のノードの存在が調べられる（ステップ４０７）。そのサブルーチンの後、ｊに１を加算し（ｊ＝ｊ＋１）（ステップ４０８）、ステップ４０３へ移行する。以上のようにして、図１６に示す処理では、同一処理がなくなるまでノードの存在が調べられる。
【００６０】
以上、説明したように、図１３〜図１６に示す情報を集約する範囲の決定方法および情報の集約方法の処理では、選択可能な処理の集合Ｅｉ（ｉ＝１，．．，ｎ）の要素それぞれに対して、図８（ａ）〜（ｃ）を用いて説明された条件（１）〜（３）のどれかを満たす経路Ｒｉを求めることと言える。
【００６１】
例えば、図１９に示すように定義されたワークフローを考える。ここでは、Ｎ０からＮ５までの処理者が同一で、Ｍ０とＭ１の処理者はその処理者とは異なるものとし、以下のような処理が行われる。
・Ｎ０で選択可能な処理をＥ１，Ｅ２とし、どちらを選んでもフローはＮ１に進む。
・Ｎ１で選択可能な処理をＦ１，Ｆ２とし、どちらを選んでもフローはＮ２およびＮ４の両方に進む。また、Ａｌｔ（Ｅ１，　Ｎ１）＝Ｆ１、Ａｌｔ（Ｅ２，　Ｎ１）＝Ｆ２、即ち、Ｎ１におけるＥ１の代替処理をＦ１とし、Ｅ２の代替処理をＦ２とする。
・Ｎ２で選択可能な処理をＦ１とし、Ｆ１を選ぶことによりフローはＮ３に進む。また、Ａｌｔ（Ｅ１，　Ｎ２）＝Ｆ１、即ち、Ｎ２におけるＥ１の代替処理をＦ１とし、Ａｌｔ（Ｅ２，　Ｎ２）＝０、即ち、Ｎ２におけるＥ２の代替処理は無いものとする。
・Ｎ３で選択可能な処理をＦ１とし、Ｆ１を選ぶことによりフローはＭ０に進む。Ａｌｔ（Ｅ１，　Ｎ３）＝Ｆ１、即ち、Ｎ３におけるＥ１の代替処理をＦ１とし、Ａｌｔ（Ｅ２，　Ｎ３）＝０、即ち、Ｎ３におけるＥ２の代替処理は無いものとする。
・Ｎ４で選択可能な処理をＦ２とし、Ｆ２を選ぶことによりフローはＮ５に進む。また、Ａｌｔ（Ｅ２，　Ｎ４）＝Ｆ２、即ち、Ｎ４におけるＥ２の代替処理をＦ２とし、Ａｌｔ（Ｅ１，　Ｎ４）＝０、即ち、Ｎ４におけるＥ１の代替処理は無いものとする。
・Ｎ５で選択可能な処理をＦ２とし、Ｆ２を選ぶことによりフローはＭ１に進む。Ａｌｔ（Ｅ２，　Ｎ５）＝Ｆ２、即ち、Ｎ５におけるＥ２の代替処理をＦ２とし、Ａｌｔ（Ｅ１，　Ｎ５）＝０、即ち、Ｎ５におけるＥ１の代替処理は無いものとする。
以上のワークフローで、処理者がＮ０でＥ１を選んだ場合には、経路Ｒ１は｛Ｎ０，Ｎ１，Ｎ２，Ｎ３｝となり、Ｎ０でＥ２を選んだ場合には、経路Ｒ２は｛Ｎ０，Ｎ１，Ｎ４，Ｎ５｝となる。
【００６２】
図１７は、ワークフローエンジン４０の後処理を示したフローチャートであり、ノード毎に処理を選択した場合の処理を示している。まず、ワークフローエンジン４０は、操作用コンピュータ端末２０におけるユーザが処理した帳票を受信する（ステップ５０１）。次に、操作用コンピュータ端末２０からユーザが入力したフィールドの値および選択した処理を同一処理者連続時作業用データ３４のテーブルに保管する（ステップ５０２）。このとき、最初のノードをカレントノードとする（ステップ５０３）。ワークフローエンジン４０は、同一処理者連続時作業用データ３４のテーブルよりユーザの入力および選択した処理を取得し、ワークフローインスタンスデータ３２のテーブルおよび処理履歴３３のテーブルを更新する（ステップ５０４）。
【００６３】
次に、ワークフローエンジン４０では、操作用コンピュータ端末２０のユーザがカレントノードの処理として選択した処理を評価し、フローが進む次のノードを決定し、そのノードをカレントノードとする（ステップ５０５）。そして、選択した処理が最初ノードで選択した処理の代替処理か否かが判断される（ステップ５０６）。代替処理でない場合には、処理が終了する。代替処理である場合には、集約範囲の全てのノードについて処理を行ったか否かが判断され（ステップ５０７）、全てのノードについて処理を行っていない場合には、ステップ５０４に戻り、全ての処理を行った後には、後処理が終了する。
【００６４】
図１８は、ワークフローエンジン４０の後処理を示したフローチャートであり、一つだけ処理を選択した場合を示している。まず、ワークフローエンジン４０は、操作用コンピュータ端末２０におけるユーザが処理した帳票を受信する（ステップ６０１）。次に、操作用コンピュータ端末２０からユーザが入力したフィールドの値および選択した処理を同一処理者連続時作業用データ３４のテーブルに保管する（ステップ６０２）。このとき、最初のノードをカレントノードとする（ステップ６０３）。ワークフローエンジン４０は、同一処理者連続時作業用データ３４のテーブルよりユーザの入力および選択した処理を取得し、カレントノードでの代替処理を求める（ステップ６０４）。
【００６５】
ここで、ワークフローエンジン４０では、代替処理が存在するか否かが判断される（ステップ６０５）。代替処理が存在しない場合には、後処理は終了する。代替処理が存在する場合には、同一処理者連続時作業用データ３４のテーブルよりユーザの入力を取得し、ワークフローインスタンスデータ３２のテーブルおよび処理履歴３３のテーブルを更新する（ステップ６０６）。その後、代替処理を評価し、フローが進む次のノードを決定し、そのノードをカレントノードとする（ステップ６０７）。そして、集約範囲の全てのノードについて処理を行ったか否かが判断され（ステップ６０８）、全てのノードについて処理を行っていない場合には、ステップ６０４に戻り、全ての処理を行った後には、後処理が終了する。
【００６６】
このように、本実施の形態では、まず、同一処理者Ｕが処理するノードが連続する場合、帳票がその先頭ノードに到達したときに、ワークフローエンジン４０が連続するノード上における処理者の判断に必要な情報を集約し、その集約された情報を同一処理者Ｕの操作用コンピュータ端末２０に送付している。この情報を送付された操作用コンピュータ端末２０の同一処理者Ｕは、その情報を元に意思決定を行い、処理結果をワークフローエンジン４０に送付する。この送付を受けたワークフローエンジン４０は、同一処理者Ｕから送られた情報を元に、各ノードにおける必要な処理を行い、ワークフローを進めるように構成されている。
【００６７】
かかる構成によれば、ワークフローシステムにおいて、上位の役職を兼任している処理者がいる場合などに、同一処理者Ｕが同じ帳票に対して続けて承認などの処理を行う際、ワークフローエンジン４０側で連続するノードにおける処理に必要な情報をまとめて処理者に対して提供することにより、同一処理者Ｕの処理を一回で済ませることが可能となる。即ち、同一処理者Ｕのノードが連続し、その先頭ノードにおける処理がそれ以降のノードでも適用可能な場合に、本実施の形態によれば、必要な全ての情報を同一処理者Ｕに提供し、また、連続するノード内で入力が可能な情報は全て入力可能にすることによって、例えばそれぞれのノードでの情報へのアクセス権限が異なる場合でも、意思決定に必要な情報を参照することが可能となり、また、必要な情報を入手できることで途中のノードで発生するエラーを抑制することが可能となる。
【００６８】
【発明の効果】
以上説明したように、本発明によれば、ワークフローシステムにおいて、同一処理者によって従来は複数回行われていた処理を例えば１回で済ませることが可能となる。
【図面の簡単な説明】
【図１】本実施の形態が適用されたワークフローシステムの概略構成を示す図である。
【図２】ワークフローサーバの構成を示した図である。
【図３】（ａ），（ｂ）は、各種テーブルに格納される情報を説明するための図である。
【図４】（ａ），（ｂ），（ｃ）は、各種テーブルに格納される情報を説明するための図である。
【図５】起票時の流れを説明するための図である。
【図６】図５に示した起票時以外の流れを説明するための図である。
【図７】（ａ）〜（ｃ）は、ノードの順位の定義およびノードの進む方向を説明するための図である。
【図８】（ａ）〜（ｃ）は、条件（１）〜（３）の経路（ＮＳ，　ＮＥ）を説明するための図である。
【図９】（ａ）〜（ｃ）は、条件（１）〜（３）の補足説明をするための図である。
【図１０】（ａ），（ｂ）は、フィールドのアクセス権を説明するための図である。
【図１１】同一処理者が処理するノードの処理テーブル例を示した図である。
【図１２】（ａ），（ｂ）は、ユーザインタフェースの例を示した図である。
【図１３】情報を集約する範囲の決定方法および情報の集約方法を説明するための図である。
【図１４】情報を集約する範囲の決定方法および情報の集約方法を説明するための図である。
【図１５】情報を集約する範囲の決定方法および情報の集約方法を説明するための図である。
【図１６】情報を集約する範囲の決定方法および情報の集約方法を説明するための図である。
【図１７】ワークフローエンジンの後処理を示したフローチャートである。
【図１８】ワークフローエンジンの後処理を示したフローチャートである。
【図１９】情報を集約する範囲の決定方法および情報の集約方法の処理を説明するためのワークフローの定義例を示した図である。
【符号の説明】
１０…設計用コンピュータ端末、２０…操作用コンピュータ端末、３０…ワークフローサーバ、３１…ワークフロー定義、３２…ワークフローインスタンスデータ、３３…処理履歴、３４…同一処理者連続時作業用データ、３５…ユーザ情報、４１…ワークフロー定義管理プログラム、４２…ワークフロー処理実行プログラム、４３…ワークフローインスタンス管理プログラム、４４…クライアント要求処理プログラム、４５…ユーザ管理プログラム
【図１】
2004062438.tif 000003
【図２】
2004062438.tif 000004
【図３】
2004062438.tif 000005
【図４】
2004062438.tif 000006
【図５】
2004062438.tif 000007
【図６】
2004062438.tif 000008
【図７】
2004062438.tif 000009
【図８】
2004062438.tif 000010
【図９】
2004062438.tif 000011
【図１０】
2004062438.tif 000012
【図１１】
2004062438.tif 000013
【図１２】
2004062438.tif 000014
【図１３】
2004062438.tif 000015
【図１４】
2004062438.tif 000016
【図１５】
2004062438.tif 000017
【図１６】
2004062438.tif 000018
【図１７】
2004062438.tif 000019
【図１８】
2004062438.tif 000020
【図１９】
2004062438.tif 000021