(57)【要約】【課題】ある一つのステップで一部の作業は完了しているが、すべての作業は完了していない場合に、実行中のワークフローを停止することなく、その一部の作業について次のステップに進めることができるようにする。【解決手段】分割指示を検知したときに作業が行われている現作業工程と、その後工程である次作業工程との間に、現作業工程と同じ作業内容であると共に、担当者を現作業工程と同一の担当者とした第１の追加作業工程を挿入すると共に、次作業工程と同じ作業内容であると共に、担当者を任意の担当者とした第２の追加作業工程を挿入するようにして、ワークフローを再定義する。処理すべき情報への参照ポインターを登録した論理的なフォルダーを、第１の追加作業工程に渡すものと、第２の追加作業工程に渡すものとに分割する。【選択図】図6
2005092896.tif 000002
【特許請求の範囲】
【請求項１】
複数個の作業工程の順序と、各作業工程の処理内容と、各作業工程を実行する担当者との情報がメモリに格納されることにより定義されたワークフローについて、各作業工程の作業が終了して終了状態になったときに、次の作業工程の作業を開始させて、順次に作業を行なわせるように管理することにより、前記作業を支援するコンピュータを用いたワークフローシステムにおいて、
前記コンピュータは、
前記作業工程のそれぞれで処理すべき情報が格納されて前記ワークフローの流れに沿って回覧されるフォルダーと、
前記ワークフローの実行中に、前記作業工程についての分割指示が発生したか否かを検知する分割指示検知手段と、
前記分割指示検知手段で前記分割指示を検知したときに、当該分割指示を検知したときに作業が行われている現作業工程と、前記現作業工程の後工程である次作業工程との間に、前記現作業工程と同じ作業内容であると共に、前記担当者を前記現作業工程と同一の担当者とした第１の追加作業工程を挿入するように前記メモリの内容を修正すると共に、前記現作業工程と、前記次作業工程との間に、前記次作業工程と同じ作業内容であると共に、前記担当者を任意の担当者とした第２の追加作業工程を挿入するように、前記メモリの内容を修正して、前記ワークフローを再定義し、かつ、前記分割指示に付加されるフォルダー分割指定情報に基づき、前記フォルダーを、前記再定義したワークフローにおいても前記現作業工程の担当者が引き続き処理すべき情報を格納する第１のフォルダーと、前記再定義したワークフローにおいて前記第２の追加作業工程の担当者が処理すべき情報を格納する第２のフォルダーに分割し、前記第１のフォルダーを前記第１の追加作業工程に渡し、前記第２のフォルダーを第２の追加作業工程に渡すようにする作業分割手段と、
を備えることを特徴とするワークフローシステム。
【請求項２】
複数個の作業工程の順序と、各作業工程の処理内容と、各作業工程を実行する担当者との情報がメモリに格納されることにより定義されたワークフローについて、各作業工程の作業が終了して終了状態になったときに、次の作業工程の作業を開始させると共に、前記作業工程のそれぞれで処理すべき情報がフォルダーに格納されて前記ワークフローの流れに沿って回覧して、順次に作業を行なわせるように管理することにより、前記作業を支援するコンピュータを用いたワークフローシステムにおいて、
分割指示検知手段が、前記ワークフローの実行中に、前記作業工程についての分割指示が発生したか否かを検知し、
前記分割指示検知手段が前記分割指示を検知したときに、作業分割手段が、前記分割指示を検知したときに作業が行われている現作業工程と、前記現作業工程の後工程である次作業工程との間に、前記現作業工程と同じ作業内容であると共に、前記担当者を前記現作業工程と同一の担当者とした第１の追加作業工程を挿入するように前記メモリの内容を修正すると共に、前記現作業工程と、前記次作業工程との間に、前記次作業工程と同じ作業内容であると共に、前記担当者を任意の担当者とした第２の追加作業工程を挿入するように、前記メモリの内容を修正して、前記ワークフローを再定義し、かつ、前記分割指示に付加されるフォルダー分割指定情報に基づき、前記フォルダーを、前記再定義したワークフローにおいても前記現作業工程の担当者が引き続き処理すべき情報を格納する第１のフォルダーと、前記再定義したワークフローにおいて前記第２の追加作業工程の担当者が処理すべき情報を格納する第２のフォルダーに分割し、前記第１のフォルダーを前記第１の追加作業工程に渡し、前記第２のフォルダーを第２の追加作業工程に渡すようにする
ことを特徴とするワークフローシステムにおける作業分割方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報を媒介にして連携する複数の作業工程からなる作業の流れ（ワークフローと称する）について、複数の作業工程の順序と、各作業工程の処理内容を定め、各作業工程の間での情報の受け渡しなど、作業処理を支援するワークフローシステムに関する。
【背景技術】
【０００２】
従来から、業務処理の作業効率化を図るために、コンピュータによる、いわゆるオフィスオートメーション化が提案されている。しかし、従来は、業務処理における個々の作業処理自体についての自動化が行なわれているだけであった。つまり、作業間の連携の部分については、従来のオフィスオートメーションでは考慮されていなかった。
【０００３】
この作業間の連携部分を自動化して作業処理のトータルな効率化や迅速化を図ろうとするものとして、ワークフロー・オートメーションが提案されている。ワークフロー・オートメーションにおいては、作業対象となる情報を媒介にして連携する複数の作業工程の流れはワークフローと呼ばれ、このワークフローを自動化するための支援システムとしての情報処理システムはワークフローシステムと呼ばれる。ワークフローにおいては、ある作業工程の実行の結果得られた情報が別の作業工程の実行に必要な情報となって、複数の作業工程は連携する。
【０００４】
ワークフローシステムは、例えばネットワーク化された分散処理環境などの処理環境において、業務処理における複数の作業工程の担当者間の情報の受け渡しと、情報を受けてから次の作業工程に渡すまでの間に処理すべき作業などを、予め設計、定義することにより業務処理を自動化する情報処理システムである。
【０００５】
このワークフローシステムは、次のような処理機能で構成される。  
(1) 作業処理の流れ、各作業工程の作業内容や、各作業工程におけるルール（約束事）を定義するための編集機能
(2) 定義されたワークフロー（以下、定義されたワークフローをテンプレートという）を管理する機能
(3) 処理すべき情報が配達されたことを担当者に知らせる通知機能
(4) 配達された情報を管理するデータベース機能
(5) 設定された作業の流れ、ルールなどに従って情報を次の作業工程に渡すルーティング機能
(6) 作業の状況を管理するための進捗管理機能
(7) 実行中のワークフローの維持管理を行なうためのメンテナンス機能
(8) ワークフローのユーザを管理するユーザ管理機能。
【０００６】
このワークフローシステムの概要は、非特許文献１（日経ＢＰ社発行の雑誌「日経情報ストラテジー」  １９９３年８月号、マイケル・Ｄ・カーン、安田誠寄稿、「ワークフロー管理技術とその可能性」Ｐ１２３〜Ｐ１３０）に記載されている。
【０００７】
また、従来から、複数の様々な種類のデータを一つの論理的なフォルダーに挟み込み、このフォルダーにより一括して様々なデータを渡すようにすることが知られている。このフォルダーに関する一般的な記述は、非特許文献２（日経ＢＰ社発行の雑誌「日経コンピュータグラフィックス」  １９９２年１０月号、「設計環境に革命をもたらすＰＤＭ」Ｐ７０〜Ｐ８５）に記載されている。
【０００８】
このフォルダーの概念はワークフローに適用することが可能であり、その場合には、ワークフローシステムは、業務に関連する複数のドキュメント、例えば複数の文書、図面、データ等の情報（ファイル）への参照ポインターをフォルダーに登録し、それをあらかじめ定義した業務フローに沿って回覧することが可能とするシステムとなる。これは、従来、電子メールとファイリングシステムを用いて作業者の運用により実現されていたものを自動化するものである。
【０００９】
ワークフローシステムにより業務処理を自動化するためには、実行すべき業務処理をワークフローとしてあらかじめ定義しておく必要がある。ワークフローは、通常、作業の単位である作業工程（以下、作業工程をステップと呼ぶ）の１〜複数個からなり、このワークフローの定義項目には、複数のステップの順序、各ステップの処理内容および各ステップの担当者が含まれる。
【００１０】
図１９は、定義されたワークフローの一例で、そのワークフローの仕事の流れ（フロー）がグラフ構造によって表現されているものである。
【００１１】
図１９において、それぞれ四角で囲まれた各ノードは、作業の単位である作業工程つまりステップを表している。各アーク（矢印）は仕事の流れ（つながり、作業の順番や因果関係）を定義しており、あるステップの後ろにステップがあるということは、前のステップが完了しないと、後ろのステップは開始できないことを意味する。逆に、前のステップが完了すると、自動的に後ろのステップが開始するということを意味する。
【００１２】
図１９のワークフローは、「設計」「承認」という２つのステップからなる設計のワークフローであり、ユーザＡが「設計」のステップを担当し、ユーザＢが「承認」のステップを担当する。処理対象の情報としては、この例では、文書Ａと図面Ｂの２つのドキュメントがあり、これら文書Ａと、図面Ｂは、一つのフォルダーに登録されて、ワークフローに沿って回覧される。そして、この例の場合には、ユーザＡがステップ「設計」において、文書Ａと、図面Ｂの作成をし、これら文書Ａおよび図面Ｂの作成を完了すると、ステップ「承認」に移り、ユーザＢが、作成された文書Ａと図面Ｂについて検討し、承認を与える作業を行う。
【００１３】
ワークフローでは、各ステップでの実際の作業は人間が行なうが、以上のような作業の流れの管理は全てワークフローシステムが行なう。すなわち、ワークフローシステムは、定義されたワークフローを元に、各ステップの作業が終了すると、適宜、次のステップの作業を開始するようにして、作業全体の流れを管理する。なお、開始のステップと終了のステップは、ワークフローシステムがすべて管理するもので、特に定義する必要はない。
【００１４】
このワークフローシステムによる情報処理システムは、
・情報に対するアクセス権の管理ができる
・人が運用することによるミスを低減できる
・実行中の作業のステータス（状態）の管理ができる
などのメリットがある。
【００１５】
上記の先行技術文献は、次の通りである。
【非特許文献１】日経ＢＰ社発行の雑誌「日経情報ストラテジー」  １９９３年８月号、マイケル・Ｄ・カーン、安田誠寄稿、「ワークフロー管理技術とその可能性」Ｐ１２３〜Ｐ１３０
【非特許文献２】日経ＢＰ社発行の雑誌「日経コンピュータグラフィックス」  １９９２年１０月号、「設計環境に革命をもたらすＰＤＭ」Ｐ７０〜Ｐ８５
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ところで、ワークフローシステムでは、定義されたワークフローに拘束されるために、柔軟性を欠く場合がある。例えば、前述の図１９のワークフローにおいて、ステップ「設計」を担当するユーザＡが、文書Ａと図面Ｂを作成する場合に、図面Ｂは描き終えたが、文書Ａはまだ未完成である状態が生じる場合がある。このような場合、図面Ｂを先にステップ「承認」を担当するユーザＢに渡して、見てもらうようにしておけば、図１９のワークフローの業務全体の終了時間の短縮化が期待できる。
【００１７】
しかしながら、前述もしたように、ワークフローでは、「前のステップが完了すると、自動的に後ろのステップが開始する」というルールにしたがって業務の流れが管理されるので、図１９のように定義されたワークフローでは、ステップ「設計」で、文書Ａと図面Ｂの両方が完了しなければ、次のステップ「承認」に移行することができない。このため、上記のような状況が生じたとしても、フォルダーの一部の情報を先に流すようにすることができない。
【００１８】
そこで、従来のワークフローシステムにおいては、上述のような状況が生じることが予想されることを見込んで、文書Ａと図面Ｂとを別々のフォルダーに登録して、別々に回覧することができるように定義すると共に、図２０Ａおよび図２０Ｂに示すように、文書Ａを作成する設計のワークフローと、図面Ｂを作成する設計のワークフローとを別々に作成し、これら２つのワークフローを分けて、運用することが行われている。
【００１９】
しかし、この場合、文書Ａと図面Ｂとは、対で意味をなすものであるため、それらが別々のワークフローで処理されるのは、担当するユーザにとって分かりにくくなると共に、業務スケジュールの管理上も混乱が生じるおそれがある。
【００２０】
そこで、ワークフロー実行中に、ワークフローの定義を修正するという考えが従来もあるが、その場合には、実行中のワークフローを一旦停止する必要があり、効率的でない。
【００２１】
また、必要な時に、適宜に、だれでもが定義されたワークフローの修正ができるようにすると、混乱が生じるので、ワークフローの定義を修正することができる者は、システム管理者などの特別な権限（アクセス権）を持つユーザに限定されることが多い。このため、作業中の現ステップのユーザが作業の分割を指示することできないなど、上記のようなワークフロー業務中に生じるワークフローの修正の要求にタイムリーに応じることが困難であるという問題がある。
【００２２】
この発明は、以上の点にかんがみ、ある一つのステップで一部の作業は完了しているが、すべての作業は完了していない場合に、実行中のワークフローを停止することなく、その一部の作業について次のステップに進めることができるように、作業を分割することができるワークフローシステムおよびその作業分割方法を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記課題を解決するため、この発明によるワークフローシステムは、
複数個の作業工程の順序と、各作業工程の処理内容と、各作業工程を実行する担当者との情報がメモリに格納されることにより定義されたワークフローについて、各作業工程の作業が終了して終了状態になったときに、次の作業工程の作業を開始させて、順次に作業を行なわせるように管理することにより、前記作業を支援するコンピュータを用いたワークフローシステムにおいて、
前記コンピュータは、
前記作業工程のそれぞれで処理すべき情報が格納されて前記ワークフローの流れに沿って回覧されるフォルダーと、
前記ワークフローの実行中に、前記作業工程についての分割指示が発生したか否かを検知する分割指示検知手段と、
前記分割指示検知手段で前記分割指示を検知したときに、当該分割指示を検知したときに作業が行われている現作業工程と、前記現作業工程の後工程である次作業工程との間に、前記現作業工程と同じ作業内容であると共に、前記担当者を前記現作業工程と同一の担当者とした第１の追加作業工程を挿入するように前記メモリの内容を修正すると共に、前記現作業工程と、前記次作業工程との間に、前記次作業工程と同じ作業内容であると共に、前記担当者を任意の担当者とした第２の追加作業工程を挿入するように、前記メモリの内容を修正して、前記ワークフローを再定義し、かつ、前記分割指示に付加されるフォルダー分割指定情報に基づき、前記フォルダーを、前記再定義したワークフローにおいても前記現作業工程の担当者が引き続き処理すべき情報を格納する第１のフォルダーと、前記再定義したワークフローにおいて前記第２の追加作業工程の担当者が処理すべき情報を格納する第２のフォルダーに分割し、前記第１のフォルダーを前記第１の追加作業工程に渡し、前記第２のフォルダーを第２の追加作業工程に渡すようにする作業分割手段と、
を備えることを特徴とする。
【発明の効果】
【００２４】
この発明によれば、ある一つのステップで一部の作業は完了しているが、すべての作業は完了していない場合であっても、追加のステップを作成して作業の分割をし、別の担当者に作業を割り振ることができるので、実行中のワークフローを停止することなく、作業を次のステップに進めることができ、ワークフローの効率的な運用が可能になる。
【発明を実施するための最良の形態】
【００２５】
以下、この発明によるワークフローシステムの一実施の形態を、図を参照しながら説明する。
【００２６】
図２および図３は、この例のワークフローシステムの全体の概要を示すもので、図２は、その機能をブロックとして示したものであり、図３は、具体的なハードウエアを示すものである。この例のワークフローシステムは、ワークフローのデータに従ってステップの遷移や、ステップの担当者（ユーザ）への情報の受け渡しを管理して、作業処理を支援するシステム部１０と、各ステップの担当者による処理を支援するための作業環境を提供するユーザインターフェース部２０とからなっている。
【００２７】
システム部１０は、この例では、ファイル管理装置を内蔵する例えばサーバー装置の構成とされている。また、ユーザインターフェース部２０は、例えばワークステーションなどの情報処理端末装置により構成することができ、図３に示すように、そのディスプレイ２０Ｄに各作業工程の作業環境を表示することができ、ユーザはその表示画面を見ながら作業処理やシステム部１０への通知のための操作入力を、マウスやキーボードなどのユーザ入力手段２０ＩＮを通じて行う。また、システム部１０には、システム管理者用の入力手段１０ＩＮが設けられる。また、必要に応じて、ユーザインターフェース部２０には、プリンタやイメージリーダーなどが設けられる。
【００２８】
ユーザインターフェース部２０は、複数の担当者が共通の１個を共有して使用するように構成することもできるが、この例では、担当者毎に設けられた構成とされている。そして、システム部１０とユーザインターフェース部２０とは、例えばＬＡＮ（ローカルエリアネットワーク）３０などの通信手段により接続されて、分散処理環境として構築されている。
【００２９】
なお、システム部１０とユーザインターフェース部２０とを同一の装置において構成することもできる。
【００３０】
そして、図２に示すように、機能的には、システム部１０は、テンプレート管理機能部１１と、ルーティング機能部１２と、通知管理機能部１３と、進捗情報管理機能部１４と、ユーザ管理機能部１５と、参照情報管理機能部１６と、メンテナンス機能部１７とを備える。また、ユーザインターフェース部２０は、編集部２１と、通知部２２と、進捗管理部２３と、インターフェースコントロール部２４とを備える。
【００３１】
ユーザインターフェース部２０の編集部２１では、ユーザの操作入力に応じてテンプレートや実行しようとするワークフロー（この実行しようとするワークフローを、以下、実行フローという）を編集する。
【００３２】
通知部２２は、システム部１０からの通知を受け取ってユーザに知らせたり、また、ユーザの操作指示に応じてシステム部１０に指示や通知を送る。また、進捗管理部２３は、ユーザインターフェース部２０での作業遷移状態を管理する。  システム部１０のテンプレート管理機能部１１は、定義されたワークフローであるテンプレートを記憶、管理する。ルーティング機能部１２は、実行フローにおいて、設定された業務の流れや、あらかじめ定義されたルールにしたがって、あるステップの作業が終了したときに、後続のステップの作業を開始させるか否かを決定する。なお、あるステップの作業が終了したときに、後続のステップの作業を開始させることを、その後続のステップに対してルーティングを行なうといい、後続のステップの作業を開始させない場合は、ルーティングを行なわないという。
【００３３】
システム部１０の通知管理機能部１３は、処理すべき情報の配達の、ユーザへの通知を管理する。ユーザへの通知は、ユーザインターフェース部２０の通知部２２が行う。進捗情報管理機能部１４は、作業の状況、作業の履歴を管理するための情報を管理する。ユーザインターフェース部２０の進捗管理部２３は、この情報を用いて作業の状況を管理する。
【００３４】
ユーザ管理機能部１５は、各ステップを担当するユーザを管理する。
【００３５】
参照情報管理機能部１６は、各ステップの担当者に与える、作業に必要な情報を管理する。参照情報管理機能部１６は、また、ユーザから得た処理結果の情報を後述する記憶部１６Ｍに蓄える処理も行う。前述したように、ユーザとワークフローシステム間で授受される処理すべき情報（以下、処理すべき情報の単位をドキュメントと呼ぶ）は、フォルダーに登録されてワークフローの流れに沿って回覧される。このフォルダーに登録されて授受される情報の一かたまりを、以下、パケットと称する。
【００３６】
メンテナンス機能部１７は、システム部１０において、実行中のワークフローの維持管理を行う。
【００３７】
図１は、この例の情報処理システムにおいて、ワークフローの流れの管理に関する部分の機能を抽出した機能ブロック図である。
【００３８】
メンテナンス機能部１７は、実行フローに関する定義されたデータを、記憶部１７Ｍに記憶する。実行フローは、テンプレート管理機能部１１にあらかじめ登録されている定義されたワークフローから選択することもできるし、選択したワークフローを修正してメンテナンス機能部１７の記憶部１７Ｍに登録することもできる。もちろん、初めから実行フローをすべて作成して定義し、記憶部１７Ｍに登録することもできる。
【００３９】
ワークフローは、前述したように、作業の単位であるステップと、各ステップ間をつなぐアーク（矢印）とからなるグラフ構造によって表現される。したがって、定義された実行フローに関するデータ（以下、ワークフローデータという）は、ワークフローがどのようなステップから構成されているかを示すステップテーブルと、アークに関するデータであるステップの実行順序のテーブル（実行順序テーブルと以下称する）とを含んでおり、メンテナンス機能部１７で管理される。
【００４０】
メンテナンス機能部１７は、また、この例では、ワークフローデータの一部として、後述するように、ワークフローの属性に応じて作業分割処理のタイミングを決定するためのワークフローの進捗度などの項目を有するワークフローテーブルＷＴと、フォルダーの情報を管理するためのフォルダーテーブルＦＴと、フォルダーに含めるドキュメントの情報を管理するためのドキュメントテーブルＤＴをも含んでいる。
【００４１】
図４は、ワークフローデータのデータ構造の例を示すものである。  
ワークフローテーブルＷＴは、当該ワークフローを識別するためのワークフロー識別子の欄と、当該ワークフローについての作業分割チェック間隔、進捗度、進捗度変更日時の欄を備える。
【００４２】
進捗度の欄は、作業の進捗状況を示す数値が記入される欄で、進捗度は例えば０から１００までの数値で表される。進捗度０は、ワークフローが開始されていない状態を示し、進捗度１００はワークフローの完了を意味する。この進捗度の欄の数値は、メンテナンス機能部１７により、ワークフローが順次に進行するに従い、変更されるものである。そして、進捗度変更日時の欄には、進捗度が変更された最新の日時が記入される。
【００４３】
作業分割チェック間隔は、後述する作業分割のタイミングを決定するための項目であり、この欄には例えば日数が記述される。この作業分割チェック間隔で示される日数の期間、進捗度の欄の数値が進まないときに、後述する作業分割処理が実行されるものである。
【００４４】
ステップテーブルＳＴは、各ステップを一意に識別するステップ識別子と、当該ステップ識別子で表されるステップのステップ名、担当者、予定終了時刻、状態との対応テーブルである。
【００４５】
この例では、ステップ識別子は、一つのワークフロー中で一意な番号により表現される。ステップ名は、文字列により表現され、これにより各ステップの処理内容を認識できる。担当者の欄には、この例では、ユーザ名が記述される。
【００４６】
予定終了時刻は、当該ステップの作業が終了すべき予定時刻であり、年月日および時刻により記述される。状態は、後述するステップの状態であり、準備中（ｎｏｔ  ｒｅａｄｙ）、実行中（ｒｕｎ）、完了（ｃｏｍｐｌｅｔｅ）などの文字列が入る。なお、このステップテーブルＳＴには、複数のワークフローを管理するため、それぞれのワークフローを一意に識別するためのワークフロー識別子の欄が設けられている。
【００４７】
実行順序テーブルＯＴは、各アークの前につながる前工程（前ステップ）の欄と、各アークの後につながる後工程（後ステップ）の欄とにより構成される。前工程と後工程とは、一つのワークフロー中で各ステップを一意に識別するためのステップ識別子でそれぞれ表現される。この実行順序テーブルＯＴにも、当該ワークフローを識別するためのワークフロー識別子の欄が設けられている。
【００４８】
フォルダーテーブルＦＴは、ワークフロー識別子の欄と、ステップ識別子の欄と、ファイル名の欄と、パスの欄からなる。パスは、システムで一意の番号で表され、ファイル識別子の役割を持つ。フォルダーを持たないステップに関しては、ファイル名およびパスともに、値は「ＮＵＬＬ」となる。
【００４９】
ドキュメントテーブルＤＴは、ファイル名の欄、ファイル識別子であるパスの欄、緊急度の欄、進捗度の欄、アクセス権の欄で構成される。緊急度は、この例では３段階に設定でき、この欄には、“１”、“２”、“３”の数値が記入される。“１”が緊急度が最も高い。また、進捗度は、例えば０から１００までの数値であり、進捗度１００は当該ドキュメントに関する処理の完了を示す。アクセス権は、そのドキュメントを編集できる権利であり、このアクセス権の欄には、当該権利を有するユーザのリストが記述される。
【００５０】
ユーザ管理機能部１５は、実際に各ステップを担当するユーザに関するユーザデータを管理する。ユーザデータ中、担当者は、通常は、実行フローの起動に先立ち記憶部１５Ｍに登録され、記憶される。実行フローの実行中に、内容が変えられるユーザデータもある。
【００５１】
図５は、ユーザデータの一例のユーザテーブルＵＴのデータ構造を示すものである。ユーザテーブルＵＴは、ワークフローシステム内で、ユーザを一意に識別するためのユーザ識別子としてのユーザ名の欄と、そのユーザがシステム管理者か、一般ユーザかを識別するためのレベルの欄と、負荷状況チェック間隔の欄と、負荷状況の欄と、負荷状況変更日時の欄とからなる。
【００５２】
負荷状況の欄は、当該ユーザの負荷の大きさ状況を示す数値が記入される欄で、この例では、０から１００までの数値で表される。この負荷状況の欄の数値は、ユーザ管理機能部１５により、実行フローが順次に進行するに従い、変更される。そして、負荷状況変更日時の欄には、負荷状況が変更された最新の日時が記入される。
【００５３】
負荷状況チェック間隔は、後述する作業分割のタイミングを決定するための項目であり、この欄には例えば日数が記述される。この負荷状況チェック間隔で示される日数の期間、負荷状況の欄の数値が進まないときに、後述する作業分割処理を実行するように利用するのである。
【００５４】
ルーティング機能部１２は、この例の場合、機能的には、ステップ状態管理部３１と、ルーティング処理部３２と、作業分割要求検知部３３と、作業分割処理部３４と、パケット送受部３５とを備える。作業分割処理部３４は、この例の場合、ルーティング処理部３２の一部である。
【００５５】
ルーティング処理部３２は、ワークフローデータに基づき実際のルーティングの決定を行なう。
【００５６】
作業分割要求検知部３３は、検知した作業分割要求に応じて、ルーティング処理部３２を通じて作業分割処理部３４に作業分割指示を出力するとともに、フォルダーをどのように分割するかのフォルダー分割指定を、同様にして、作業分割処理部３４に出力する。
【００５７】
作業分割要求は、この例においては、
(1) 実行中のワークフローの現ステップの担当者から出される場合
(2) ワークフローのシステム管理者から出される場合
(3) システム（ルーティング機能）が、作業分割の契機となる種々の要因をワークフロー実行中に監視して、作業分割を行なうべきと判定したときに出す場合
とがある。
【００５８】
上記(3) の場合の作業分割要求は、作業分割要求検知部３３自身が出すものである。この例の場合、作業分割要求検知部３３で監視する、作業分割の契機となる種々の要因としては、ステップの属性、ワークフローの属性、ドキュメントの属性、ステップの担当者の属性等が挙げられる。そして、これらの属性が所定の条件を満たしたときに、作業分割要求検知部３３は、作業分割指示を出す。
【００５９】
いつ、作業分割指示を出すかを決定するためのステップの属性と判断基準の対応としては、
進捗度…現ステップから、ある進捗度に達した時点で分割
緊急度…ある緊急度以上のステップであると判断された時点で分割
アクセス権…現ステップの担当者がアクセス権を持たないステップであると判断された時点で分割
重要度…ある重要度以上のステップであると判断された時点で分割
難易度…ある難易度以上のステップであると判断された時点で分割
予定終了時刻…予定終了時刻が現在時刻を過ぎた時点で分割
などがある。
【００６０】
いつ、作業分割指示を出すかを決定するためのワークフローの属性と判断基準の対応としては、
進捗度…ワークフローが、ある進捗度に達した時点で分割
緊急度…ある緊急度以上のワークフローであると判断された時点で分割
アクセス権…現ステップの担当者がアクセス権を持たないワークフローであると判断された時点で分割
重要度…ある重要度以上のワークフローであると判断された時点で分割
難易度…ある難易度以上のワークフローであると判断された時点で分割
予定終了時刻…予定終了時刻が現在時刻を過ぎた時点で分割
などがある。
【００６１】
いつ、作業分割指示を出すかを決定するためのドキュメントの属性と判断基準の対応としては、
進捗度…ドキュメントの処理が、ある進捗度に達した時点で分割
緊急度…ある緊急度以上のドキュメントが存在すると判断された時点で分割
アクセス権…現ステップの担当者がアクセス権を持たないドキュメントが存在すると判断された時点で分割
重要度…ある重要度以上のドキュメントが存在すると判断された時点で分割
難易度…ある難易度以上のドキュメントが存在すると判断された時点で分割
予定終了時刻…予定終了時刻が現在時刻を過ぎた時点で分割
などがある。
【００６２】
また、いつ、作業分割指示を出すかを決定するための担当者の属性と判断基準の対応としては、
負荷状況…担当者にある一定以上の負荷が掛かっていると判断された時点で分割
稼働状況…担当者が稼働していないと判断された時点で分割
などがある。
【００６３】
一方、フォルダー分割指定は、この例においては、
(a) 実行中のワークフローの現ステップの担当者によるフォルダーの分割の仕方の指定
(b) ワークフローのシステム管理者によるフォルダーの分割の仕方の指定
(c) システム（ルーティング機能）によるフォルダーの分割の仕方の指定
の３種がある。
【００６４】
上記(c) の場合のフォルダー分割指定は、作業分割要求検知部３３自身が分割の仕方を決定するための要因について判定をして行うものである。この例の場合、作業分割要求検知部３３が分割の仕方を決定するための要因としては、ドキュメントの属性が挙げられる。このドキュメントの属性が所定の条件を満たしたときに、作業分割要求検知部３３は、作業分割指示を出す。
【００６５】
どのようにフォルダーを分割するかを決定するためのドキュメントの属性と、その分割方法の対応としては、
進捗度…ある進捗度に達していないドキュメントを、現ステップの担当者が引き続き処理を実行するように分割
緊急度…ある緊急度以下のドキュメントを、現ステップの担当者が引き続き処理を実行するように分割
アクセス権…現ステップの担当者がアクセス権を持つドキュメントを、この担当者が引き続き処理を実行するように分割
重要度…ある重要度以下のドキュメントを、現ステップの担当者が引き続き処理を実行するように分割
難易度…ある難易度以下のドキュメントを、現ステップの担当者が引き続き処理を実行するように分割
予定終了時刻…予定終了時刻が現在時刻を過ぎていないドキュメントを、現ステップの担当者が引き続き処理を実行するように分割
などがある。
【００６６】
作業分割処理部３４は、ワークフローの実行中に、作業分割要求検出部３３からの作業分割指示と、フォルダー分割指定とに応じて、後で詳述するような作業分割処理を実行する。
【００６７】
パケット送受部３５は、各ステップの担当者に与えるパケットを生成して、ユーザインタ−フェース２０を介して当該担当者にそのパケットを送り、また、担当者によるステップにおける処理結果が反映されたパケットを、ユーザインタ−フェース２０を介して担当者から受け取る。パケットは参照情報管理機能部１６により管理される。参照情報管理機能部１６は、このパケットの記憶部１６Ｍを有する。パケット送受部３５は、参照情報管理機能部１６に管理されている情報を用いて次にルーティングするパケットを形成する。
【００６８】
ルーティング機能部１２では、ワークフローの各ステップの状態を、次の(A)〜(D)の４種の状態により管理して、そのワークフローの流れを管理する。ステップ状態管理部３１は、実行フローの各ステップの状態データの記憶部３１Ｍを備える。
【００６９】
(A) ステップがまだ作業を開始することができない開始不可状態（以下、この状態を「ｎｏｔ  ｒｅａｄｙ」という）
(B) ステップの開始準備ができており、担当者の仕事の開始を待っている待機状態（以下、この状態を「ｒｅａｄｙ」という）
(C) 担当者が作業をしている実行状態（以下、この状態を「ｒｕｎ」という）
(D) 担当者が作業を完了した作業完了状態（以下、この状態を「ｃｏｍｐｌｅｔｅ」という）。
【００７０】
以上のステップの状態遷移に応じてルーティング機能部１２は、基本的には、次のような動作を行ない、この動作が各ステップに対して繰り返されることにより、ワークフローは進行する。
【００７１】
初期時には、ステップ状態管理部３１の記憶部３１Ｍの各ステップの状態は「ｎｏｔ  ｒｅａｄｙ」となっている。担当者によりワークフローの起動が行なわれると、メンテナンス機能部１７の指示を受けたルーティング処理部３２により最初のステップが次のステップとして決定される。また、後述するように、開始ステップ以外のステップが終了したとき（「ｃｏｍｐｌｅｔｅ」の状態になったとき）に、ルーティング処理部３２により次のステップが決定される。決定された次のステップは、その状態が「ｒｅａｄｙ」とされる。
【００７２】
ステップ状態管理部３１は、ステップの状態が「ｎｏｔ  ｒｅａｄｙ」から「ｒｅａｄｙ」になるとき、通知管理機能部１３に通知要求を出す。通知管理機能部１３は、この通知要求に従って次ステップの担当者に対して通知を行なって担当者の作業の開始を促す。
【００７３】
この通知に対して担当者が開始の合図をワークフローシステムに対して行なうと、この合図を通知管理機能部１３が受け、ステップ状態管理部３１にその旨を知らせる。ステップ状態管理部３１は、これに応じてステップの状態を「ｒｅａｄｙ」から「ｒｕｎ」にする。
【００７４】
そして、ステップ状態管理部３１は、パケット送受部３５にパケット送信要求を出して、このパケット送受部３５より、担当者が作業を行なうために必要な文書、図面、データなどの情報をひとまとめにしたデータの固まりであるパケットを担当者に対して送る。
【００７５】
担当者は、ワークフローシステムから配達されたパケットを元に作業を実行する。そして、指定された作業を終了すると、担当者は、適宜、作業内容を反映させたパケットとともに、ワークフローシステムに対し、完了の合図を送る。このとき、ステップ状態管理部３１は、当該ステップの状態を「ｒｕｎ」から「ｃｏｍｐｌｅｔｅ」とする。
【００７６】
ステップ状態管理部３１は、ステップの状態が「ｒｕｎ」から「ｃｏｍｐｌｅｔｅ」になるときに、ルーティング処理部３２に処理要求を出す。ルーティング処理部３２は、実際のルーティングの決定を行なう。すなわち、次にルーティングを行なうステップを決定し、また、担当者を決定し、その決定したステップおよび担当者を、前述したようにステップ状態管理部３１に通知する。
【００７７】
ステップ状態管理部３１は、ルーティング処理部３２からの通知によりルーティングを行なうステップの状態を、「ｎｏｔ  ｒｅａｄｙ」から「ｒｅａｄｙ」にする。以下、上述と同様の処理を繰り返して、ワークフローを進行させ、後続のステップがなくなるとワークフローの処理を終了する。
【００７８】
以上は、通常のワークフローの基本的な流れであるが、この実施の形態においては、ルーティング処理部３２は、ステップの状態が「ｒｕｎ」から「ｃｏｍｐｌｅｔｅ」になるときに、ステップ状態管理部３１からの処理要求により、ルーティングの決定を行うだけでなく、作業分割要求検知部３３から作業分割指示が発生したときにも、作業分割処理部３４で作業分割処理を実行したのち、ルーティングの決定を行うようにする。
【００７９】
図６は、作業分割処理部３４での分割処理の一例の概念図を示すものである。この例は、例えば最初に定義されたオリジナルのワークフローが、図６Ａに示すように、担当者がユーザＡのステップＮ１と、その後工程である担当者がユーザＢのステップＮ２との２ステップからなる場合に、ステップＮ１で作業分割要求が発生した場合である。
【００８０】
この場合の作業分割処理は、現ステップＮ１とその後工程のステップＮ２との繋がりを断ち、現ステップＮ１の担当ユーザＡと同じ担当ユーザＡの第１の追加ステップＮ３と、任意の担当ユーザＣ（但し、ユーザＡは含まない）の第２の追加ステップＮ４とを作成し、現ステップＮ１と、第１の追加ステップＮ３および第２の追加ステップＮ４とをリンクして、それらの繋がり（アーク）を設けるとともに、第１の追加ステップＮ３および第２の追加ステップＮ４と後ステップＮ２とをリンクして、それらの繋がり（アーク）を設ける処理である。そして、図６には示さなかったが、現ステップＮ１のフォルダーをフォルダー分割指定に応じて分割して、第１および第２の追加ステップＮ３およびＮ４に割り当てるようにする。
【００８１】
次に、作業分割処理のいくつかの実施例について、以下説明する。
【００８２】
［作業分割の実施例１］
この実施例１では、現ステップの担当者が作業分割の指示をすると共に、フォルダーの分割の仕方も指定する場合である。
【００８３】
前述したように、この場合、現ステップの担当者が作業分割の指示入力操作をすると、作業分割要求検知部３３は、これを検知して、ルーティング処理部３２を介して作業分割処理部３４に作業分割指示を出力する。また、作業分割要求検知部３３は、現ステップの担当者のフォルダーの分割指定入力操作に応じたフォルダーの分割指定情報を、ルーティング処理部３２を介して作業分割処理部３４に与える。
【００８４】
この例の場合には、フォルダーの分割指定情報として、処理済ファイルリストが入力として与えられる。すなわち、この実施例では、現ステップの担当者がフォルダー内の各ドキュメントについて処理が完了しているかどうか判断し、まだ処理の済んでいない未処理のドキュメントは現ステップの担当者が引き続き処理し、すでに処理の済んだ処理済のドキュメントは次ステップの担当者が処理を実行するようにするため、処理済ファイルリストを作成し、それをフォルダーの分割指定情報とする。
【００８５】
この実施例１においては、ユーザからの作業分割要求を検知したとき、実際に作業分割処理に移行させる前に、作業分割要求を出した担当ユーザが、適切なユーザであるか否かのチェックを行う。
【００８６】
図７は、このユーザチェック処理の処理ルーチン１００を示すものである。
【００８７】
この処理ルーチン１００の入カデータは、ワークフロー識別子、現ステップのステップ識別子、分割要求の有無、分割要求ユーザ名である。なお、後述するように、分割要求の有無として「無」が指定されるのは、作業分割の必要がなく、ステップが通常に完了される場合である。
【００８８】
この処理ルーチン１００では、まず、処理１０１において、ワークフローの終了時であるか否か判断する。後工程のステップが存在せず、ワークフローの終了時であると判断したときには、このルーチン１００を終了する。ワークフローの終了時でなければ、処理１０２に進む。
【００８９】
処理１０２では、作業分割要求を出したユーザが適切なユーザか、つまり、この例の場合には、現ステップの担当ユーザかどうかをチェックする。このチェックは、次のようにして行う。まず、現ステップ担当者を、ステップテーブルＳＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップ識別子と等しいレコード（テーブルの１行ごとの登録データをレコードと呼ぶ）における「担当者のユーザ名」の欄の値として取得する。そして、このユーザ名と作業分割要求を出したユーザ名が同じであれば、処理１０３に進み、後述する作業分割処理ルーチン２００を呼び、これを実行する。ユーザ名が異なるときには、作業分割要求を出したユーザが不適切なユーザであるとして、このルーチン１００を終了する。
【００９０】
図８および図９は、この実施例１の場合に、作業分割処理部３４を備えるルーティング処理部３２で実行される、作業分割を含むルーティング処理のルーチン２００の例を示すフローチャートである。
【００９１】
この処理ルーチン２００の入カデータは、ワークフロー識別子、現ステップのステップ識別子、分割要求の有無である。前述もしたように、分割要求の有無として「無」が指定されるのは、作業分割の必要がなく、ステップが通常に完了される場合であり、担当者の完了の合図により、ステップの状態が「ｒｕｎ」から「ｃｏｍｐｌｅｔｅ」になるときである。すなわち、ステップの状態が「ｒｕｎ」から「ｃｏｍｐｌｅｔｅ」になったときにも、このルーチン２００が起動される。
【００９２】
このルーチン２００においては、まず、処理２０１において、ワークフロー識別子と現ステップのステップ識別子をもとに、次ステップを決定する。この次ステップのステップ識別子は、実行順序テーブルＯＴの「ワークフロー識別子」と「前工程」の欄の値が、それぞれワークフロー識別子、現ステップ識別子と等しいレコードにおける「後工程」の欄の値として求められる。なお、その結果として複数の次ステップが存在する場合もある。
【００９３】
次に、判断２０２では、処理２０１で決定された次ステップが「ＮＵＬＬ」であり、ワークフローの終了時であるか否か判断する。ワークフローの終了時であると判断したときには、このルーチン２００を終了する。ワークフローの終了時でなければ、処理２０３に進む。
【００９４】
処理２０３においては、フォルダーの作成を行う。すなわち、フォルダーテーブルＦＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップのステップ識別子と等しいレコードを取り出し、この中で、「ステップ識別子」の欄の値として次ステップのステップ識別子を代入したレコードを作成し、フォルダーテーブルＦＴに挿入する。複数の次ステップが存在する場合は、各ステップに対して、同様の処理を実行する。
【００９５】
次に判断２０４に進む。この判断２０４においては、ユーザインターフェース部２０からの作業分割要求があるか否かを決定し、作業分割要求がなければ、処理２１３に進み、次ステップの担当者に通知を送るように通知管理機能部１３に指示を送る。このとき、処理２１３において、複数個の次ステップが存在する場合は、各ステップに対して同様の処理を実行する。
【００９６】
判断２０４で作業分割要求があると判断したときには、処理２０５以降の作業分割処理に移行する。
【００９７】
処理２０５は、次ステップの数が複数あるときに、そのすべての次ステップについて作業分割処理を繰り返すための準備のための処理である。変数Ｓに、繰り返しの回数、つまり次ステップの数を設定し、変数ｉに初期値「１」を設定する。この処理２０５以降の、処理２０６から処理２１３までの記述中の次ステップとは、ｉ番目の次ステップを指す。
【００９８】
処理２０６では、図６のステップ追加の概念図に示した任意の担当者を割り当てる追加ステップＮ４に関わる情報の決定を行う。すなわち、ステップ識別子、ステップ名、担当者、予定終了時刻、ファイルリスト（ドキュメントのパスのリスト）を決定する。この追加ステップＮ４は、前述したように、処理の終わったドキュメントの入ったフォルダーを持つステップである。この実施例１では、この追加ステップＮ４は、次ステップの担当者が担当するものとする。  ステップ識別子、ステップ名は、重複をさけることを目的として作成され、この実施例では、次ステップのステップ識別子と次ステップのステップ名のそれぞれに、それぞれ“．”とｉの値を付け加えたものを、追加ステップＮ４のステップ識別子、追加ステップＮ４のステップ名とする。ここで、次ステップのステップ名は、ステップテーブルＳＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、次ステップのステップ識別子と等しいレコードにおける「ステップ名」の欄の値として求められる。
【００９９】
そして、前述したように、追加ステップＮ４の担当者は、次ステップのステップ識別子と等しいレコードにおける「担当者のユーザ名」の欄の値、すなわち次ステップ担当者と同じとする。さらに、予定終了時刻は、前記レコードにおける「予定終了時刻」の欄の値と等しくする。なお、この場合、ファイルリストは、前述した処理済ファイルリストが利用される。
【０１００】
この処理２０６で作成された情報を元に、処理２０７で、ステップ追加処理を行う。入力として、ワークフロー識別子、現ステップ識別子、次ステップ識別子、追加ステップ識別子、追加ステップ名、追加ステップ担当者、予定終了時刻、ファイルリスト（処理済ファイルリスト）が与えられる。ステップ追加処理の詳細は後述する。
【０１０１】
次に処理２０８に進む。この処理２０８では、図６の概念図に示した現ステップＮ１と同一担当者である追加ステップＮ３に関して、識別子、ステップ名、担当者、ファイルリストを決定する。この追加ステップＮ３は、処理の終わっていないドキュメントの入ったフォルダーを持つステップであり、現ステップの担当者が担当するものである。
【０１０２】
この場合のステップ識別子、ステップ名も、他のステップとの重複をさけることを目的として作成され、この実施例では、現ステップのステップ識別子と現ステップのステップ名のそれぞれに、それぞれ“．”とｉの値を付け加えたものを、追加ステップＮ３のステップ識別子、追加ステップＮ３のステップ名とする。ここで、現ステップのステップ名は、ステップテーブルＳＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップのステップ識別子と等しいレコードにおける「ステップ名」の欄の値として求められる。
【０１０３】
そして、この追加ステップＮ３の担当者は、現ステップのステップ識別子と等しいレコードにおける「担当者のユーザ名」の値、すなわち現ステップ担当者と同じとする。さらに、予定終了時刻は、前記レコードにおける「予定終了時刻」の欄の値と等しくする。
【０１０４】
なお、この追加ステップＮ３に関するファイルリストは、フォルダーテーブルＦＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現在のステップ識別子と等しいレコードを取り出し、さらに、これらのレコードの中で、「パス」の欄の値が処理済ファイルリストに含まれていないレコードを特定し、これらのレコード中の「パス」の欄の値のリストとして求められる。これを未処理ファイルリストと呼ぶことにする。
【０１０５】
この処理２０８で作成された情報を元に、処理２０９で、ステップ追加処理を行う。入力として、ワークフロー識別子、現ステップ識別子、次ステップ識別子、追加ステップ識別子、追加ステップ名、追加ステップ担当者、予定終了時刻、ファイルリスト（未処理ファイルリスト）が与えられる。ステップ追加処理の詳細は後述する。
【０１０６】
次に処理２１０に進み、実行順序テーブルＯＴの調整を行う。これは、実行順序テーブルＯＴから、
（ワークフロー識別子  現ステップ識別子  次ステップ識別子）
というレコードを削除する処理である。
【０１０７】
次の処理２１１と判断２１２とは、繰り返しための処理である。ｉ＝Ｓとなるまで、処理２０６から判断２１２までの作業分割処理を繰り返し、判断２１２でｉ＝Ｓとなったことを検知すると作業分割処理を終了し、処理２１３に進み、次ステップに通知を行うようにする。この場合、作業分割処理により、追加ステップＮ３，Ｎ４が作成された場合には、これらが現ステップの追加ステップとされて、通知の処理が行われる。以上でルーチン２００を終了する。
【０１０８】
次に、ルーチン２００の処理２０７および処理２０９で実行されるステップ追加の処理ルーチンを説明する。図１０は、このステップ追加処理の一例の処理ルーチン３００のフローチャートである。
【０１０９】
この処理ルーチン３００の入力データは、ワークフロー識別子、現ステップ識別子、次ステップ識別子、追加ステップ識別子、追加ステップ名、追加ステップ担当者、予定終了時刻、ファイルリストである。
【０１１０】
この処理ルーチンにおいては、まず、処理３０１において、追加ステップの登録を行う。これは、ステップテーブルＳＴに、
（ワークフロー識別子  追加ステップ識別子  追加ステップ名  追加ステップ担当者  予定終了時刻  状態）
というレコードを挿入する処理である。なお、「状態」の欄の値は、「準備中（＝ｒｅａｄｙ）」という文字列とする。
【０１１１】
次の処理３０２においては、現ステップと追加ステップとの接続を行う。これは、実行順序テーブルＯＴに、
（ワークフロー識別子  前工程ステップ識別子  追加ステップ識別子）
というレコードを挿入する処理である。
【０１１２】
次の処理３０３においては、追加ステップと次ステップとの接続を行う。これは、実行順序テーブルＯＴに、
（ワークフロー識別子  追加ステップ識別子  後工程ステップ識別子）
というレコードを挿入する処理である。
【０１１３】
次の処理３０４においては、フォルダー調整を行う。まず、フォルダーテーブルＦＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップ識別子と等しいレコードを取り出し、さらに、この中で、「パス」の欄の値がファイルリストに含まれているレコードを特定する。これらのレコードを元レコードと呼ぶ。元レコード中の「ステップ識別子」の欄の値として追加ステップ識別子を代入したレコードを作成し、フォルダーテーブルＦＴに挿入する。その後で、元レコードを削除する。
【０１１４】
次に、具体例を挙げて、以上の作業分割動作について、さらに説明する。
【０１１５】
例えば、オリジナルのワークフローが、図１１Ａに示すように、図１９の場合と同様に、「設計」「承認」という２つのステップからなる設計のワークフローであり、ステップ「設計」の担当ユーザＡが、ドキュメントとして、文書Ａと、図面Ｂの作成をし、これをフォルダーに登録して、ステップ「承認」の担当ユーザＢに渡し、担当ユーザＢが、作成された文書Ａと図面Ｂについて検討し、承認を与える作業を行うというように定義されている場合を考える。
【０１１６】
この図１１Ａのワークフローが起動された場合のワークフローデータとしてのワークフローテーブルＷＴ、ステップテーブルＳＴ、実行順序テーブルＯＴ、フォルダーテーブルＦＴおよびドキュメントテーブルＤＴと、ユーザデータとしてのユーザテーブルＵＴは、起動時においては、図１２に示すものとなる。
【０１１７】
そして、ステップ「設計」の実行時（ｒｕｎ）には、これらのデータは、フォルダーテーブルＦＴにフォルダーのエントリーが追加され、図１３のようなものとなる。
【０１１８】
この場合に、ステップ「設計」の担当ユーザＡが、このステップ「設計」の実行中において、図面Ｂの作成は完了したが、文書Ａの作成が未了であるときに、作業分割指示を出すとともに、図面Ｂを処理済ファイルリストに載せて、フォルダー分割指定をユーザインターフェース２０を通じて入力したとする。
【０１１９】
すると、前述したように、図８および図９の作業分割処理を含むルーティング処理が実行され、作業分割処理により、図１１Ｂに示すような追加ステップ「承認．１」と、追加ステップ「設計．１」が追加される。
【０１２０】
この作業分割処理が完了した時点では、ワークフローデータは、図１４に示すようなものとなる。ユーザデータであるユーザテーブルＵＴについては、作業分割後であっても変更はないので、省略する。
【０１２１】
この図１４に示すように、ステップテーブルＳＴに対しては、追加されたステップ（ステップ２．１とステップ１．１）の情報が追加される。実行順序テーブルＯＴに対しては、追加ステップと現ステップおよび次ステップとの接続を示すエントリーが追加される。また、実行順序テーブル調整（図９の処理２１０）により、現ステップと次ステップとの接続を示すエントリーは削除される。
【０１２２】
フォルダーテーブルＦＴに対しては、まず、
（１０００  ２  文書Ａ  １００）
（１０００  ２  図面Ｂ  １０１）
というエントリーが追加される（フォルダー作成）。これは、上記の図１０の処理ルーチン３００の処理３０４の説明における元レコードに相当する。
【０１２３】
さらにステップ追加処理中のフォルダー調整において、
（１０００  １．１  文書Ａ  １００）
（１０００  ２．１  図面Ｂ  １０１）
という工ントリーが追加され、元レコードの
（１０００  ２  文書Ａ  １００）
（１０００  ２  図面Ｂ  １０１）
は削除される。ドキュメントテーブルＤＴに対しては、フォルダー分割時の進捗度が反映される。これは、担当者により指定される場合などが考えられる。
【０１２４】
この実施例１によれば、現ステップの担当者の都合に応じて、作業を割り振ることが可能になる。また、他の担当者に作業を割り振ることができるので、ワークフローで定義している作業の流れを止めることなく並列して作業ができる。
【０１２５】
なお、以上の実施例では、追加ステップの担当者や終了時刻を同一のものを継承するようにしたが、これらは各々独立に設定してもよい。また、追加ステップは、３人以上の担当者に分けるようにしてもよい。
【０１２６】
［作業分割の実施例２］
この第２の実施例は、システム管理者が、作業分割指示を出すとともに、フォルダー分割指定を行う場合である。
【０１２７】
この場合、前述の実施例１における処理ルーチン１００の判断１０２において、分割要求ユーザが適切なシステム管理者か否かの判断をするが、その判断は次の通りである。まず、分割要求ユーザのレベルを、ユーザテーブルＵＴの「レベル」の欄の値が、分割要求ユーザ名と等しいレコードにおける「レベル」の欄の値として取得する。この値が、「管理者」であれば、作業分割処理に進むものである。作業分割処理ルーチンは、図８および図９に示した処理ルーチンと同様である。ただし、ファイルリストは、システム管理者が指定したフォルダー分割指定に従う。
【０１２８】
このフォルダー分割指定の仕方としては、例えば実行中のステップの担当ユーザがアクセス権を持たない（編集のためのファイル読み出し、ファイル作成、ファイル修正等ができない）ファイルがあったとき、そのファイルはそのステップでは処理されることがないので、強制的にそのファイルに関する処理を、他のアクセス権を備えるユーザに実行させるステップを追加して、作業分割する。この場合、システム管理者は、ドキュメントテーブルＤＴを参照する。
【０１２９】
その他、複数のファイルの処理を担当する現ステップのユーザの進捗が著しく遅いときや、ワークフロー全体の進捗が著しく遅いとき、また、現ステップの担当ユーザの負荷が非常に重いため、未処理のファイル毎に分割するように、フォルダー分割指定することもできる。この場合には、システム管理者は、ドキュメントテーブルＤＴやユーザテーブルＵＴを参照する。
【０１３０】
この実施例２によれば、担当者の負荷状況や、稼働状況に応じて作業をシステム管理者が強制的に分割することができるものである。
【０１３１】
［作業分割の実施例３］
この実施例３は、現ステップの担当者が作業分割要求をするが、システム（ルーティング機能）がドキュメントの属性である緊急度に基づいてフォルダーを分割する場合である。
【０１３２】
この実施例３では、緊急度が“１”でないドキュメントは現ステップの担当者が引き続き処理を行い、緊急度が“１”であるドキュメントは、現ステップの担当者が指定するユーザ（現ステップの担当者以外の任意の担当ユーザＣ）が処理を実行するように、システム（ルーティング機能）がフォルダー分割を指定するものである。
【０１３３】
この実施例３において、作業分割処理部３４を備えるルーティング処理部３２で実行される作業分割を含むルーティング処理ルーチンは、前述の実施例１の図８および図９の処理ルーチン２００と同様である。ただし、この例の場合には、現ステップの担当者は、作業分割要求時に、緊急度“１”のドキュメントの処理担当ユーザを指定するだけで、フォルダー分割指定は行わない。
【０１３４】
すなわち、この実施例３においても、実施例１と同様にして、作業分割要求をした担当ユーザが、現ステップの担当ユーザか否かのチェックをした後、作業分割処理に移行する。
【０１３５】
作業分割処理の処理２０６および処理２０８の追加ステップに関わる情報の決定の処理の内容が、実施例１と実施例３とでは異なる。
【０１３６】
すなわち、処理２０６では、図６の概念図に示した任意の担当者を割り当てる追加ステップＮ４に関わる情報の決定、すなわち、ステップ識別子、ステップ名、担当者、予定終了時刻、処理対象のファイルリスト（ドキュメントのパスのリスト）を決定するが、この実施例３の場合には、この追加ステップＮ４は、緊急度が“１”であるドキュメントの入ったフォルダーを持つステップである。この実施例３では、この追加ステップＮ４は、現ステップの担当ユーザが指定した担当ユーザＣが担当するものである。
【０１３７】
ステップ識別子、ステップ名は、重複をさけることを目的として作成され、この実施例３では、現ステップのステップ識別子と現ステップのステップ名のそれぞれに、それぞれ“．”とｉの値を、２回繰り返して付け加えたものを、追加ステップＮ４のステップ識別子、追加ステップＮ４のステップ名とする。ここで、現ステップのステップ名は、ステップテーブルＳＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップのステップ識別子と等しいレコードにおける「ステップ名」の欄の値として求められる。
【０１３８】
そして、前述と同様に、追加ステップＮ４の担当者は、担当ユーザＣとされる。さらに、予定終了時刻は、前記レコードにおける「予定終了時刻」の欄の値と等しくする。
【０１３９】
なお、この場合、ファイルリストは、フォルダーテーブルＦＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現在のステップ識別子と等しいレコードを取り出し、次に、これらのレコードの中で、「パス」の欄の値によりドキュメントテーブルＤＴを検索してレコードを取り出し、このうち、緊急度が“１”であるレコードを特定し、これらのレコード中の「パス」の欄の値のリストとして求められる。この緊急度が“１”であるドキュメントのパスのリストを緊急ファイルリストと呼ぶことにする。
【０１４０】
実施例３においても、この処理２０６で作成された情報を元に、処理２０７で、ステップ追加処理を行うが、入力として、ワークフロー識別子、現ステップ識別子、次ステップ識別子、追加ステップ識別子、追加ステップ名、追加ステップ担当者、予定終了時刻、緊急ファイルリストが与えられる。ステップ追加処理の詳細は、前述の図１０と同様である。
【０１４１】
次に処理２０８では、図６の概念図に示した現ステップＮ１と同一担当者である追加ステップＮ３に関して、識別子、ステップ名、担当者、ファイルリストを決定するが、この実施例３では、この追加ステップＮ３は、緊急度が“１”でないドキュメントの入ったフォルダーを持つステップである。
【０１４２】
この場合のステップ識別子、ステップ名も、他のステップとの重複をさけることを目的として作成され、この実施例３では、現ステップのステップ識別子と現ステップのステップ名のそれぞれに、それぞれ“．”とｉの値を付け加えたものを、追加ステップＮ３のステップ識別子、追加ステップＮ３のステップ名とする。ここで、現ステップのステップ名は、ステップテーブルＳＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップのステップ識別子と等しいレコードにおける「ステップ名」の欄の値として求められるのは前述と同様である。
【０１４３】
そして、この追加ステップＮ３の担当者は、現ステップのステップ識別子と等しいレコードにおける「担当者のユーザ名」の欄の値、すなわち現ステップ担当者と同じとする。さらに、予定終了時刻は、前記レコードにおける「予定終了時刻」の欄の値と等しくする。
【０１４４】
この追加ステップＮ３に関するファイルリストは、フォルダーテーブルＦＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップのステップ識別子と等しいレコードを取り出し、次に、これらのレコードの中で、「パス」の欄の値によりドキュメントテーブルＤＴを検索してレコードを取り出し、このうち、緊急度が“１”でないレコードを特定し、これらのレコード中の「パス」の欄の値のリストとして求められる。この緊急度が“１”でないドキュメントのパスのリストを、非緊急ファイルリストと呼ぶことにする。
【０１４５】
この実施例３においても、この処理２０８で作成された情報を元に、処理２０９で、ステップ追加処理を行なうが、その入力として、ワークフロー識別子、現ステップ識別子、次ステップ識別子、追加ステップ識別子、追加ステップ名、追加ステップ担当者、予定終了時刻、前記非緊急ファイルリストが与えられる。ステップ追加処理の詳細は、図１０に示したものと同様である。
【０１４６】
その他の処理および判断は、実施例１の図８および図９のルーチン２００の内容とほぼ同様であるので、説明は省略する。
【０１４７】
次に、具体例を挙げて、この実施例３の場合の作業分割動作について、さらに説明する。
【０１４８】
この実施例３の場合の作業分割の概念図は図１５に示すようなものになる。
【０１４９】
すなわち、オリジナルのワークフローは、図１５Ａに示すように、図１１Ａに示した実施例１の場合と同様である。したがって、このワークフローの起動時のワークフローデータおよびユーザデータは、図１２に示したものと同じである。また、ステップ「設計」の実行時（ｒｕｎ）のデータは、図１３に示したものと同じものとなる。
【０１５０】
そして、作業分割が完了した時点では、ワークフローデータは、図１６に示すようなものとなる。なお、ユーザデータであるユーザテーブルＵＴについては、作業分割後であっても変更はないので、省略する。
【０１５１】
この図１６に示すように、ステップテーブルＳＴに対しては、追加されたステップ（ステップ１．１．１とステップ１．１）の情報が追加される。実行順序テーブルＯＴに対しては、追加ステップと現ステップおよび次ステップとの接続を示すエントリーが追加される。また、実行順序テーブル調整（図９の実行順序テーブル調整の処理２１０）により、現ステップと次ステップとの接続を示すエントリーは削除される。
【０１５２】
フォルダーテーブルＦＴに対しては、まず、
（１０００  ２  文書Ａ  １００）
（１０００  ２  図面Ｂ  １０１）
というエントリーが追加される（フォルダー作成）。これが、上記の図１０の処理ルーチン３００の処理３０４の説明における元レコードに相当する。さらにステップ追加処理中のフォルダー調整において、
（１０００    １．１    文書Ａ  １００）
（１０００  １．１．１  図面Ｂ  １０１）
という工ントリーが追加され、元レコードの
（１０００  ２  文書Ａ  １００）
（１０００  ２  図面Ｂ  １０１）
は削除される。ドキュメントテーブルＤＴに対しては、フォルダー分割時の進捗度が反映される。これは、担当者により指定される場合などが考えられる。
【０１５３】
この実施例３によれば、前述したようなドキュメントの属性、例えば上述の例の場合であれば、緊急度に応じて作業を分割することができ、ワークフローの効率的な運用ができる。
【０１５４】
なお、上述の実施例３では、現ステップの担当者が作業分割を指示する場合について説明したが、これ以外のケース、例えば、システム管理者が作業分割を指示する場合についても同様にして、作業分割を実行することができる。
【０１５５】
また、フォルダー分割の要因としては、ドキュメントの緊急度だけではなく、前述したように、ドキュメントの重要度、進捗度、アクセス権、難易度、予定終了時刻などを用いることもできる。また、これらの組み合わせによりフォルダー分割してもよい。例えば、重用度と、進捗度とを組み合わせた基準によりフォルダーを分割するようにしてもよい。
【０１５６】
［実施例４］
この第４の実施例４においては、システム（ルーティング機能）が、作業分割を指示すると共に、フォルダー分割の指定をする。
【０１５７】
図１７は、実行中である現ステップを対象として、作業分割を実行すべきかどうかをシステムが判断するための、作業分割チェック処理のフローチャートである。この作業分割チェック処理ルーチン４００は、例えば一定時間毎に周期的に実行される。この処理ルーチン４００の入カデータは、ワークフロー識別子である。
【０１５８】
処理ルーチン４００において、最初の判断４０１は、次ステップが存在しない場合（ワークフローの終了時）に、当該作業分割チエック処理を終了するための判断である。
【０１５９】
次の処理４０２では、実行中のステップ、つまり現ステップを特定する。この処理４０２では、ステップテーブルＳＴの「ワークフロー識別子」と「状態」の欄の値が、それぞれ現ワークフロー識別子、“実行中”に等しいレコードにおける「ステップ識別子」、「予定終了時刻」、「担当者のユーザ名」の欄の値を、各実行中ステップについて取得する。
【０１６０】
次の処理４０３は、実行中ステップの数だけ繰り返し処理するのための準備である。変数Ｓに、繰り返しの回数、つまり実行中ステップの数を設定し、変数ｉに初期値「１」を設定する。これ以降の判断処理４０４から判断処理４０７までの記述中の実行中ステップとは、ｉ番目の実行中ステップを指す。
【０１６１】
処理４０４では、作業分割の条件を満たしているかどうかをチェックする。例えば、ステップの属性である予定終了時刻に基づいて作業分割を実施するケースでは、ステップの属性である予定終了時刻が現在時刻に達しているかどうかを決定し、達していれば、処理４０５の作業分割処理に移行するようにする。
【０１６２】
また、ワークフローの属性である進捗度が、作業分割チェック間隔の間、進まなければ、作業分割を実施するケースでは、まず、ワークフローテーブルＷＴの「ワークフロー識別子」の欄の値がワークフロー識別子と等しいレコードにおける「作業分割チェック間隔」と「進捗度変更日時」の欄の値を取得する。これらの値と現在時刻から、ワークフローの進捗度が、作業分割チェック間隔の間、進んでいなければ、処理４０５の作業分割処理に移行するようにする。
【０１６３】
また、担当者の属性である負荷状況の値がある一定以上であれば、作業分割を実施するケースでは、まず、ユーザテーブルＵＴの「ユーザ名」の欄の値が担当者のユーザ名と等しいレコードにおける「負荷状況チェック間隔」と「負荷状況変更日時」の欄の値を取得する。これらの値と現在時刻から、ユーザの負荷状況が、負荷状況チェック間隔の間、進んでいなければ、作業分割処理に移行する。  さらに、フォルダー中にステップ担当者がアクセス権を持たないドキュメントが存在すれば、作業分割を実施するケースでは、まず、フォルダーテーブルＦＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、ステップ識別子と等しいレコードにおける「パス」の欄の値を取得する。次に、ドキュメントテーブルＤＴの「パス」の欄の値が、取得したパスと等しいレコードにおける「アクセス権」の欄の値を取得する。そして、このアクセス権に、担当者のユーザ名が含まれないようなレコードが存在すれば、処理４０５の作業分割処理に移行するようにする。
【０１６４】
処理４０５で実行される作業分割処理の入力としては、ワークフロー識別子、現ステップ識別子（ｉ番目のステップ識別子とする）、分割要求の有無（“有”を指定）が与えられる。作業分割処理の詳細は後述する。
【０１６５】
処理４０６、処理４０７は、繰り返しの処理である。ｉ＝Ｓとなった場合に、この処理ルーチン４００を終了する。
【０１６６】
この実施例４において、作業分割処理部３４を備えるルーティング処理部３２で実行される作業分割を含むルーティング処理ルーチンは、前述の実施例１の図８および図９の処理ルーチン２００と同様である。ただし、この例の場合には、ドキュメントの属性である進捗度に基づいて、フォルダーがシステムにより自動的に分割される。
【０１６７】
処理ルーチン２００の処理２０６および処理２０８の追加ステップに関わる情報の決定の処理の内容が、実施例１と実施例４とでは異なる。
【０１６８】
この作業分割処理の例では、ドキュメントの属性である進捗度に関して、進捗度が１００でないドキュメントは現ステップの担当者が引き続き処理し、進捗度が１００であるドキュメントは次ステップの担当者が処理を実行するようにフォルダー分割を指定する。この際、現ステップと同一担当者である追加ステップに関しては予定終了時刻を現ステップより１日先とするようにする。
【０１６９】
すなわち、処理２０６では、図６のステップ追加の概念図に示した任意の担当者を割り当てる追加ステップＮ４に関わる情報の決定を行う。すなわち、任意の担当者である追加ステップＮ４に関して、ステップ識別子、ステップ名、担当者、予定終了時刻、ファイルリストを決定する。この例の場合の追加ステップＮ４は、進捗度が１００であるドキュメントの入ったフォルダーを持つステップであり、また、この実施例では、次ステップの担当者が担当するものとする。
【０１７０】
ステップ識別子、ステップ名は、重複をさけることを目的として作成され、この実施例４では、現ステップのステップ識別子と現ステップのステップ名のそれぞれに、それぞれ“．”とｉの値を付け加えたものを、追加ステップＮ４のステップ識別子、追加ステップＮ４のステップ名とする。ここで、現ステップのステップ名は、ステップテーブルＳＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップのステップ識別子と等しいレコードにおける「ステップ名」の欄の値として求められる。
【０１７１】
そして、追加ステップＮ４の担当者は、前記レコードにおける「担当者のユーザ名」の欄の値、すなわち次ステップの担当者と同じとする。さらに、予定終了時刻は、このレコードにおける「予定終了時刻」の欄の値とする。
【０１７２】
そして、ファイルリストは、まず、フォルダーテーブルＦＤの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップ識別子と等しいレコードを取り出し、次に、これらのレコード中の「パス」の欄の値によりドキュメントテーブルＤＴを検索してレコードを取り出し、このうち進捗度が１００であるレコードを特定し、これらのレコード中の「パス」の欄の値のリストとして求められる。この、進捗度が１００であるドキュメントのパスのリストを、次ステップファイルリストと呼ぶ。
【０１７３】
これらの情報をもとに、処理２０７で、ステップ追加処理を行う。入力として、ワークフロー識別子、追加ステップ識別子、追加ステップ名、追加ステップ担当者、現ステップ識別子、次ステップ識別子、次ステップファイルリストが与えられる。ステップ追加処理の詳細は、前述の図１０と同様である。
【０１７４】
次に処理２０８では、図６の概念図に示した現ステップＮ１と同一担当者である追加ステップＮ３に関して、識別子、ステップ名、担当者、ファイルリストを決定するが、この実施例４では、この追加ステップＮ３は、進捗度が１００でないドキュメントの入ったフォルダーを持つステップであり、現ステップの担当者が担当するものである。
【０１７５】
この場合のステップ識別子、ステップ名も、他のステップとの重複をさけることを目的として作成され、この実施例４では、現ステップのステップ識別子と現ステップのステップ名のそれぞれに、それぞれ“．”とｉの値を付け加えたものを、追加ステップＮ３のステップ識別子、追加ステップＮ３のステップ名とする。ここで、現ステップのステップ名は、ステップテーブルＳＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップのステップ識別子と等しいレコードにおける「ステップ名」の欄の値として求められるのは前述と同様である。
【０１７６】
また、この追加ステップＮ３の担当者は、現ステップのステップ識別子と等しいレコードにおける「担当者のユーザ名」の欄の値、すなわち現ステップ担当者と同じとする。さらに、予定終了時刻は、前記レコードにおける「予定終了時刻」の値を取得し、前述したように、実施例４については現ステップと同一担当者である追加ステップに関しては予定終了時刻を現ステップより１日先としているので、この値に対して一日加算した予定終了時刻とする。
【０１７７】
なお、この追加ステップＮ３に関するファイルリストは、まず、フォルダーテーブルＦＴの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップのステップ識別子と等しいレコードを取り出し、次に、これらのレコード中の「パス」の欄の値によりドキュメントテーブルＤＴを検索してレコードを取り出し、このうち、進捗度が１００でないレコードを特定し、これらのレコード中の「パス」の欄の値のリストとして求められる。この、進捗度が１００でないドキュメントのパスのリストを、現ステップファイルリストと呼ぶ。
【０１７８】
この実施例４においても、この処理２０８で作成された情報を元に、処理２０９で、ステップ追加処理を行なうが、その入力として、ワークフロー識別子、現ステップ識別子、次ステップ識別子、追加ステップ識別子、追加ステップ名、追加ステップ担当者、予定終了時刻、現ステップファイルリストが与えられる。ステップ追加処理の詳細は、図１０に示したものと同様である。
【０１７９】
その他の処理および判断は、実施例１の図８および図９のルーチン２００の内容とほぼ同様であるので、説明は省略する。
【０１８０】
次に、具体例を挙げて、この実施例４の場合の作業分割動作について、さらに説明する。
【０１８１】
この実施例４の場合の作業分割の概念図は、実施例１の図１１に示すものと同様になる。したがって、このワークフローの起動時のワークフローデータおよびユーザデータは、図１２に示したものと同じである。また、ステップ「設計」の実行時（ｒｕｎ）のデータは、図１３に示したものと同じものとなる。
【０１８２】
そして、作業分割が完了した時点では、ワークフローデータは、図１８に示すようなものとなる。なお、ユーザデータであるユーザテーブルＵＴについては、作業分割後であっても変更はないので、省略する。
【０１８３】
すなわち、図１８に示すように、ステップテーブルＳＴに対しては、追加されたステップ（ステップ２．１とステップ１．１）の情報が追加される。実行順序テーブルＯＴに対しては、追加ステップと現ステップおよび次ステップとの接続を示すエントリーが追加される。また、現ステップと次ステップとの接続を示すエントリーは削除される（実行順序テーブル調整）。
【０１８４】
フォルダーテーブルＦＤに対しては、まず、
（１０００  ２  文書Ａ  １００）
（１０００  ２  図面Ｂ  １０１）
というエントリーが追加される（フォルダー作成）。これが、上記の処理２０３の説明における元レコードに相当する。さらにステップ追加処理中のフォルダー調整において、
（１０００  １．１  文書Ａ  １００）
（１０００  ２．１  図面Ｂ  １０１）
というエントリーが追加され、元レコードの
（１０００  ２  文書Ａ  １００）
（１０００  ２  文書Ｂ  １０１）
は削除される。ドキュメントテーブルＤＴに対しては、フォルダー分割時の進捗度が反映される。これは、担当者により指定される場合などが考えられる。
【０１８５】
以上説明した、実施例４によれば、システムが自動的に、ワークフローの進捗度に応じて、作業分割して、作業の進捗を早めるようにすることができ、ワークフローの効率的な運用ができる。
【０１８６】
なお、以上は、システムにより、ドキュメントの属性である進捗度に基づいてフォルダーを分割するようにしたケースであるが、これ以外のケースも考えられる。
【０１８７】
例えば、ドキュメントの属性であるアクセス権に関して、現ステップ担当者がアクセス権を持つドキュメントは現ステップの担当者が引き続き処理し、アクセス権を持たないドキュメントは次ステップの担当者が処理を実行するようにフォルダー分割を指定する場合などについても同様の処理により、作業分割を行うことができる。
【０１８８】
この、ドキュメントの属性であるアクセス権に関して、現ステップ担当者がアクセス権を持つドキュメン卜は現ステップの担当者が引き続き処理し、アクセス権を持たないドキュメントは次ステップの担当者が処理を実行するようにフォルダー分割を指定するケースでは、前述した処理２０６においてファイルリストの決定は以下のように記述される。
【０１８９】
すなわち、追加ステップＮ４（現ステップ担当者がアクセス権を持たないドキュメントの入ったフォルダーを持つステップ）におけるファイルリストは、まず、フォルダーテーブルの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップ識別子と等しいレコードを取り出し、次に、これらのレコード中の「パス」の欄の値によりドキュメントテーブルを検索してレコードを取り出し、このうち、アクセス権に現ステップ担当者が含まれないレコードを特定し、これらのレコード中の「パス」の欄の値のリストとして求められる。
【０１９０】
ここで、現ステップ担当者のユーザ名は、ステップテーブルのカラム「ワークフロー識別子」と「ステップ識別子」の値が、それぞれワークフロー識別子、現ステップ識別子と等しいレコードにおけるカラム「担当者のユーザ名」の値として求められる。この、現ステップ担当者がアクセス権を持たないドキュメントのパスのリストは、前述した次ステップファイルリストとなる。
【０１９１】
そして、これらの情報をもとに、処理２０７で、前述の例と同様にして、ステップ追加処理が行われる。
【０１９２】
また、処理２０８においての追加ステップＮ３に関するファイルリストの決定は以下のように記述される。追加ステップＮ３（現ステップ担当者がアクセス権を持つドキュメントの入ったフォルダーを持つステップ）におけるファイルリストは、まず、フォルダーテーブルの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップ識別子と等しいレコードを取り出し、次に、これらのレコード中の「パス」の欄の値によりドキュメントテーブルを検索してレコードを取り出し、このうちアクセス権に現ステップ担当者が含まれるレコードを特定し、これらのレコード中の「パス」の欄の値のリストとして求められる。
【０１９３】
ここで、現ステップ担当者のユーザ名は、ステップテーブルの「ワークフロー識別子」と「ステップ識別子」の欄の値が、それぞれワークフロー識別子、現ステップ識別子と等しいレコードにおける「担当者のユーザ名」の欄の値として求められる。この、現ステップ担当者がアクセス権を持つドキュメントのパスのリストが、現ステップファイルリストである。
【０１９４】
この場合も、これらの情報をもとに、処理２０９で、ステップ追加処理が前述と同様にして行われる。
【図面の簡単な説明】
【０１９５】
【図１】この発明によるワークフローシステムの一実施の形態の要部の機能ブロック図である。
【図２】この発明によるワークフローシステムの一実施の形態の概要を示すブロック図である。
【図３】この発明によるワークフローシステムが適用されるネットワークの例を示す図である。
【図４】ワークフローデータの構造の例を示す図である。
【図５】ユーザデータの構造の例を示す図である。
【図６】この発明による作業分割方法を説明するための概念図である。
【図７】この発明によるワークフローシステムの一実施の形態の要部の処理のフローチャートを示す図である。
【図８】この発明によるワークフローシステムの一実施の形態の要部の処理のフローチャートの一部を示す図である。
【図９】この発明によるワークフローシステムの一実施の形態の要部の処理のフローチャートの続きを示す図である。
【図１０】図９の処理２０７および２０９の詳細な処理内容の一例のフローチャートを示す図である。
【図１１】実施例１の場合の作業分割方法を説明する概念図である。
【図１２】実施例１の場合の起動時のワークフローデータを示す図である。
【図１３】実施例１の場合のステップ「設計」の実行時のワークフローデータを示す図である。
【図１４】実施例１の場合の作業分割後のワークフローデータを示す図である。
【図１５】実施例３の場合の作業分割方法を説明する概念図である。
【図１６】実施例３の場合の作業分割後のワークフローデータを示す図である。
【図１７】実施例４の場合の作業分割処理を説明するためのフローチャートの一例を示す図である。
【図１８】実施例４の場合の作業分割後のワークフローデータを示す図である。
【図１９】グラフ構造で表したワークフローの一例を示す図である。
【図２０】グラフ構造で表したワークフローの他の例を示す図である。
【符号の説明】
【０１９６】
１０    システム部
１１    テンプレート管理機能部
１２    ルーティング機能部
１３    通知管理機能部
１４    進捗情報管理機能部
１５    ユーザ管理機能部
１５Ｍ  ユーザデータの記憶部
１６    参照情報管理機能部
１６Ｍ  パケット記憶部
１７    メンテナンス機能部
１７Ｍ  ワークフローデータの記憶部
２０    ユーザインターフェース部
２１    編集部
２２    通知部
２３    進捗管理部
２４    コントロール部
３１    ステップ状態管理部
３１Ｍ  ステップ状態の記憶部
３２    ルーティング処理部
３３    作業分割要求検知部
３４    作業分割処理部
３５    パケット送受部
【図１】
2005092896.tif 000003
【図２】
2005092896.tif 000004
【図３】
2005092896.tif 000005
【図４】
2005092896.tif 000006
【図５】
2005092896.tif 000007
【図６】
2005092896.tif 000008
【図７】
2005092896.tif 000009
【図８】
2005092896.tif 000010
【図９】
2005092896.tif 000011
【図１０】
2005092896.tif 000012
【図１１】
2005092896.tif 000013
【図１２】
2005092896.tif 000014
【図１３】
2005092896.tif 000015
【図１４】
2005092896.tif 000016
【図１５】
2005092896.tif 000017
【図１６】
2005092896.tif 000018
【図１７】
2005092896.tif 000019
【図１８】
2005092896.tif 000020
【図１９】
2005092896.tif 000021
【図２０】
2005092896.tif 000022