(57)【要約】【課題】文書に対する操作の履歴から、分岐を含むワークフローを生成する。【解決手段】履歴ツリー取得部５００は、操作結果の文書の管理ＩＤとその文書の操作前の管理ＩＤである親ＩＤとする文書の操作の履歴の派生関係を記憶した文書管理サーバから、派生関係群が表す木構造である履歴ツリーを取得する。履歴ツリー統合部５２０は、複数の履歴ツリーに含まれる各文書のノードのうち、その属性情報の少なくとも一部が同一であるノード同士を統合することで、業務における各工程の流れを表すグラフ構造を生成する。ワークフロー処理部５３０の分岐・結合検出部５３２は、履歴ツリー統合部５２０が生成したグラフ構造における分岐点を検出する。【選択図】図８
2010191709.tif 000002
【特許請求の範囲】
【請求項１】
第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報を記憶した記憶部であって、さらに、前記第１の文書に対する操作に関する属性を表す属性情報を前記第２の文書に関連づけて記憶した記憶部を参照し、
前記記憶部に記憶された派生関係群が表す複数の木構造を統合することで、文書を利用する業務の流れを表すグラフ構造を生成するグラフ構造生成部であって、前記複数の木構造のそれぞれに含まれる各文書に対応するノードを前記グラフ構造中のノードとして生成し、生成したノードのうち対応する文書の前記属性情報の少なくとも一部が同一であるノード同士を１つのノードとして統合し、前記グラフ構造中の各ノードについて、当該ノードを親とし当該ノードに対応する文書の前記木構造における子文書に対応するノードを子とする辺の情報を生成するグラフ構造生成部と、
前記グラフ構造において複数の子ノードを有するノードを業務の流れにおける分岐点として検出する検出部と、
を備えることを特徴とする業務管理支援装置。
【請求項２】
前記検出部は、さらに、前記グラフ構造において複数の親ノードを有するノードを業務の流れにおける結合点として検出する、
ことを特徴とする請求項１に記載の業務管理支援装置。
【請求項３】
前記属性情報は、前記操作に関する複数の属性を含み、
前記グラフ構造生成部は、前記グラフ構造中のノードとして生成したノードのうち、対応する文書の前記属性情報に含まれる前記複数の属性の中で着目する属性として予め設定された属性が同一であるノード同士を１つのノードとして統合する、
ことを特徴とする請求項１又は２に記載の業務管理支援装置。
【請求項４】
前記分岐点として検出されたノードの前記複数の子ノードのそれぞれに対応する文書が前記グラフ構造の生成において統合された前記複数の木構造のいずれに属するかに基づいて、前記分岐点における分岐の種類を判定する分岐種類判定部、をさらに備え、
前記分岐の種類は、予め設定された分岐条件に従って複数の分岐先のうち１つだけを選択する排他的な分岐と、複数の分岐先の選択を許容する分岐と、を含む、
ことを特徴とする請求項１から３のいずれか１項に記載の業務管理支援装置。
【請求項５】
前記属性情報は、前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成されたときには、その分岐先に進む条件をさらに含み、
前記分岐種類判定部が排他的な分岐であると判定した分岐点について、当該分岐点として検出されたノードに対応する文書の前記属性情報から前記条件を取得し、取得した条件を当該分岐点における分岐条件として設定する分岐条件設定部、
をさらに備えることを特徴とする請求項４に記載の業務管理支援装置。
【請求項６】
前記分岐種類判定部が排他的な分岐であると判定した分岐点について、当該分岐点として検出されたノードの前記複数の子ノードのうちの１つに対応する複数の文書の前記属性情報を比較した結果と、当該分岐点として検出されたノードの前記複数の子ノードそれぞれに対応する文書の前記属性情報を比較した結果と、に基づいて分岐条件を検出し、検出した分岐条件をその分岐点における分岐条件として設定する、
ことを特徴とする請求項４に記載の業務管理支援装置。
【請求項７】
前記記憶部は、さらに、前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成されたときには、当該分岐点の他の分岐先へ進む文書として生成された文書であって前記第２の文書を複製した文書に関連づけて、前記第２の文書が当該複製した文書の複製元文書である旨を表す情報を記憶し、
前記グラフ構造生成部は、統合の対象とする前記複数の木構造のうち、前記複製元文書に関連づけられた文書を含む木構造について、前記複製元文書を起点に前記複製元文書が属する木構造をこの木構造の根に該当する文書まで遡った経路上に含まれる派生関係を、前記複製元文書に関連づけられた文書に接続した新たな木構造を生成した上で、前記グラフ構造の生成を行う、
ことを特徴とする請求項１から６のいずれか１項に記載の業務管理支援装置。
【請求項８】
前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成されたときには、前記第２の文書の前記属性情報と前記第２の文書を複製した文書の属性情報とは、それぞれ、対応する分岐先へ進む条件を含む、
ことを特徴とする請求項７に記載の業務管理支援装置。
【請求項９】
前記属性情報は、前記第２の文書が業務の流れにおける結合点で生成された場合に前記第２の文書に関する結合の種類を表す情報をさらに含み、
前記結合点として検出されたノードに対応する文書の前記属性情報から前記結合の種類を取得し、取得した結合の種類を当該結合点における結合の種類として設定する結合種類設定部、
をさらに備えることを特徴とする請求項１から８のいずれか１項に記載の業務管理支援装置。
【請求項１０】
第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報を記憶した記憶部であって、さらに、前記第１の文書に対する操作に関する属性を表す属性情報を前記第２の文書に関連づけて記憶した記憶部を参照可能なコンピュータに、
前記記憶部に記憶された派生関係群が表す複数の木構造を統合することで、文書を利用する業務の流れを表すグラフ構造を生成するステップであって、前記複数の木構造のそれぞれに含まれる各文書に対応するノードを前記グラフ構造中のノードとして生成し、生成したノードのうち対応する文書の前記属性情報の少なくとも一部が同一であるノード同士を１つのノードとして統合し、前記グラフ構造中の各ノードについて、当該ノードを親とし当該ノードに対応する文書の前記木構造における子文書に対応するノードを子とする辺の情報を生成するステップと、
前記グラフ構造において複数の子ノードを有するノードを業務の流れにおける分岐点として検出するステップと、
を実行させることを特徴とする業務管理支援プログラム。
【請求項１１】
情報処理装置と文書管理装置と業務管理支援装置とを備え、
前記情報処理装置は、
第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報と、前記第１の文書に対する操作の属性を表す属性情報と、を前記文書管理装置に対して送信する送信部、
を備え、
前記文書管理装置は、
前記派生関係の情報と前記属性情報とを前記情報処理装置から受け取って、前記派生関係の情報を記憶部に登録するとともに、前記属性情報を前記第２の文書に関連づけて前記記憶部に登録する登録部と、
前記記憶部に記憶された派生関係群が表す複数の木構造を前記業務管理支援装置に対して出力する出力部と、
を備え、
前記業務管理支援装置は、
前記文書管理装置から出力された前記複数の木構造を統合することで、文書を利用する業務の流れを表すグラフ構造を生成するグラフ構造生成部であって、前記複数の木構造のそれぞれに含まれる各文書に対応するノードを前記グラフ構造中のノードとして生成し、生成したノードのうち対応する文書の前記属性情報の少なくとも一部が同一であるノード同士を１つのノードとして統合し、前記グラフ構造中の各ノードについて、当該ノードを親とし当該ノードに対応する文書の前記木構造における子文書に対応するノードを子とする辺の情報を生成するグラフ構造生成部と、
前記グラフ構造において複数の子ノードを有するノードを業務の流れにおける分岐点として検出する検出部と、
を備える、
ことを特徴とする業務管理支援システム。
【請求項１２】
第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報と、前記第１の文書に対する操作の属性を表す属性情報と、を文書管理装置に対して送信する送信部と、
前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成された場合に、前記第２の文書を複製して当該分岐点の他の分岐先へ進む文書を生成する生成部と、
を備え、
前記送信部は、前記生成部が生成した文書の複製元文書が前記第２の文書である旨を表す情報をさらに前記文書管理装置に対して送信する、
ことを特徴とする情報処理装置。
【請求項１３】
第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報と、前記第１の文書に対する操作の属性を表す属性情報と、を情報処理装置から受け取って、前記派生関係の情報を記憶部に登録するとともに、前記属性情報を前記第２の文書に関連づけて前記記憶部に登録する登録部であって、前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成されたときには、さらに、当該分岐点の他の分岐先へ進む文書として生成された文書であって前記第２の文書を複製した文書について、当該複製した文書の複製元文書が前記第２の文書である旨を表す情報を前記情報処理装置から受け取って当該複製した文書に関連づけて前記記憶部に登録する登録部と、
前記記憶部に記憶された派生関係群が表す複数の木構造のうち、前記複製元文書に関連づけられた文書を含む木構造について、前記複製元文書を起点に前記複製元文書が属する木構造をこの木構造の根に該当する文書まで遡った経路上に含まれる派生関係を、前記複製元文書に関連づけられた文書に接続した新たな木構造を生成する処理を行う処理部と、
を備えることを特徴とする文書管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務管理支援装置、業務管理支援プログラム、業務管理支援システム、情報処理装置、及び文書管理装置に関する。
【背景技術】
【０００２】
例えば企業や自治体などの組織における業務で用いられる文書は、その業務における１つの作業工程を実行する担当者から他の作業工程を実行する担当者へ受け渡されることがある。担当者間の文書の授受を伴う業務の流れは、「ワークフロー」と呼ばれることがあり、業務の流れにおける各作業工程は、「アクティビティ」と呼ばれることがある。ワークフローに従った業務の効率的な遂行のため、例えば、複数の担当者が関わるワークフローを予め定義しておき、そのワークフローに従って文書が授受されるように制御することで、業務の進捗状況などを管理することが行われている。
【０００３】
実際の業務の流れに適合したワークフローの定義を支援する技術として、例えば、特許文献１〜３に記載の技術がある。
【０００４】
特許文献１に記載の技術では、各処理の担当者は、自己の処理の成果物をフォルダに入れて、このフォルダを次の担当者に渡す。このフォルダは、送信元担当者ＩＤ及び送信先担当者ＩＤとともに、送信元担当者の端末から送信先担当者の端末へ送信される。特許文献１に記載のワークフローサーバは、ネットワークを介して上述のようなフォルダの授受を監視し、送信元担当者ＩＤと送信先担当者ＩＤとのペアを取得し、取得したペアに基づいて新規のワークフローを定義する。
【０００５】
特許文献２に記載のワークフロー支援システムは、要求されたタスクと当該要求タスクを実行するための部分タスクとの関係を規定したルールと、ワークフローにおいて遂行された各タスクの情報であるタスク履歴と、各タスク履歴間の接続情報と、を保持しておく。そして、保持されているルールに従わないタスクが起動された場合に、このタスクを含む新たなルールを、保持されているルール、タスク履歴、及び接続情報に基づいて自動合成する。
【０００６】
特許文献３には、ユーザのアクションを監視し、ユーザがどのアイテムに対してどのような作業を行ったかを示すアクション情報を記録しておき、記録されたアクション情報に基づいて、使用されたアイテム毎の情報に関するファイルを作成する業務支援システムが開示されている。この業務支援システムは、使用されたアイテム毎に、少なくとも他のアイテムとの関連性を表す情報を作成する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３４９２９００号明細書
【特許文献２】特開平１１−２５０１５３号公報
【特許文献３】特開２００２−２１５８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ワークフローにおいては、業務に関する条件によって文書の辿る経路が異なる場合がある。言い換えると、ワークフローは、業務に関する条件に従って異なる経路に分岐する場合がある。１つの文書について複数のユーザによる処理の履歴を記録し、この授受の履歴からワークフローを生成する技術では、当該文書に対して行われた処理の系列に対応する１つの経路を含むワークフローを生成することはできるが、ワークフローにおける分岐を検出することはできない。
【０００９】
本発明は、文書に対する操作の履歴から、分岐を含むワークフローを生成することを可能とする技術を提供することを目的の１つとする。
【課題を解決するための手段】
【００１０】
請求項１に係る発明は、第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報を記憶した記憶部であって、さらに、前記第１の文書に対する操作に関する属性を表す属性情報を前記第２の文書に関連づけて記憶した記憶部を参照し、前記記憶部に記憶された派生関係群が表す複数の木構造を統合することで、文書を利用する業務の流れを表すグラフ構造を生成するグラフ構造生成部であって、前記複数の木構造のそれぞれに含まれる各文書に対応するノードを前記グラフ構造中のノードとして生成し、生成したノードのうち対応する文書の前記属性情報の少なくとも一部が同一であるノード同士を１つのノードとして統合し、前記グラフ構造中の各ノードについて、当該ノードを親とし当該ノードに対応する文書の前記木構造における子文書に対応するノードを子とする辺の情報を生成するグラフ構造生成部と、前記グラフ構造において複数の子ノードを有するノードを業務の流れにおける分岐点として検出する検出部と、を備えることを特徴とする業務管理支援装置である。
【００１１】
請求項２に係る発明は、請求項１に係る発明において、前記検出部は、さらに、前記グラフ構造において複数の親ノードを有するノードを業務の流れにおける結合点として検出する。
【００１２】
請求項３に係る発明は、請求項１又は２に係る発明において、前記属性情報は、前記操作に関する複数の属性を含み、前記グラフ構造生成部は、前記グラフ構造中のノードとして生成したノードのうち、対応する文書の前記属性情報に含まれる前記複数の属性の中で着目する属性として予め設定された属性が同一であるノード同士を１つのノードとして統合する。
【００１３】
請求項４に係る発明は、請求項１から３のいずれか１項に係る発明において、前記分岐点として検出されたノードの前記複数の子ノードのそれぞれに対応する文書が前記グラフ構造の生成において統合された前記複数の木構造のいずれに属するかに基づいて、前記分岐点における分岐の種類を判定する分岐種類判定部、をさらに備え、前記分岐の種類は、予め設定された分岐条件に従って複数の分岐先のうち１つだけを選択する排他的な分岐と、複数の分岐先の選択を許容する分岐と、を含む。
【００１４】
請求項５に係る発明は、請求項４に係る発明において、前記属性情報は、前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成されたときには、その分岐先に進む条件をさらに含み、前記分岐種類判定部が排他的な分岐であると判定した分岐点について、当該分岐点として検出されたノードに対応する文書の前記属性情報から前記条件を取得し、取得した条件を当該分岐点における分岐条件として設定する分岐条件設定部、をさらに備える。
【００１５】
請求項６に係る発明は、請求項４に係る発明において、前記分岐種類判定部が排他的な分岐であると判定した分岐点について、当該分岐点として検出されたノードの前記複数の子ノードのうちの１つに対応する複数の文書の前記属性情報を比較した結果と、当該分岐点として検出されたノードの前記複数の子ノードそれぞれに対応する文書の前記属性情報を比較した結果と、に基づいて分岐条件を検出し、検出した分岐条件をその分岐点における分岐条件として設定する。
【００１６】
請求項７に係る発明は、請求項１から６のいずれか１項に係る発明において、前記記憶部は、さらに、前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成されたときには、当該分岐点の他の分岐先へ進む文書として生成された文書であって前記第２の文書を複製した文書に関連づけて、前記第２の文書が当該複製した文書の複製元文書である旨を表す情報を記憶し、前記グラフ構造生成部は、統合の対象とする前記複数の木構造のうち、前記複製元文書に関連づけられた文書を含む木構造について、前記複製元文書を起点に前記複製元文書が属する木構造をこの木構造の根に該当する文書まで遡った経路上に含まれる派生関係を、前記複製元文書に関連づけられた文書に接続した新たな木構造を生成した上で、前記グラフ構造の生成を行う。
【００１７】
請求項８に係る発明は、請求項７に係る発明において、前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成されたときには、前記第２の文書の前記属性情報と前記第２の文書を複製した文書の属性情報とは、それぞれ、対応する分岐先へ進む条件を含む。
【００１８】
請求項９に係る発明は、請求項１から８のいずれか１項に係る発明において、前記属性情報は、前記第２の文書が業務の流れにおける結合点で生成された場合に前記第２の文書に関する結合の種類を表す情報をさらに含み、前記結合点として検出されたノードに対応する文書の前記属性情報から前記結合の種類を取得し、取得した結合の種類を当該結合点における結合の種類として設定する結合種類設定部、をさらに備える。
【００１９】
請求項１０に係る発明は、第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報を記憶した記憶部であって、さらに、前記第１の文書に対する操作に関する属性を表す属性情報を前記第２の文書に関連づけて記憶した記憶部を参照可能なコンピュータに、前記記憶部に記憶された派生関係群が表す複数の木構造を統合することで、文書を利用する業務の流れを表すグラフ構造を生成するステップであって、前記複数の木構造のそれぞれに含まれる各文書に対応するノードを前記グラフ構造中のノードとして生成し、生成したノードのうち対応する文書の前記属性情報の少なくとも一部が同一であるノード同士を１つのノードとして統合し、前記グラフ構造中の各ノードについて、当該ノードを親とし当該ノードに対応する文書の前記木構造における子文書に対応するノードを子とする辺の情報を生成するステップと、前記グラフ構造において複数の子ノードを有するノードを業務の流れにおける分岐点として検出するステップと、を実行させることを特徴とする業務管理支援プログラムである。
【００２０】
請求項１１に係る発明は、情報処理装置と文書管理装置と業務管理支援装置とを備え、前記情報処理装置は、第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報と、前記第１の文書に対する操作の属性を表す属性情報と、を前記文書管理装置に対して送信する送信部、を備え、前記文書管理装置は、前記派生関係の情報と前記属性情報とを前記情報処理装置から受け取って、前記派生関係の情報を記憶部に登録するとともに、前記属性情報を前記第２の文書に関連づけて前記記憶部に登録する登録部と、前記記憶部に記憶された派生関係群が表す複数の木構造を前記業務管理支援装置に対して出力する出力部と、を備え、前記業務管理支援装置は、前記文書管理装置から出力された前記複数の木構造を統合することで、文書を利用する業務の流れを表すグラフ構造を生成するグラフ構造生成部であって、前記複数の木構造のそれぞれに含まれる各文書に対応するノードを前記グラフ構造中のノードとして生成し、生成したノードのうち対応する文書の前記属性情報の少なくとも一部が同一であるノード同士を１つのノードとして統合し、前記グラフ構造中の各ノードについて、当該ノードを親とし当該ノードに対応する文書の前記木構造における子文書に対応するノードを子とする辺の情報を生成するグラフ構造生成部と、前記グラフ構造において複数の子ノードを有するノードを業務の流れにおける分岐点として検出する検出部と、を備える、ことを特徴とする業務管理支援システムである。
【００２１】
請求項１２に係る発明は、第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報と、前記第１の文書に対する操作の属性を表す属性情報と、を文書管理装置に対して送信する送信部と、前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成された場合に、前記第２の文書を複製して当該分岐点の他の分岐先へ進む文書を生成する生成部と、を備え、前記送信部は、前記生成部が生成した文書の複製元文書が前記第２の文書である旨を表す情報をさらに前記文書管理装置に対して送信する、ことを特徴とする情報処理装置である。
【００２２】
請求項１３に係る発明は、第１の文書を親とし前記第１の文書に対する操作の結果として生成された第２の文書を子とする派生関係の情報と、前記第１の文書に対する操作の属性を表す属性情報と、を情報処理装置から受け取って、前記派生関係の情報を記憶部に登録するとともに、前記属性情報を前記第２の文書に関連づけて前記記憶部に登録する登録部であって、前記第２の文書が業務の流れにおける分岐点の分岐先のうちの１つへ進む文書として生成されたときには、さらに、当該分岐点の他の分岐先へ進む文書として生成された文書であって前記第２の文書を複製した文書について、当該複製した文書の複製元文書が前記第２の文書である旨を表す情報を前記情報処理装置から受け取って当該複製した文書に関連づけて前記記憶部に登録する登録部と、前記記憶部に記憶された派生関係群が表す複数の木構造のうち、前記複製元文書に関連づけられた文書を含む木構造について、前記複製元文書を起点に前記複製元文書が属する木構造をこの木構造の根に該当する文書まで遡った経路上に含まれる派生関係を、前記複製元文書に関連づけられた文書に接続した新たな木構造を生成する処理を行う処理部と、を備えることを特徴とする文書管理装置である。
【発明の効果】
【００２３】
請求項１、１０、又は１１に係る発明によると、文書に対する操作の履歴から、分岐を含む業務の流れを表すグラフ構造を生成できる。
【００２４】
請求項２に係る発明によると、業務の流れを表すグラフ構造中で、分岐した処理経路が結合する点を検出できる。
【００２５】
請求項３に係る発明によると、文書に対する操作に関する複数の属性のうち、業務の流れを表すグラフ構造の生成の際に用いる属性を設定できる。
【００２６】
請求項４に係る発明によると、業務の流れに含まれる分岐の種類を判定できる。
【００２７】
請求項５に係る発明によると、文書の属性情報に当該文書が所定の分岐先へ進む条件が含まれ、この条件を用いて、業務の流れに含まれる分岐の分岐条件を設定できる。
【００２８】
請求項６に係る発明によると、同じ分岐先に対応する複数の文書の属性情報を比較した結果と、異なる分岐先に対応する複数の文書の属性情報を比較した結果と、に基づいて、業務の流れに含まれる分岐の分岐条件を検出できる。
【００２９】
請求項７に係る発明によると、業務の流れに含まれる分岐における複数の分岐先のそれぞれに対応する経路を含むグラフ構造を生成できる。
【００３０】
請求項８に係る発明によると、文書の属性情報から、業務の流れに含まれる分岐における複数の分岐先のそれぞれへ進む条件を取得できる。
【００３１】
請求項９に係る発明によると、業務の流れを表すグラフ構造中で、分岐した処理経路が結合する結合点の種類を設定できる。
【００３２】
請求項１２又は１３に係る発明によると、業務の流れに含まれる分岐における複数の分岐先のそれぞれへ進む文書に対する操作の履歴を記録しておくことができる。
【図面の簡単な説明】
【００３３】
【図１】業務管理システムの概略構成の例を示すブロック図である。
【図２】クライアント端末の内部構成の例を示すブロック図である。
【図３】ＩＤ付き文書のデータ構造の例を模式的に示す図である。
【図４】文書管理サーバの内部構成の例を示すブロック図である。
【図５】派生関係ＤＢのデータ内容の例を示す図である。
【図６】図５に例示したデータ内容における管理ＩＤ群がなす木構造を図式化して表す図である。
【図７】分岐条件の設定の入力を受け付けるときにクライアント端末で表示される表示画面の例を示す図である。
【図８】業務管理サーバの内部構成の例を示す図である。
【図９】業務管理サーバが行う処理の手順の例を示すフローチャートである。
【図１０】派生関係ＤＢのデータ内容の他の例を示す図である。
【図１１】図５及び図１０に例示したデータ内容における管理ＩＤ群がなす木構造を図式化して表す図である。
【図１２】履歴ツリー統合処理の手順の例を示すフローチャートである。
【図１３】履歴ツリーを統合して生成されるワークフローの例を示す図である。
【図１４】図１３の例のワークフローにおける分岐点及び結合点にそれぞれ分岐ノード及び結合ノードを挿入した例を示す図である。
【図１５】分岐ノードの種類の例を示す図である。
【図１６】分岐種類判定処理の手順の例を示すフローチャートである。
【図１７】分岐種類判定処理の一部分の手順の例を示すフローチャートである。
【図１８】分岐種類判定処理の他の一部分の手順の例を示すフローチャートである。
【図１９】遷移テーブルの例を示す図である。
【図２０】分岐条件設定処理の手順の例を示すフローチャートである。
【図２１】結合ノードの種類の例を示す図である。
【図２２】分岐条件設定処理の手順の他の例を示すフローチャートである。
【図２３】図２２に例示する手順の分岐条件設定処理を説明するための図である。
【図２４】図２２に例示する手順の分岐条件設定処理を説明するための図である。
【図２５】各ノードにラベルが設定されたワークフローの例を示す図である。
【図２６】クライアント端末の内部構成の他の例を示すブロック図である。
【図２７】ワークフローの一例を示す図である。
【図２８】図２７に例示するワークフロー中の作業工程の内容を示す図である。
【図２９】図２７に例示するワークフロー中の分岐ノードの分岐条件及び結合ノードの種類を示す図である。
【図３０】業務の試行が行われた場合の派生関係ＤＢのデータ内容の例を示す図である。
【図３１】図３０に例示したデータ内容における管理ＩＤ群がなす木構造を図式化して表す図である。
【図３２】分岐条件の設定の入力を受け付けるときにクライアント端末で表示される表示画面の他の例を示す図である。
【図３３】業務管理サーバの内部構成の他の例を示す図である。
【図３４】分岐時新規登録ノード処理部が行う処理手順の例を示すフローチャートである。
【図３５】分岐時新規登録ノード処理部が生成する履歴ツリーの各ノードが有する情報の例を示す図である。
【図３６】図３５に例示した各ノードの情報を図式化して表す図である。
【図３７】コンピュータのハードウエア構成の一例を示す図である。
【発明を実施するための形態】
【００３４】
＜第１実施形態＞
図１は、第１実施形態における業務管理システムの概略構成の例を示すブロック図である。このシステムは、文書管理サーバ１０、クライアント端末２０−１，２０−２，・・・（以下、クライアント端末２０と総称する）、及び業務管理サーバ５０がネットワーク６０を介して互いに接続された構成を備える。
【００３５】
クライアント端末２０について図２を用いて説明する。クライアント端末２０は、ユーザが文書を操作するために用いる端末であり、パーソナルコンピュータ、デジタル複写機、スキャナ、及びＦＡＸ（ファクシミリ）装置などがその一例である。クライアント端末２０は、文書に対して実行された操作の結果として生じた文書を文書管理サーバ１０に登録する処理を行う。クライアント端末２０は、文書操作部２００及び登録処理部２１０を備える。
【００３６】
文書操作部２００は、文書に対する操作を実行する手段である。文書に対する操作には、例えば、文書の表示（ユーザから見れば「閲覧」）、編集、印刷出力、紙文書の読み取り、紙文書の複写、等がある。図２では、文書操作部２００を１つだけ示したが、それら個々の操作を別々の操作部（例えば、編集用のアプリケーション、読取制御用のアプリケーションなどといった別々のアプリケーション）が担当してもよい。例えば、文書操作部２００がワードプロセッサ等の電子文書を作成・編集するためのソフトウエアであれば、文書操作部２００は、ユーザの指示に応じて電子文書を表示したり、電子文書に編集を加えたりする。文書操作部２００は、文書に対して操作を行った場合、その操作の結果を文書管理サーバ１０へ登録することを指示するユーザからの登録指示に応じて、その操作の結果を表すＩＤ付き文書３００を出力する。
【００３７】
ＩＤ付き文書３００は、図３に示すように、メタ情報３１０と文書内容３２０を含んだ電子文書である。文書内容３２０は、文書操作部２００の操作の結果生成された文書の内容データである。文書操作部２００が電子文書を作成・編集するためのソフトウエアであれば、文書内容３２０はそのソフトウエアによる編集の結果生成される文書ファイルである。また、文書操作部２００が電子文書を印刷する装置であれば、文書内容３２０は、例えば、印刷される電子文書の内容データとすればよい。また、文書操作部２００が紙文書をスキャンする装置又は紙文書を複写する装置であれば、文書内容３２０は、例えば、その紙文書を読み取って得られる画像データとすればよい。
【００３８】
メタ情報３１０は、文書管理のための情報であり、管理ＩＤ３１２，親ＩＤ３１４，及びログ情報３１６を含む。
【００３９】
管理ＩＤ３１２は、当該ＩＤ付き文書３００自体の一意な識別情報である。親ＩＤ３１４は、当該ＩＤ付き文書３００の親のＩＤ付き文書の管理ＩＤである。すなわち、本実施形態では、あるＩＤ付き文書と、このＩＤ付き文書に対して操作を加えた結果得られる新たなＩＤ付き文書とを、親と子の関係として取り扱う。第１のＩＤ付き文書を操作して第２のＩＤ付き文書が得られた場合、第１のＩＤ付き文書は第２のＩＤ付き文書の親であり、第２のＩＤ付き文書は第１のＩＤ付き文書の子である。したがって、例えば、管理ＩＤ「Ａ」のＩＤ付き文書を文書操作部２００で操作して、その結果得られた新たなＩＤ付き文書の管理ＩＤが「Ｂ」である場合、後者のメタ情報３１０における管理ＩＤ３１２は「Ｂ」であり、親ＩＤ３１４は「Ａ」である。このような親子の関係を、以下では「（管理ＩＤの）派生関係」という。
【００４０】
なお、本システムに未登録の電子文書を新たに登録する操作を実行した場合や、未登録の紙文書をスキャン又は複写する操作を実行した場合（この場合、紙文書を読み取った画像を文書内容とするＩＤ付き文書が生成され、本システムに登録される）に生成されるＩＤ付き文書３００では、親ＩＤ３１４は空（すなわち、親は存在しない）となる。
【００４１】
ログ情報３１６は、当該ＩＤ付き文書が生成された際の操作についての、各種のログ項目の情報である。ログ項目には、例えばその操作が行われた日時、その操作の種別、その操作を指示したユーザ（操作者）などがあるが、もちろんこれに限るものではない。操作の種別には、例えば登録（本システムに新規の文書を登録すること）、閲覧、編集、更新（更新版の登録）、印刷、スキャン、紙文書の複写、等がある。例えば、ユーザが文書操作部２００を用いて第１のＩＤ付き文書に対して編集を加え、編集完了の指示を行った場合、その結果生成される第２のＩＤ付き文書のログ情報３１６は、編集完了の日時と、その編集を指示したユーザの識別情報と、操作の種別として「編集」と、を含んだものとなる。
【００４２】
ここでログ情報３１６に組み込まれる操作の種別は、ログ記録の目的での分類に従った種別であり、文書操作部２００が実行する操作の種別そのものでなくてもよい。例えば、文書操作部２００が実行する１つの操作の種別を、異なるログ記録目的に応じて異なる操作種別として区別してもよい。例えば、文書編集アプリケーションにおけるＩＤ付きの電子文書に対する「編集」という操作について、ユーザが操作メニュー上で「編集結果の文書として登録」を指示した場合はログ情報３１６に組み込まれる操作種別の値を「編集」とし、ユーザが操作メニュー上で「承認版として登録」を指示した場合はログ情報３１６に組み込まれる操作種別の値を「承認」としてよい。逆に、文書操作部２００が実行する複数の操作の種別を、同じ１つのログ記録目的の操作種別に対応づけてもよい。例えば、文書編集アプリケーション上でＩＤ付きの電子文書に編集を加え操作メニュー上で「承認版として登録」を指示した場合も、スキャナで管理ＩＤ付きの紙文書を読み取り読取制御用アプリケーションの操作メニュー上で「読み取った文書を承認版として登録」を指示した場合も、ログ情報３１６に組み込まれる操作種別の値は「承認」としてよい。
【００４３】
また、本実施形態の例では、ＩＤ付き文書３００のログ情報３１６に組み込まれる操作種別の値は、そのＩＤ付き文書３００に関する業務における１つの作業工程に対応するものとする。言い換えると、作業工程の完了の前にＩＤ付き文書に対して閲覧や編集などの操作が実行されても、これらの操作の結果のＩＤ付き文書は生成されず、文書管理サーバ１０に登録されることもない。
【００４４】
例えば、ユーザは、あるＩＤ付き文書に対して操作を実行し、そのＩＤ付き文書に関して自分が担当する作業工程が完了したときに、その作業工程に対応する操作種別の値を文書編集アプリケーションの操作メニュー上で選択した上で、操作結果のＩＤ付き文書の文書管理サーバ１０への登録を指示する。この指示に応じて、作業工程の完了時の操作の結果を表すＩＤ付き文書が文書操作部２００により生成されて出力され、出力されたＩＤ付き文書が登録処理部２１０により文書管理サーバ１０に登録される。
【００４５】
また例えば、各ユーザが自らの担当の作業工程の操作を行ったＩＤ付き文書を次の作業工程の担当者であるユーザに対してＦＡＸで送信する場合、その送信に用いられるＦＡＸ装置に文書操作部２００及び登録処理部２１０を実現しておいてもよい。ユーザは、例えば、ＩＤ付き文書をＦＡＸ送信するときに、ＦＡＸ装置に実現された文書操作部２００を用いて、自分の担当の作業工程に対応する操作種別の値を指定する。ＦＡＸ装置に実現された文書操作部２００は、例えば、ＦＡＸ送信の対象のＩＤ付き文書を読み取り、読み取ったＩＤ付き文書の管理ＩＤを親ＩＤとし、読み取ったＩＤ付き文書と同じ文書内容を有し、かつユーザが指定した操作種別の値を有する新たなＩＤ付き文書を生成する。この新たなＩＤ付き文書をユーザにより指定された送信先にＦＡＸ送信し、文書管理サーバ１０に登録することで、完了した作業工程に対応するＩＤ付き文書について、次の作業工程の担当者に対する受け渡し及び文書管理サーバ１０への登録が行われる。
【００４６】
図２の説明に戻り、文書操作部２００は、操作結果として上述のようなＩＤ付き文書３００を作成するために、ＩＤ割り当て部２０２及び派生関係組込部２０４を備える。ＩＤ割り当て部２０２は、操作結果のＩＤ付き文書３００に一意な管理ＩＤを付与する手段である。管理ＩＤは、少なくとも本システム内で一意な識別情報である必要がある。例えば、操作の結果生成するＩＤ付き文書３００（ただし管理ＩＤ３１２を除いたもの）のハッシュ値を求め、このハッシュ値をその文書３００のＩＤ付き文書とすればよい。ハッシュ関数としてSHA-256（SHA-256はNISTがFIPS180-2で定めた256ビットのハッシュ値を持つ暗号学的ハッシュ関数である）などのような耐衝突性を持つ暗号学的ハッシュ関数を用いれば、実用上十分な一意性を持つ管理ＩＤを生成することができる。もちろん、システム内で一意な管理ＩＤを各クライアント端末２０で生成する方法は、これに限らない。管理ＩＤを、クライアント端末２０固有の識別情報を含むものとすれば、システム内で一意な管理ＩＤを各クライアント端末２０で生成することができる。
【００４７】
派生関係組込部２０４は、操作結果の文書に対しＩＤ割り当て部２０２が割り当てた新たな管理ＩＤ３１２と、その操作の元になった親文書の管理ＩＤである親ＩＤ３１４（新規登録の場合は、親ＩＤは無し）と、その操作についてのログ情報３１６と、を含むメタ情報３１０を生成する。ここで、派生関係組込部２０４は、文書操作部２００が実行する個々の操作の種別が、ログ記録目的上の操作種別のどれに対応するかを表す対応関係の情報を保持しており、この情報を用いることでログ情報３１６に組み込む操作種別の値を求める。そして、派生関係組込部２０４は、そのメタ情報３１０を操作結果の文書内容に付加することにより、操作後のＩＤ付き文書３００を生成して出力する。
【００４８】
文書操作部２００がアプリケーションソフトウエアである場合、ＩＤ割り当て部２０２及び派生関係組込部２０４は、そのソフトウエアに対して追加される、いわゆるプラグイン(plug-in)プログラムとして実現してもよい。
【００４９】
登録処理部２１０は、文書操作部２００が出力したＩＤ付き文書３００を文書管理サーバ１０に登録するための処理を実行する。このように各クライアント端末２０が、自ら実行した操作の結果であるＩＤ付き文書３００を文書管理サーバ１０に登録することにより、文書管理サーバ１０は各ＩＤ付き文書３００間の派生関係を把握することができる。
【００５０】
文書操作部２００が操作の結果出力するＩＤ付き文書３００は、通常の文書ファイルと同様、電子的にコピーしたり、電子メールに添付するなどの方法で他の人宛に送信したりすることができる。電子メール送信用のソフトウエアは、この例では本システムに準拠していないので、この送信操作はＩＤ付き文書には反映されず、したがって文書管理サーバ１０にも記録されない。他の人からＩＤ付き文書３００を受け取った人が、自分のクライアント端末２０の文書操作部２００を用いてそのＩＤ付き文書３００を操作すると、その操作に応じて新たな管理ＩＤを付与されたＩＤ付き文書が生成されることになる。
【００５１】
また、文書操作部２００が電子文書を印刷する場合、管理ＩＤを生成し、その電子文書の印刷結果にその管理ＩＤを埋め込んでもよい。管理ＩＤの埋め込みは、例えば電子文書の印刷画像に、管理ＩＤを示すコード画像を重畳する等の方法で行うことができる。また、用紙がＲＦＩＤ(Radio Frequency Identifier)タグを備えている場合、そのＲＦＩＤタグに管理ＩＤを書き込んでもよい。このように印刷を行った場合、文書操作部２００は、その管理ＩＤや操作種別「印刷」等のメタ情報を含んだＩＤ付き文書を文書管理サーバ１０に登録する。なお、ＩＤ付き文書を印刷した場合には、そのＩＤ付き文書の管理ＩＤを親ＩＤ３１４として含んだＩＤ付き文書が生成される。印刷操作に対応するＩＤ付き文書には、印刷された画像を示すページ記述言語データやビットマップ画像データをなどの印刷データ、又は印刷された文書ファイルを、文書内容３２０として組み込んでもよい。
【００５２】
また、管理ＩＤが埋め込まれた紙文書を文書操作部２００が読み取った場合、文書操作部２００は、その読み取り操作に対して新たな管理ＩＤを付与し、読み取り結果の画像を文書内容３２０として含んだＩＤ付き文書を生成して文書管理サーバ１０に登録する。このＩＤ付き文書の親ＩＤ３１４には、紙文書から読み取った管理ＩＤがセットされる。管理ＩＤが埋め込まれた紙文書の複写の際には、上述した読み取り時と印刷時の処理が実行される。また、管理ＩＤが埋め込まれた紙文書のＦＡＸ送信の際には、例えば、受信側のＦＡＸ装置で上述した読み取り時の処理が実行され、送信側のＦＡＸ装置で管理ＩＤの埋め込みを伴う上述の印刷処理が実行される。
【００５３】
次に、文書管理サーバ１０について説明する。文書管理サーバ１０は、システム内の複数のクライアント端末２０から送られてくるＩＤ付き文書３００を蓄積し、蓄積した情報に基づきユーザに各種のサービスを提供する。図４に示すように、文書管理サーバ１０は、文書ＤＢ１００、派生関係ＤＢ１１０、文書登録部１３０、及び要求処理部１４０を備える。
【００５４】
文書ＤＢ１００は、クライアント端末２０から送られてきたＩＤ付き文書３００のうちの文書内容３２０を格納するデータベースである。文書ＤＢ１００に格納された各文書内容３２０は、一意な内容ＩＤにより管理してもよい。内容ＩＤとしては、例えば当該文書内容の暗号学的ハッシュ関数によるハッシュ値を用いてもよいが、これに限定されるものではない。クライアント端末２０が内容ＩＤを付与してもよく、この場合、内容ＩＤをメタ情報３１０に組み込んでもよい。また、内容ＩＤの代わりに、その文書内容３２０を、当該文書内容に対応するＩＤ付き文書３００の管理ＩＤと対応づけて文書ＤＢ１００に格納してもよい。
【００５５】
文書登録部１３０は、クライアント端末２０から受信したＩＤ付き文書の中の文書内容を文書ＤＢ１００に、メタ情報を派生関係ＤＢ１１０に、それぞれ登録する。そのうち、メタ情報の登録を担当するのが派生関係登録部１３２である。
【００５６】
派生関係ＤＢ１１０は、そのようなＩＤ付き文書３００のうち、派生関係の情報を主としたメタ情報を蓄積するデータベースである。図５に、派生関係ＤＢ１１０のデータ内容の一例を示す。図５に示した表における１行の情報が、１つのＩＤ付き文書３００に対応するメタ情報レコードである。
【００５７】
図５の例の表では、各ＩＤ付き文書３００の管理ＩＤに対応づけて、ツリーＩＤ、親ＩＤ、操作種別、操作者、役割、操作日時、ファイル名、物品種別、分岐条件、及び結合種類の各項目が登録されている。このうち、ツリーＩＤ以外の項目の値は、クライアント端末２０から文書管理サーバ１０に対して送信されるＩＤ付き文書３００中に含まれる。ツリーＩＤは、文書管理サーバ１０が生成して各管理ＩＤに対応づけて派生関係ＤＢ１１０に登録する。派生関係ＤＢ１１０内の管理ＩＤの派生関係は、複数の「登録」操作をそれぞれの根とする複数の独立した木構造を表す。ツリーＩＤは、この複数の木構造（ツリー）を識別する識別情報である。ＩＤ付き文書３００から値が取得される項目のうち、管理ＩＤ、親ＩＤ、操作種別、操作者、及び操作日時については既に説明した。「役割」は、対応する操作者の業務上の役割を表す。「ファイル名」は、ＩＤ付き文書３００の電子文書ファイルの名称を表す。なお、本例では、ファイル名の項目には、電子文書ファイルの名称を表す文字列のうち、その文書の種類（各種の依頼書、申請書など）を表す部分が登録される。図５に例示する各管理ＩＤのＩＤ付き文書のファイル名は「見積依頼書」であり、各ＩＤ付き文書が物品の見積依頼に係る業務において用いられる文書であることがわかる。「物品種別」は、見積依頼書で見積の対象となる物品の種別である。これは、見積依頼書のＩＤ付き文書を（新規）登録する操作者が文書操作部２００を用いて入力する。「分岐条件」及び「結合種類」の各項目の値は、後述の業務管理サーバ５０においてワークフローを生成するときに用いられる。分岐条件は、ワークフローで生じる分岐処理において、ある分岐先に進む条件を表す。結合種類は、ワークフローで分岐処理が行われ、各分岐先における一連の処理のあとに１つの作業工程が行われる（つまり、ワークフローの処理経路が結合する）ときの、結合の態様を表す。分岐条件及び結合種類についての詳細は後述する。
【００５８】
なお、図５に例示したメタ情報の項目は一例に過ぎない。例えば、ＩＤ付き文書が用いられる業務の内容に応じて、図５に示す項目の他の項目を追加してもよい。あるいは、管理目的上必要なければ、図５の例の項目の一部を省略してもよい。
【００５９】
また、図５は派生関係ＤＢ１１０が管理するデータを内容の観点から表現したものにすぎず、具体的な表現形式或いはデータベース形式を規定するものではない。例えば、派生関係ＤＢ１１０は、一般的なリレーショナルデータベースとして構築することもできるし、管理ＩＤを除くメタ情報を記述したＸＭＬ(eXtensible Markup Language)文書を、管理ＩＤをキーとして登録したデータベースとして構築することもできる。
【００６０】
図５に示した派生関係ＤＢ１１０のデータ内容は、図６のような木構造を成す。これは、管理ＩＤをノードとし、管理ＩＤ間の親子関係をエッジとする木構造である。以下の説明では、派生関係ＤＢ１１０内の情報が構成する木構造を履歴ツリーとも呼ぶ。
【００６１】
図５及び図６の例は、物品購入の費用の見積に関する業務における文書の操作の履歴の例を示す。文書管理サーバ１０へのＩＤ付き文書の登録を指示する各ユーザは、少なくとも、業務においてＩＤ付き文書に対して自分が行うべき作業の内容（操作種別）と自分の次の作業工程の担当者（操作結果のＩＤ付き文書を渡す相手）とを把握している。しかしながら、各ユーザは、必ずしも業務の全体の流れを把握しているとは限らない。
【００６２】
図５及び図６の例が示す文書の履歴を時系列順に説明すると、以下のようになる。
【００６３】
まず、文書管理サーバ１０に登録されていなかった文書の「登録」操作がuserAのクライアント端末で実行される。「登録」操作は、文書管理サーバ１０に未登録の文書（すなわち、管理ＩＤを有していない文書）を当該サーバ１０に登録するための操作である。また、userAは、この操作のときに、自己の役割である「開発」及び見積の対象の物品の種別である「文房具」を設定する。さらに、userAは、分岐条件を「${物品種別}=”文房具”」に設定する。これは、「物品種別の項目の値が”文房具”である」ことを意味する。本例では、新規登録された見積依頼書に対して次の作業工程を行う担当者は、物品種別の値によって異なる。次の作業工程の担当者の候補が複数あるということは、その業務を表すワークフローにおいて分岐が生じていることを意味する。このような場合、ユーザは、次の作業工程の担当者を決定する条件、つまり、業務の処理経路の分岐先を決定する条件を分岐条件として登録する。図５の例で、新規登録された見積依頼書に対して次の作業工程の操作を実行する担当者は、物品種別の値によって決定されるので、userAは、「物品種別の項目の値が”文房具”である」ことを分岐条件として設定する。
【００６４】
図７に、分岐条件の設定のためにクライアント端末２０で表示される表示画面の例を示す。図７の例の表示画面は、例えば、文書操作部２００を用いてユーザが分岐条件の設定を望む旨の指示を入力した場合に、クライアント端末２０の表示装置（図示しない）に表示される。図７の例では、破線で囲んだフィールド４０において、分岐先を決定する属性項目（派生関係ＤＢ１１０中のレコードの各項目）の指定を受け付ける。また、破線で囲んだフィールド４２では、フィールド４０で指定された属性項目の値に含まれる文字列の指定を受け付ける。さらに、破線で囲んだフィールド４４では、フィールド４０で指定された属性項目とフィールド４２で指定された文字列との間の関係の設定を受け付ける。ユーザが各フィールド４０，４２，４４の値を設定し、設定ボタン４６をマウスなどの入力装置（図示しない）によって押下すると、フィールド４０，４２，４４の値で定められる分岐条件が処理対象のＩＤ付き文書に設定される。
【００６５】
再び図５及び図６を参照し、userAによる以上の操作に応じて、管理ＩＤが"Doc1"、親ＩＤが空、操作種別が「登録」であるメタ情報と、その文書の文書内容とを含むＩＤ付き文書"Doc1"がuserAのクライアント端末から文書管理サーバ１０に送られる。これに応じ、文書管理サーバ１０は、そのＩＤ付き文書"Doc1"中の文書内容を文書ＤＢ１００へ、メタ情報を派生関係ＤＢ１１０にそれぞれ登録する。このとき、文書管理サーバ１０の派生関係登録部１３２は、ＩＤ付き文書"Doc1"の親ＩＤを確認し、その値が空であることから、管理ＩＤ"Doc1"が履歴ツリーの根ノードに対応すると判断する。そして、管理ＩＤ"Doc1"を根ノードとする履歴ツリーのツリーＩＤ"Tree0"を新たに生成し、派生関係ＤＢ１１０の管理ＩＤ"Doc1"のレコードのツリーＩＤの項目の値として登録する。
【００６６】
その後、userAは、登録したＩＤ付き文書"Doc1"を、例えば、電子メールにそのＩＤ付き文書を添付して送信することで、文房具の購買の担当者であるユーザuserBに渡す。文書"Doc1"を受け取ったuserBは、自分のクライアント端末２０の文書操作部２００でＩＤ付き文書"Doc1"に対して編集を加える。例えば、文書"Doc1"に文房具の見積の内容を記入する。userBは、文書"Doc1"への編集が完了すると、文書操作部２００を用いて、その操作結果の文書の文書管理サーバ１０への登録をクライアント端末２０に指示する。この指示に応じて、文書操作部２００は、userBによる編集操作の結果としてＩＤ付き文書"Doc2"を生成し、登録処理部２１０によりＩＤ付き文書"Doc2"が文書管理サーバ１０に登録される。このとき、文書管理サーバ１０は、管理ＩＤ"Doc2"のツリーＩＤとして、ＩＤ付き文書"Doc2"の親ＩＤ"Doc1"に関連づけられたツリーＩＤ"Tree0"を登録する。ＩＤ付き文書"Doc2"のメタ情報における管理ＩＤは"Doc2"であり親ＩＤは"Doc1"である。また操作者はuserBであり、操作種別は「編集」である。また、userBは、自己の「役割」として「文房具購買」を入力し、この役割の値「文房具購買」がログ情報に組み込まれる。また、見積依頼書に係る本例の業務において、見積依頼書を編集した結果の文書は、その見積依頼書を新規登録したユーザに返送されるものとする。よって、userBの操作結果の文書に関しワークフローの分岐は生じない。したがって、ＩＤ付き文書"Doc2"に対する分岐条件の設定は行われない。
【００６７】
なお、この操作の前にuserBのクライアント端末２０内にあったＩＤ付き文書"Doc1"は、この操作に伴い、派生関係組込部２０４によりＩＤ付き文書"Doc2"に置き換えられる。この置き換え処理では、派生関係組込部２０４は、元のＩＤ付き文書"Doc1"のうち、メタ情報３１０の管理ＩＤ３１２を新たに発行したＩＤ"Doc2"へ変更すると共に、元の文書"Doc1"の管理ＩＤ"Doc1"を親ＩＤ３１４の値にセットする。また、派生関係組込部２０４は、ログ情報３１６中の操作種別の値を今回の操作の種別である「編集」に変更し、操作時刻の値をその閲覧の日時に変更し、操作者の値をuserBに変更し、役割の値を「文房具購買」に変更する。また、文書内容を編集後の文書内容とする。なお、ファイル名及び物品種別の各値「見積依頼書」及び「文房具」は変更されない。
【００６８】
このようにＩＤ付き文書"Doc1"は、編集されて登録指示がなされると、編集後のＩＤ付き文書"Doc2"に置き換えられる。したがって、その置き換えの後は、ＩＤ付き文書"Doc1"自体はそのクライアント端末２０には存在せず、その代わりにＩＤ付き文書"Doc2"が存在することとなる。
【００６９】
次に、userBは、電子メールなどによって、ＩＤ付き文書"Doc2"をuserAに渡す。userAは、自己のクライアント端末２０において、文書"Doc2"を閲覧してその文書内容を確認し、文書操作部２００を用いて当該閲覧操作の結果の文書の文書管理サーバ１０への登録を指示する。このとき、userAは、自己の役割「開発」を入力する。この操作に応じて、新たな管理ＩＤ"Doc3"のＩＤ付き文書が生成され、操作前のＩＤ付き文書"Doc2"と置き換えられる。この置き換え処理では、派生関係組込部２０４は、元のＩＤ付き文書"Doc2"のメタ情報のうち、管理ＩＤを"Doc3"に変更すると共に、親ＩＤの値を元の文書の管理ＩＤ"Doc2"に設定する。そして、操作種別を「閲覧」、操作者を「userA」、役割を「開発」に書き換える。操作日時には当該閲覧操作の日時が設定される。さらに、派生関係組込部２０４は、userAが設定した結合種類の項目の値「OR-Join」をメタ情報に設定する。userAは、見積依頼書の物品種別によって異なる相手から記入済みの見積依頼書を受け取ることがある。これは、見積依頼書に関する業務のワークフローにおいて、分岐の後の複数の処理経路の結合が生じていることを意味する。このようなワークフローの結合が生じる時点での作業工程を担当するユーザは、ＩＤ付き文書に対する操作結果のＩＤ付き文書について、ワークフローにおける結合の態様を表す結合種類を設定する。図５の例では、文書"Doc3"に対し、結合種類は、「OR-Join」に設定される。「OR-Join」は、ワークフローの実行時に複数の分岐のいずれかから１つだけ入力（文書）を受け付けて、その入力を通過させて次の作業工程へ進めることを意味する。クライアント端末２０で生成されたＩＤ付き文書"Doc3"は、登録処理部２１０により文書管理サーバ１０に登録される。なお、派生関係ＤＢ１１０において、管理ＩＤ"Doc3"のツリーＩＤは、親ＩＤ"Doc2"のツリーＩＤと同じ"Tree0"に設定される。
【００７０】
その後、userAは、見積依頼書の内容を承認する担当者であるuserCに対し、電子メールなどによってＩＤ付き文書"Doc3"を渡す。userCは、クライアント端末２０の文書操作部２００を用いて、ＩＤ付き文書"Doc3"の文書内容、つまり、文房具についての見積の内容、を確認した上で、例えば、電子承認印を押印し、操作メニュー上で「承認版として登録」を指示する。この操作に応じて、新たなＩＤ付き文書"Doc4"が生成されて文書管理サーバ１０に登録される。ＩＤ付き文書"Doc4"のメタ情報の管理ＩＤは"Doc4"、親ＩＤは"Doc3"に設定される。また、操作種別は「承認」、操作者は「userC」、役割はuserCが入力した「開発管理」に設定される。また、文書管理サーバ１０は、管理ＩＤ"Doc4"のツリーＩＤとして、その親ＩＤ"Doc3"のツリーＩＤと同じ"Tree0"を設定する。
【００７１】
さらに、userCは、承認操作の結果のＩＤ付き文書"Doc4"をuserAに返す。userAは、クライアント端末２０において文書"Doc4"を閲覧して、見積の内容が承認されたことを確認し、見積依頼書に関する業務を終了する。そして、文書操作部２００を用いて、この業務完了時の文書"Doc4"を複製し、例えば、複製結果の文書を予め定められた格納位置に格納する操作を行う。この操作の結果、管理ＩＤ"Doc5"、親ＩＤ"Doc4"、操作種別「複製」、操作者「userA」、役割「開発」である新たなＩＤ付き文書"Doc5"が生成されて文書管理サーバ１０に登録される。なお、複製結果の文書の格納位置は、例えば、承認後の見積依頼書の保存場所として予め定められたファイル共有サーバ（図示しない）中の格納位置などであってよい。
【００７２】
図５及び図６は、この時点での派生関係ＤＢ１１０内の、"Doc1"から派生する文書あるいは操作の様子を示している。なお、以上の説明では、ユーザの役割は、各ユーザがクライアント端末２０において文書の登録指示を行う度に自ら入力する。他の処理の例では、各ユーザの役割を記述した設定ファイルをクライアント端末２０に保持させておき、文書操作部２００は、ＩＤ付き文書の生成の際に、この設定ファイルを参照して役割の項目の値をログ情報に組み込んでもよい。あるいは、クライアント端末２０は、各ユーザの役割を記憶したデータベース（図示しない）にアクセスして、文書の操作者であるユーザの役割を取得してもよい。
【００７３】
以上、派生関係ＤＢ１１０のデータ内容を例に取り、本システムにおける文書操作の履歴情報の登録の様子を説明した。
【００７４】
図４の説明に戻り、要求処理部１４０は、クライアント端末２０又は業務管理サーバ５０からのサービス要求に応じて、派生関係ＤＢ１１０を用いたサービスを提供する。例えば、管理ＩＤを含むサービス要求をクライアント端末２０から受けた場合に、サービス要求中の管理ＩＤに関連する文書についてのログ情報を提供する。例えば、サービス要求中の管理ＩＤの来歴、すなわち始祖からその管理ＩＤまでに文書が経てきた操作の履歴（例えば誰がいつどんな操作をしたのかを示す情報のリスト）を表示するサービスを提供したり、サービス要求中の管理ＩＤが生成された後に文書に対して行われた操作の履歴を表示したりする。また例えば、業務管理サーバ５０から、特定の検索条件を含むサービス要求を受けた場合に、要求処理部１４０は、サービス要求中の検索条件を満たす文書についてのログ情報を提供することもある。例えば、特定のファイル名を有する文書や、ある時間内の操作日時を有する文書を派生関係ＤＢ１１０から検索し、検索結果の文書についてのログ情報を業務管理サーバ５０に提供することがある。
【００７５】
次に、図８を参照し、業務管理サーバ５０について説明する。業務管理サーバ５０は、文書管理サーバ１０の派生関係ＤＢ１１０を参照し、ＩＤ付き文書３００が用いられる業務の流れを管理する。業務管理サーバ５０の機能の一部は、本発明の各種の実施形態の業務管理支援装置として機能する。業務管理サーバ５０は、履歴ツリー取得部５００、履歴ツリー統合部５２０、ワークフロー処理部５３０、及びワークフローＤＢ５４０を備える。
【００７６】
履歴ツリー取得部５００は、文書管理サーバ１０の派生関係ＤＢ１１０から履歴ツリーを取得する。ここで、「履歴ツリーの取得」とは、派生関係ＤＢ１１０において同じツリーＩＤを含むすべてのレコードを取得することを意味する。例えば、履歴ツリー取得部５００は、文書管理サーバ１０に対して、特定の検索条件を満たす履歴ツリーを提供することを要求し、それに応じて文書管理サーバ１０から送信される履歴ツリー（つまり、当該履歴ツリーに属する管理ＩＤのレコード）を受信する。履歴ツリーの検索条件は、例えば、特定のファイル名を有する文書を含む履歴ツリーを検索する条件であってよい。履歴ツリーの検索条件は、例えば、システムの管理者などにより、図示しない入力装置を介して指定される。
【００７７】
履歴ツリー統合部５２０は、複数の履歴ツリーを統合して、その業務の流れを表すワークフローに対応する１つのグラフ構造を生成する。統合元の複数の履歴ツリーに含まれる各ノードは、ワークフローに対応するグラフ構造に含まれるノードのうちのいずれかに対応する。また、このグラフ構造は、統合元の履歴ツリーにおけるＩＤ付き文書（ノード）間の親子関係を保持した有向グラフとなる。なお、以下の説明において、「ワークフロー」の用語は、履歴ツリー統合部５２０が生成するグラフ構造を指すこともある。
【００７８】
ワークフロー処理部５３０は、履歴ツリー統合部５２０が生成したワークフローに対する処理を行う。ワークフロー処理部５３０は、分岐・結合検出部５３２、分岐種類判定部５３４、分岐条件設定部５３６、及び結合種類設定部５３８を備える。
【００７９】
分岐・結合検出部５３２は、ワークフローにおける分岐点及び結合点を検出する。
【００８０】
分岐種類判定部５３４は、分岐・結合検出部５３２で検出された分岐点のそれぞれについて、その分岐の種類（態様）を判定する。分岐の種類には、例えば、ワークフローの実行時に分岐条件に従って複数の分岐先のいずれか１つの処理経路のみが実行される排他的な分岐（OR-Split）、複数の分岐先のすべての処理経路が実行される並行分岐（AND-Split）、複数の分岐先の処理経路の実行を許容する分岐（Multiple Choice）、などがある。
【００８１】
分岐条件設定部５３６は、分岐種類判定部５３４で排他的な分岐であると判定された分岐点に対して、統合元の履歴ツリー中のノードに設定された分岐条件に基づいて分岐条件を設定する。
【００８２】
結合種類設定部５３８は、統合元の履歴ツリー中のノードに設定された結合種類に基づいて、分岐・結合検出部５３２で検出された結合点のそれぞれの種類を設定する。
【００８３】
ワークフローＤＢ５４０は、ワークフロー処理部５３０による処理の結果のワークフローに関する情報を記憶するデータベースである。
【００８４】
以下、業務管理サーバ５０が行う処理の例を説明する。
【００８５】
図９に、複数の履歴ツリーを統合してワークフローを生成するときの業務管理サーバ５０の処理手順の例を示す。図９を参照し、まず、履歴ツリー取得部５００は、文書管理サーバ１０に対し、特定の条件を満たす履歴ツリーの提供を要求し、その要求に応じて文書管理サーバ１０から送信される履歴ツリーを取得する（ステップＳ１０）。ステップＳ１０で取得される履歴ツリーは、ワークフローの生成の材料となる。
【００８６】
説明のための具体例として、以下では、ステップＳ１０で、「ファイル名が「見積依頼書」である」文書を含む履歴ツリーの提供を履歴ツリー取得部５００が文書管理サーバ１０に対して行ったとする。また、文書管理サーバ１０の派生関係ＤＢ１１０には、図５の例のデータ内容に加えて、図１０に例示するデータ内容が登録されているとする。図１０の例の表において、管理ＩＤ"Doc11"〜"Doc15"までの文書は、ツリーＩＤ"Tree1"の履歴ツリーに含まれる。図１０の例の表の管理ＩＤ"Doc11"〜"Doc15"のレコードは、コンピュータの見積依頼書であるＩＤ付き文書"Doc11"がuserHにより新規登録され、その文書"Doc11"に対してuserIが編集操作を行ってＩＤ付き文書"Doc12"が登録され、さらに、userHにより閲覧操作（"Doc13"）、userJにより承認操作（"Doc14"）が行われた後に、userHにより複製操作が行われた（"Doc15"）ことを表す。また、管理ＩＤ"Doc21"〜"Doc25"までの文書は、ツリーＩＤ"Tree2"の履歴ツリーに含まれる。図１０の例の表の管理ＩＤ"Doc21"〜"Doc25"のレコードは、文房具の見積依頼書について、userPによる新規登録（"Doc21"）、userQによる編集（"Doc22"）、userPによる閲覧（"Doc23"）、userRによる承認（"Doc24"）、及びuserPによる複製（"Doc25"）の各操作が順に実行されたことを表す。図１０に例示する文書の操作の履歴情報の登録時のクライアント端末２０及び文書管理サーバ１０の動作の詳細は、図５及び図６を参照して説明した上述の動作と同様である。図１１に、図５に例示するツリーＩＤ"Tree0"、図１０に例示するツリーＩＤ"Tree1"，"Tree2"の履歴ツリーを表す。
【００８７】
本具体例では、図９のステップＳ１０の結果、文書管理サーバ１０において派生関係ＤＢ１１０中でファイル名が「見積依頼書」である文書を含む履歴ツリーが検索され、業務管理サーバ５０に対し、文書管理サーバ１０から、図１１に例示する３つの履歴ツリー"Tree0"，"Tree1"，"Tree2"が送信される。つまり、図５及び図１０の例の表における管理ＩＤ"Doc1"〜"Doc5"，"Doc11"〜"Doc15"，"Doc21"〜"Doc25"の各レコードの情報の内容が文書管理サーバ１０から業務管理サーバ５０へ送信される。なお、以下の説明において、業務管理サーバ５０の各部が「履歴ツリー」に対して行う処理は、ステップＳ１０で取得された各レコードのうち、処理対象の履歴ツリー中のすべてのノードのレコードの情報の内容を用いて行われる処理である。また、業務管理サーバ５０の各部が「履歴ツリー中のノード」に対して行う処理は、ステップＳ１０で取得された各レコードのうち、処理対象のノードに対応するレコードの情報の内容を用いて行われる処理である。
【００８８】
文書管理サーバ１０から送信された履歴ツリーを取得した履歴ツリー取得部５００は、取得した履歴ツリーを履歴ツリー統合部５２０に渡し、履歴ツリー統合部５２０は、これらの履歴ツリーを処理対象として、履歴ツリー統合処理を行う（ステップＳ２０）。
【００８９】
図１２は、履歴ツリー統合処理（図９のステップＳ２０）の詳細手順の例を示すフローチャートである。図９のステップＳ２０が開始されると、図１２を参照し、履歴ツリー統合部５２０は、処理対象の履歴ツリー中の各ノードについて、子ノードへの参照情報を生成する（ステップＳ２００）。各ノードの子ノードは、処理対象の履歴ツリーを表す情報レコード（図５，図１０参照）において各ノードの管理ＩＤを親ＩＤの値として有する情報レコードを検索することで得られる。また、ステップＳ２００で生成される参照情報は、各ノードが有する属性項目（派生関係ＤＢ１１０のレコード中の各項目）のうち、履歴ツリー統合処理において着目する属性項目として予め設定された着目属性によって記述される。着目属性は、例えば、システムの管理者などにより、図９の例の手順の処理を開始する前に設定される。図５を参照し、「操作種別」及び「役割」が着目属性として予め設定されている場合、図５の例の表の管理ＩＤ"Doc1"のノードの子ノードへの参照情報は、"Doc1"を親ＩＤとして有する管理ＩＤ"Doc2"に対応づけられた操作種別「編集」及び役割「文房具購買」により表され、例えば、「操作種別：編集，役割：文房具購買」と記述される。なお、以下の説明では、操作種別及び役割が着目属性として設定されているものとする。
【００９０】
ステップＳ２００の処理では、ワークフローを表すグラフ構造に含まれる各ノードを着目属性で表すことになる。よって、ステップＳ２００の処理は、処理対象の履歴ツリー中の各ノードをワークフロー中のノードとして生成し、ワークフロー中の各ノードの子ノードへの参照情報を生成する処理であるとも言える。
【００９１】
ステップＳ２００の後、履歴ツリー統合部５２０は、処理対象の履歴ツリー中のノードから、未処理のノードを１つ選択する（ステップＳ２０２）。そして、選択したノードと着目属性のすべてが同一であるノードが他に存在するか否かを判定する（ステップＳ２０４）。例えば、図１１を参照し、履歴ツリー"Tree0"の管理ＩＤ"Doc1"のノードをステップＳ２０２で選択した場合、着目属性である操作種別及び役割の各項目の値が"Doc1"のノードと同一であるノード、つまり、操作種別が「登録」かつ役割が「開発」であるノードを検索する。本例では、操作種別が「登録」かつ役割が「開発」であるノードは、管理ＩＤ"Doc11"及び"Doc21"のノードである（図１０，図１１参照）ため、これらのノードが検索結果として得られる。よって、この管理ＩＤ"Doc1"のノードがステップＳ２０２で選択される本具体例では、ステップＳ２０４でＹＥＳと判定され、処理はステップＳ２０６に進む。一方、ステップＳ２０２で選択されたノードと着目属性のすべてが同一であるノードが他に存在しない場合は、処理はステップＳ２１２に進む。
【００９２】
ステップＳ２０６では、ステップＳ２０２で選択したノードと、ステップＳ２０４の検索結果のノードと、を１つのノードに統合する処理が行われる。この統合処理では、例えば、統合される各ノードで共通する着目属性を含む１つのノードの情報が生成される。このとき生成される１つのノードの情報は、統合元の各ノードの子ノードへの参照情報を含む。ステップＳ２０２で管理ＩＤ"Doc1"を選択する上述の具体例の場合、ステップＳ２０６で、管理ＩＤ"Doc1"のノードと、ステップＳ２０４で検索された管理ＩＤ"Doc11"及び"Doc21"のノードと、の３つのノードが１つに統合される。統合された結果のノードの情報は、統合元の３つのノードで共通の着目属性「操作種別：登録，役割：開発」を含む。また、統合された結果のノードの情報は、さらに、管理ＩＤ"Doc1"のノードの子ノードへの参照情報「操作種別：編集，役割：文房具購買」、管理ＩＤ"Doc11"のノードの子ノードへの参照情報「操作種別：編集，役割：機械購買」、及び管理ＩＤ"Doc21"のノードの子ノードへの参照情報「操作種別：編集，役割：文房具購買」を含む。
【００９３】
次に、ステップＳ２０６で統合した結果のノードの情報に含まれる子ノードへの参照情報に重複があるか否かが判定される（ステップＳ２０８）。管理ＩＤ"Doc1"，"Doc11"，"Doc21"のノードを統合する上述の具体例の場合、管理ＩＤ"Doc1"のノードの子ノードへの参照情報と管理ＩＤ"Doc21"のノードの子ノードへの参照情報とが、いずれも「操作種別：編集，役割：文房具購買」で重複する。
【００９４】
統合した結果のノードの情報に含まれる子ノードへの参照情報に重複がある場合（ステップＳ２０８でＹＥＳ）、重複する複数の参照情報を１つの参照情報に統合する（ステップＳ２１０）。例えば、重複する複数の参照情報のうち１つだけを残して他を削除する。ステップＳ２１０の後、処理はステップＳ２１２に進む。一方、統合した結果のノードの情報に含まれる子ノードへの参照情報に重複がない場合（ステップＳ２０８でＮＯ）は、ステップＳ２１０の処理を行わずにステップＳ２１２に進む。
【００９５】
ステップＳ２１２では、処理対象の履歴ツリー中のノードのうち未処理のノードがあるか否かを判定する。ここで、「未処理のノード」とは、ステップＳ２０２で選択されたノード及びステップＳ２０６で統合の対象となったノードの他のノードを意味する。未処理のノードがあれば、処理はステップＳ２０２に戻り、未処理のノードがなければ、処理はステップＳ２１４に進む。
【００９６】
ステップＳ２１４では、履歴ツリー統合部５２０は、処理済の各ノードについて、親ノードへの参照情報を生成する。例えば、各ノードについて、当該ノードの着目属性の値を子ノードへの参照情報として有するノードを検索し、検索結果のノードの着目属性の値を親ノードへの参照情報とする。なお、履歴ツリーの根ノードに対応するノードは、親ノードを有しないため、そのノードについての親ノードへの参照情報は空となる。
【００９７】
ステップＳ２１４の後、履歴ツリー統合処理は終了する。履歴ツリー統合処理の結果として、１つのグラフ構造が生成される。グラフ構造の各ノードは、統合元の履歴ツリー中の１以上の文書（ノード）に対応する。グラフ構造のノード間を結ぶ辺は、統合元の履歴ツリーにおける文書間の親子関係に対応し、グラフ構造の各ノードについて生成される子ノードへの参照情報又は親ノードへの参照情報で表される。
【００９８】
図１３に、図１１に例示する履歴ツリー"Tree0"，"Tree1"，"Tree2"を処理対象として図１２の例の履歴ツリー統合処理を行った結果として生成されるグラフ構造（ワークフロー）の例を示す。図１３のノードＮｏｄｅ０は、図１１の管理ＩＤ"Doc1"，"Doc11","Doc21"のノードが統合されて生成されたノードである。ノードＮｏｄｅ１は、図１１の管理ＩＤ"Doc2"，"Doc22"のノードの統合の結果であり、ノードＮｏｄｅ２は、図１１の管理ＩＤ"Doc12"のノードに対応する。また、ノードＮｏｄｅ３、ノードＮｏｄｅ４、及びノードＮｏｄｅ５は、それぞれ、図１１における、管理ＩＤ"Doc3"，"Doc13"，"Doc23"の３つのノード、管理ＩＤ"Doc4"，"Doc14"，"Doc24"の３つのノード、及び管理ＩＤ"Doc5"，"Doc15"，"Doc25"の３つのノードを統合した結果のノードである。図１３の各ノードＮｏｄｅ０，…，Ｎｏｄｅ５は、ワークフロー中の１つのアクティビティ（作業工程）を表す。また、図１３のノード間を接続する矢印は、親ノードから子ノードへ向かう方向を示し、その矢印の方向の順に各ノードのアクティビティが実行されることを示す。
【００９９】
履歴ツリー統合部５２０は、履歴ツリー統合処理の結果として生成したワークフローをワークフローＤＢ５４０に記憶させる。例えば、生成したワークフロー中の各ノードの識別情報に対応づけて、当該ノードの着目属性の値、当該ノードの親ノードへの参照情報、及び当該ノードの子ノードへの参照情報がワークフローＤＢ５４０に登録される。
【０１００】
再び図９の例の手順の説明に戻り、履歴ツリー統合処理（ステップＳ２０，図１２）が終了してワークフローが生成されると、ワークフロー処理部５３０の分岐・結合検出部５３２により分岐・結合の検出処理が行われる（ステップＳ３０）。分岐・結合検出部５３２は、ワークフローＤＢ５４０を参照し、履歴ツリー統合部５２０が生成したワークフローに含まれる分岐点及び結合点を検出する。分岐・結合検出部５３２は、例えば、処理対象のワークフロー中のノードのうち、複数の子ノードへの参照情報を有するノードを分岐点（に対応するノード）として検出し、複数の親ノードへの参照情報を有するノードを結合点（に対応するノード）として検出する。図１３に例示するワークフローが処理対象である場合、複数の子ノードを有するノードＮｏｄｅ０が分岐点として検出され、複数の親ノードを有するノードＮｏｄｅ３が結合点として検出される。
【０１０１】
分岐・結合の検出処理（ステップＳ３０）において分岐点が検出された場合（ステップＳ３２でＹＥＳ）、検出された分岐点に対応する分岐ノードが生成される。また、結合点も検出されていた場合は、検出された結合点に対応する結合ノードが生成される。生成された分岐ノードは、ワークフローにおいて、分岐点として検出されたノードとその子ノードとの間に挿入される。また、結合ノードが生成された場合、この結合ノードは、ワークフローにおいて、結合点として検出されたノードとその親ノードとの間に挿入される（以上、ステップＳ３４）。図１３に例示するワークフローの場合、分岐点として検出されたノードＮｏｄｅ０に対応する分岐ノード及び結合点として検出されたノードＮｏｄｅ３に対応する結合ノードが生成される。分岐ノードは、ワークフローにおいて分岐点のノードＮｏｄｅ０とその子ノードＮｏｄｅ１，Ｎｏｄｅ２との間に挿入され、結合ノードは、ワークフローにおいて結合点のノードＮｏｄｅ３と親ノードＮｏｄｅ１，Ｎｏｄｅ２との間に挿入される。
【０１０２】
図１４は、図１３の例のワークフローに対してステップＳ３４の処理を行った結果のワークフローの例を示す。
【０１０３】
図１４の例の分岐ノードＳは、分岐点として検出されたノードＮｏｄｅ０を親ノードとして有し、図１３の例においてノードＮｏｄｅ０の子ノードであるノードＮｏｄｅ１，Ｎｏｄｅ２を子ノードとして有する。分岐ノードＳのワークフローへの挿入は、例えば、以下の手順で行えばよい。まず、ワークフローＤＢ５４０において、分岐点のノードＮｏｄｅ０の子ノードへの参照情報を複製して分岐ノードＳの子ノードへの参照情報として登録した上で、ノードＮｏｄｅ０の子ノードへの参照情報について分岐ノードＳを示すように書き換える。さらに、分岐ノードＳの親ノードへの参照情報についてノードＮｏｄｅ０を示すように設定する。そして、分岐ノードＳの子ノードとなるノードＮｏｄｅ１，Ｎｏｄｅ２のそれぞれについて、親ノードへの参照情報を、分岐ノードＳを示すように書き換える。
【０１０４】
また、図１４の例の結合ノードＪは、結合点として検出されたノードＮｏｄｅ３を子ノードとして有し、図１３の例においてノードＮｏｄｅ３の親ノードであるノードＮｏｄｅ１，Ｎｏｄｅ２を親ノードとして有する。結合ノードＪのワークフローへの挿入は、例えば、以下の手順で行えばよい。まず、ワークフローＤＢ５４０において、結合点のノードＮｏｄｅ３の親ノードへの参照情報を複製して結合ノードＪの親ノードへの参照情報に設定した上で、ノードＮｏｄｅ３の親ノードへの参照情報について結合ノードＪを示すように書き換える。さらに、結合ノードＪの子ノードへの参照情報についてノードＮｏｄｅ３を示すように設定する。そして、結合ノードＪの親ノードとなるノードＮｏｄｅ１，Ｎｏｄｅ２のそれぞれについて、子ノードへの参照情報を、結合ノードＪを示すように書き換える。
【０１０５】
図９の例の手順の説明に戻り、分岐ノード・結合ノードのワークフローへの挿入処理（ステップＳ３４）の後、各分岐ノードについて、分岐種類判定部５３４による分岐種類判定処理（ステップＳ４０）が行われる。ステップＳ４０の分岐種類判定処理は、ワークフローを生成する元になった統合元の履歴ツリーを用いて行われる。統合元の履歴ツリーのそれぞれが、生成されたワークフロー中のいずれの経路に対応するかを確認し、各分岐ノードにおける分岐の態様を検出することで分岐の種類を判定する。
【０１０６】
本実施形態の例では、分岐種類判定部５３４は、各分岐ノードが図１５の表に示す３種類の分岐種類のいずれに該当するかを判定する。図１５の表は、統合元の複数の履歴ツリーにおける分岐ノードの状態と当該状態に対応する分岐種類の例を示す。すべての履歴ツリーにおいて、ワークフロー中の分岐ノードのすべての分岐先（分岐ノードの子ノード）に進む処理経路が存在する場合、分岐種類は「And-Split（並行分岐）」と判定される。また、１つの履歴ツリーにつき、分岐ノードの分岐先のいずれか１つに進む処理経路のみが存在する場合、分岐種類は「OR-Split（排他的分岐）」と判定される。さらに、各履歴ツリーにおいて、分岐ノードの複数の分岐先に進む処理経路が存在する場合、分岐種類は「Multiple Choice（多項選択）」と判定される。
【０１０７】
以下、図１６から図１８を参照し、分岐種類判定処理（図９のステップＳ４０）の詳細手順の例を説明する。
【０１０８】
分岐種類判定処理が開始されると、まず、図１６のステップＳ４００で、分岐種類判定部５３４は、処理対象のワークフローを生成する元となった統合元の複数の履歴ツリーのうちの１つを選択する。そして、選択した履歴ツリーの根ノードを注目履歴ノードとし、処理対象のワークフローの根ノード（親ノードへの参照情報が空であるノード）を注目フローノードとする（ステップＳ４１０）。例えば、図１４の例のワークフローが処理対象であり、図１１の例の履歴ツリー"Tree0"をステップＳ４００で選択したとすると、ステップＳ４１０で、注目履歴ノードは管理ＩＤ"Doc1"のノードとなり、注目フローノードはノードＮｏｄｅ０となる。
【０１０９】
次に、注目履歴ノード及び注目フローノードの遷移の状態を確認する遷移チェック処理（ステップＳ４２０）が行われる。
【０１１０】
図１７に、遷移チェック処理の詳細手順の例を示す。図１７を参照し、遷移チェック処理（ステップＳ４２０）が開始されると、注目履歴ノードの着目属性の値と注目フローノードの着目属性の値とが一致するか否かが判定される（ステップＳ４２２）。一致する場合はステップＳ４２４に進み、一致しない場合はステップＳ４３６でエラー処理を行って遷移チェック処理を終了する。エラー処理では、例えば、この時点での注目履歴ノード及び注目フローノードを特定する情報と、これらのノードの着目属性の値が一致しなかった旨を表す情報と、をワークフローＤＢ５４０に記憶させる。
【０１１１】
ステップＳ４２４では、注目履歴ノード及び注目フローノードのそれぞれが子ノードを有するか否かを判定する。注目履歴ノードの子ノードの有無は、注目履歴ノードが属する履歴ツリー中のノードに対応する各レコードのうち注目履歴ノードの管理ＩＤの値を親ＩＤとして有するレコードが存在するか否かにより判定される。また、注目フローノードの子ノードの有無は、注目フローノードが子ノードへの参照情報を有するか否かにより判定される。両者に子ノードが存在すればステップＳ４２６に進み、いずれか一方又は両方に子ノードが存在しなければ遷移チェック処理は終了する。
【０１１２】
ステップＳ４２６では、注目フローノードの子ノードが分岐ノードであるか否かが判定される。分岐ノードであれば、処理は図１８のステップＳ４４０に進み、分岐ノードでなければ、処理はステップＳ４２８に進む。
【０１１３】
ステップＳ４２８では、注目フローノードの子ノードが結合ノードであるか否かが判定される。結合ノードでなければ、現在の注目フローノードの子ノードを新たな注目フローノードとし（ステップＳ４３０）、結合ノードであれば、当該結合ノードの子ノードを新たな注目フローノードとする（ステップＳ４３２）。
【０１１４】
ステップＳ４３０又はステップＳ４３２で新たな注目フローノードが設定されると、注目履歴ノードの子ノードが新たな注目履歴ノードとして設定される（ステップＳ４３４）。ステップＳ４３４の後、新たな注目フローノード及び注目履歴ノードに対して図１７の例の遷移チェック処理（ステップＳ４２０）を再帰的に呼び出して実行する。
【０１１５】
以下、図１８を参照し、注目フローノードの子ノードが分岐ノードであると判定された場合（ステップＳ４２６でＹＥＳ）に実行される処理の手順の例を説明する。図１８を参照し、注目履歴ノードの子ノードごとに、ステップＳ４４０，Ｓ４４２，Ｓ４４４，Ｓ４２０の処理が実行される。
【０１１６】
まず、当該分岐ノードの分岐先のノードのうち、当該子ノードと着目属性の値が一致するものを選択する（ステップＳ４４０）。次に、現在の処理対象の履歴ツリーに関し、選択した分岐先のノードに対応する文書の存在を遷移テーブルに記録する（ステップＳ４４２）。ここで、遷移テーブルとは、ワークフロー中の各分岐ノードに関連づけてワークフローＤＢ５４０に記憶されるテーブルであって各履歴ツリーにおいて分岐ノードに対応する部分の処理経路を表すテーブルである。図１９に、遷移テーブルの例を示す。
【０１１７】
図１９は、図１４の例のワークフローの分岐ノードＳに関連づけられた遷移テーブルの例である。図１９の例の表の各行は、図１４の例のワークフローの統合元の各履歴ツリーに対応し、図１９の例の表の各列は、図１４の例のワークフローにおける分岐ノードの分岐先の各ノードに対応する。各行と各列とが交差する欄の値は、当該行の履歴ツリーにおいて、当該列のノードに対応する文書の有無を表す。図１９の例において、値「１」は、当該行の履歴ツリーにおいて当該列のノードに対応する文書が存在することを示し、値「０」は、対応する文書が存在しないことを示す。図１９の例の表は、すべての履歴ツリー"Tree0"，"Tree1"，"Tree2"に関する遷移チェック処理（図１６のステップＳ４２０）が終了した後の遷移テーブルの値を示すが、遷移テーブル中の各値は、分岐種類判定処理（図１６）の開始時に例えば「０」に初期化しておく。
【０１１８】
図１９の例の遷移テーブルを参照して図１８の例のステップＳ４４０，Ｓ４４２の具体例を説明する。例えば、現在の処理対象の履歴ツリーが"Tree0"であり、現在の注目履歴ノードが"Doc1"である場合、注目履歴ノードの子ノード"Doc2"と着目属性の値が一致する分岐先のノードＮｏｄｅ１がステップＳ４４０で選択される。そして、ステップＳ４４２で、図１９の例の遷移テーブルにおいて、履歴ツリー"Tree0"の行と分岐先のノードＮｏｄｅ１の列とが交差する欄に値「１」が設定される。この例のように遷移テーブルに値を設定することで、処理対象の履歴ツリーにおいて、ワークフローの分岐ノードのいずれの分岐先に進む文書が存在するかが記録される。
【０１１９】
ステップＳ４４２の後、当該子ノードを新たな注目履歴ノードとし、選択した分岐先のノードを新たな注目フローノードとした上で（ステップＳ４４４）、これらの新たな注目履歴ノード及び注目フローノードに対して図１７の例の遷移チェック処理を再帰的に呼び出して実行する。
【０１２０】
図１６の例の手順の説明に戻り、遷移チェック処理（ステップＳ４２０）が終了すると、未処理の履歴ツリーがあるか否かが判定される（ステップＳ４５０）。未処理の履歴ツリーがあれば、処理はステップＳ４００に戻り、未処理の履歴ツリーの中から１つを選択してステップＳ４１０以下の処理を繰り返す。未処理の履歴ツリーがなければ、ステップＳ４６０に進む。
【０１２１】
ステップＳ４６０では、各分岐ノードに関連づけられた遷移テーブルを参照し、分岐種類を特定する。例えば、遷移テーブルを参照することで、その分岐ノードについての履歴ツリーの状態が図１５に例示する３つの分岐種類のいずれに該当するかを判定する。図１４の例の分岐ノードＳの場合、図１９の例の遷移テーブルを参照し、１つの履歴ツリーにつき、分岐ノードの分岐先のいずれか１つに進む処理経路のみが存在するため、分岐種類は「OR-Split」となる（図１５）。各分岐ノードについて特定された分岐種類は、ワークフローＤＢ５４０に記憶される。ステップＳ４６０の後、分岐種類判定処理は終了する。
【０１２２】
再び図９を参照し、分岐種類判定処理（ステップＳ４０）が終了すると、ワークフロー中の分岐ノードのうち、分岐種類が排他的な分岐（OR-Split）であると判定されたものが存在するか否かを判定する（ステップＳ４５）。排他的な分岐が存在する場合、分岐条件設定部５３６により分岐条件設定処理（ステップＳ５０）が行われ、排他的な分岐が存在しない場合、ステップＳ５０を行わずに処理はステップＳ６０に進む。
【０１２３】
図２０に、分岐条件設定処理（図９のステップＳ５０）の詳細手順の例を示す。分岐条件設定処理が開始されると、分岐条件設定部５３６は、まず、排他的な分岐である分岐ノードを１つ選択し（ステップＳ５００）、次に、ワークフローにおける分岐ノードの親ノードを取得する（ステップＳ５０２）。そして、統合元の履歴ツリーを１つ選択し（ステップＳ５０４）、選択した履歴ツリーにおいて、ステップＳ５０２で取得した親ノードに対応するノードを取得する（ステップＳ５０６）。ステップＳ５０６の処理は、例えば、履歴ツリーのノードの中から、ワークフロー中の分岐ノードの親ノードと同一の着目属性を有するノードを抽出することで実現される。
【０１２４】
ステップＳ５０６で取得したノードに分岐条件の設定が存在すれば（ステップＳ５０８でＹＥＳ）、当該設定された分岐条件と取得したノードの子ノードの着目属性とを対にして分岐ノードの分岐条件の属性としてワークフローＤＢ５４０に記憶させる（ステップＳ５１０）。例えば、図１４の例の分岐ノードＳが図２０の例の手順の処理の対象であるときに、ステップＳ５０４で選択された履歴ツリーが"Tree0"である場合、ワークフローにおいて分岐ノードＳの親ノードＮｏｄｅ０に対応する履歴ツリー中のノード"Doc1"に設定された分岐条件「＄｛物品種別｝＝“文房具”」（図５参照）と、"Doc1"の子"Doc2"の着目属性「操作種別：編集，役割：文房具購買」と、を対にして分岐ノードＳの分岐条件の属性とする。また、ステップＳ５０４で選択された履歴ツリーが"Tree1"であれば、分岐ノードＳの親ノードＮｏｄｅ０に対応する履歴ツリー中のノード"Doc11"の分岐条件「＄｛物品種別｝＝“コンピュータ”」（図１０参照）と、"Doc11"の子"Doc12"の着目属性「操作種別：編集，役割：機械購買」と、を対にして分岐ノードＳの分岐条件の属性とする。これにより、分岐ノードＳの分岐条件の属性は、分岐ノードＳから着目属性「操作種別：編集，役割：文房具購買」を有する分岐先Ｎｏｄｅ１へ進む条件が「＄｛物品種別｝＝“文房具”」であり、着目属性「操作種別：編集，役割：機械購買」を有する分岐先Ｎｏｄｅ２へ進む条件が「＄｛物品種別｝＝“コンピュータ”」であることを表すものとなる。
【０１２５】
ステップＳ５０６で取得したノードに分岐条件の設定が存在しなければ（ステップＳ５０８でＮＯ）、エラー処理を行う（ステップＳ５１６）。このエラー処理では、例えば、ワークフローの分岐点に相当する当該履歴ツリーのノードに分岐条件が設定されていない旨を表す情報をワークフローＤＢ５４０に記憶させる。
【０１２６】
ステップＳ５１０又はステップＳ５１６の後、統合元の履歴ツリーのうち、未処理のものであって、処理済の履歴ツリーと異なる分岐先に進む経路を有するものがあるか否かを判定する（ステップＳ５１２）。この判定は、例えば、処理対象の分岐ノードの遷移テーブルを参照して行う。異なる分岐先に進む経路を有する履歴ツリーがあれば、ステップＳ５０４以降の処理が繰り返され、そのような履歴ツリーがなければ、ステップＳ５１４に進む。
【０１２７】
ステップＳ５１４では、ワークフローにおいて排他的な分岐である分岐ノードのうち、未処理の分岐ノードがあるか否かが判定される。未処理の分岐ノードがあれば、処理はステップＳ５００に戻り、未処理の分岐ノードがなければ、分岐条件設定処理は終了する。
【０１２８】
図９の例の手順の説明に戻り、分岐条件設定処理が終了すると、結合種類設定部５３８により、結合種類の設定が行われる（ステップＳ６０）。ステップＳ６０で、結合種類設定部５３８は、例えば、ワークフローにおける結合ノードの子ノードに対応する履歴ツリーのノードに設定された結合種類を取得し、取得した結合種類を当該結合ノードに関連づけてワークフローＤＢ５４０に記憶させる。
【０１２９】
図２１に結合種類の例を示す。図２１の例の表は、５つの結合種類「OR-Join」，「AND-Join」，「Multiple-Merge」，「Discriminator」，「Synchronizing-Merge」と、各結合種類の結合ノードにおける動作と、各結合種類の結合ノードと対となる分岐ノードの分岐種類と、を示す。図２１に例示する分岐種類は、図１５の例の表を参照して説明した分岐種類と同様である。図２１の例の表の内容を予め記憶装置に記憶させておき、この表を参照して、ステップＳ６０で取得した結合種類が、つまり、ユーザが設定した結合種類が、当該結合ノードと対となる分岐ノードの分岐種類に対応するものであるか否かを判定してもよい。対応するものであれば、上述のように、取得した結合種類を処理対象の結合ノードの結合種類としてワークフローＤＢ５４０に登録する。対応するものでない場合は、例えば、その旨を図示しない表示装置に表示させ、取得した結合種類のワークフローＤＢ５４０への登録は行わない。
【０１３０】
ステップＳ６０が終了すると、図９の例の手順の処理は終了する。
【０１３１】
以上、図９〜図２１を参照し、複数の履歴ツリーからワークフローを生成する処理の例を説明した。以上で説明した例では、排他的な分岐ノードの分岐条件の設定は、ユーザが文書を操作する際に設定した分岐条件を履歴ツリーから取得することで行われる。他の例では、ユーザが設定した分岐条件を用いずに分岐ノードの分岐条件の設定を行ってもよい。
【０１３２】
図２２は、分岐条件の設定処理の他の例の手順を示すフローチャートである。
【０１３３】
まず、処理対象の分岐ノードの遷移テーブルを取得する（ステップＳ７０）。次に、取得した遷移テーブルを参照して、同一の分岐先へ進む処理経路を有する２つの履歴ツリーを特定して選択する（ステップＳ７２）。例えば、図１４の例のワークフローの分岐ノードＳが処理対象である場合、図１９の例の遷移テーブルを参照し、同一の分岐先へ進む処理経路を有する履歴ツリーとして、履歴ツリー"Tree0"及び"Tree2"（図１１）が選択される。
【０１３４】
ステップＳ７２で取得した履歴ツリーそれぞれから、ワークフローにおいて処理対象の分岐ノードの親ノードに対応するノードを取得する（ステップＳ７４）。図１４の例のワークフローを参照する上述の例の場合、分岐ノードＳの親ノードＮｏｄｅ０に対応する履歴ツリー"Tree0"，"Tree2"中のノード"Doc1"，"Doc21"が取得される。
【０１３５】
そして、分岐条件設定部５３６は、ステップＳ７４で取得されたノード間で属性情報を比較し（ステップＳ７６）、同一の値を有する属性を条件候補属性として抽出する（ステップＳ７８）。同一の分岐先に進む条件となる属性を得るために、同一の値を有する属性を抽出する。図２３に、ノード"Doc1"，"Doc21"の属性情報を比較した場合にステップＳ７８で抽出される条件候補属性の例を示す。図２３を参照し、"Doc1"，"Doc21"の間で同一の値を有する属性「操作種別」、「役割」、「ファイル名」及び「物品種別」が条件候補属性として抽出される。また、抽出された属性の他の属性（図２３の例の表で斜線を引いた属性）は、条件の候補から除外される。
【０１３６】
その後、ステップＳ７０で取得した遷移テーブルを再び参照し、ワークフローにおいて異なる分岐先へ進む処理経路を有する２つの履歴ツリーを特定して選択する（ステップＳ８０）。図１４の分岐ノードＳの例の場合、例えば、履歴ツリー"Tree0"及び"Tree1"が選択される。
【０１３７】
ステップＳ８０で選択された履歴ツリーのそれぞれから、ワークフローにおいて分岐ノードの親ノードに対応するノードが取得される（ステップＳ８２）。例えば、履歴ツリー"Tree0"及び"Tree1"から、図１４のノードＮｏｄｅ０に対応するノード"Doc1"，"Doc11"が取得される。
【０１３８】
そして、ステップＳ８２で取得した２つのノード間で、ステップＳ７８で抽出された条件候補属性の値を比較し（ステップＳ８４）、異なる値を有する属性を分岐条件の属性として抽出する（ステップＳ８６）。図２４に、抽出される分岐条件の属性の例を示す。図２４を参照し、破線で囲んだ属性「物品種別」が分岐条件の属性として抽出される。このように、ステップＳ８６では、同一の分岐先へ進むノード間の属性の比較から抽出された条件候補属性（図２３）のうち、異なる分岐先へ進むノード間の属性の比較において互いに異なる値を有する属性が分岐条件の属性として抽出される。抽出された分岐条件の属性は、異なる分岐先へ進む各ノードにおける値と、その分岐先の着目属性の値と、を対にして分岐ノードの分岐条件の属性としてワークフローＤＢ５４０に登録される。
【０１３９】
以上で説明したように生成されるワークフローに対して、業務管理サーバ５０は、ワークフローの各ノードのラベル付けの設定を受け付けても良い。例えば、図１４の例のワークフローを図示しない表示装置に表示させてワークフローを管理する管理者などに提示し、ラベルの設定を受け付ける。業務管理サーバ５０は、管理者などによるラベルの設定を受け付けると、ワークフローＤＢ５４０において、各ノードに設定されたラベルの内容を記憶しておく。図２５に、ラベルの設定を受け付けた後のワークフローを図式化した例を示す。図２５では、各ノードＮｏｄｅ０，…，Ｎｏｄｅ５に設定されたラベルの内容（「文書を登録する」，「文房具を見積する」など）を示す。例えば図２５のような図を表示装置に表示させることで、図式化したワークフローが管理者やユーザなどに提示される。
【０１４０】
以上、図９の例の手順の処理により生成されるワークフローは、各作業工程に対応するノードと共に、分岐ノード及び結合ノードを含む。また、分岐ノード及び結合ノードには、その分岐・結合の種類や分岐条件などの属性情報が設定される。このように生成されたワークフローは、例えば、ワークフロー図の記述法の１つであるＢＰＭＮ（Business Process Modeling Notation，ビジネスプロセスモデリング表記法ver.1.0， 2004年5月3日，著作権者Business Process Management Initiative）に従って図式化できる。
【０１４１】
以上で説明した第１実施形態の例では、実際に業務が行われる過程で生成されて文書管理サーバ１０に登録されたＩＤ付き文書の操作の履歴を用いて、ワークフローを構成する。各作業工程を担当するユーザが業務の全体の流れを把握していなくても、各自が業務における作業を実行して当該作業工程に対応するＩＤ付き文書を文書管理サーバ１０に登録すれば、業務管理サーバ５０によりワークフローが抽出される。
【０１４２】
＜第２実施形態＞
以下、第２実施形態の例を説明する。第２実施形態においても、業務管理システムの構成は、第１実施形態における図１の例のシステム構成と同様であってよい。
【０１４３】
第２実施形態では、実際に業務を行った結果の文書の操作の履歴を文書管理サーバ１０に登録する代わりに、業務における文書の操作及び授受の履歴を試験的に実現して文書管理サーバ１０に登録する。業務における文書の履歴を試験的に実現する（以下、「業務の試行」を行うとも言う）場合、業務の各作業工程を担当するユーザは、ＩＤ付き文書の文書内容には着目せずに、自己の作業工程に対応するＩＤ付き文書の文書管理サーバ１０への登録及び次の担当者へのＩＤ付き文書の受け渡しを行う。また、本例の業務の試行では、ワークフローの分岐点に相当する作業工程の担当者は、すべての分岐先のそれぞれに対応するＩＤ付き文書を生成して文書管理サーバ１０に登録する。例えば、分岐点に相当する作業工程の担当者は、まず、分岐先のうちの１つの担当者に渡す文書として、自分の前の作業工程の担当者から渡されたＩＤ付き文書の管理ＩＤを親ＩＤとする新たなＩＤ付き文書を文書管理サーバ１０に登録する。その後、当該新たなＩＤ付き文書を、残りの分岐先の数だけ複製し、複製した各ＩＤ付き文書をさらに文書管理サーバ１０に登録する。文書管理サーバ１０に登録された各分岐先に対応するＩＤ付き文書は、各分岐先の作業工程の担当者に渡される。
【０１４４】
以上のような業務の試行により、当該業務のワークフローに対応する文書の履歴が文書管理サーバ１０に登録される。また、ワークフローが分岐を含む場合、すべての分岐先それぞれに進む経路に対応する文書の履歴が文書管理サーバ１０に登録される。なお、業務の試行を行う場合も、実際に業務を行う場合と同様に、各ユーザは、自分の担当の作業の内容と次の作業工程の担当者とを把握してさえいれば、業務の流れ全体を把握していなくてもよい。
【０１４５】
図２６に、第２実施形態のクライアント端末２０の内部構成の例を示す。図２６の例のクライアント端末２０は、図２に例示する第１実施形態におけるクライアント端末２０が備える各構成要素に加えて、文書操作部２００において分岐時処理部２０６を備える。図２６の例のクライアント端末２０において、分岐時処理部２０６の他の各構成要素は、図２の例のクライアント端末２０と同様である。
【０１４６】
分岐時処理部２０６は、業務の試行において、ワークフローの分岐点に相当する作業工程の担当者からの指示に応じて、各分岐先に対応するＩＤ付き文書を生成する処理を行う。例えば、分岐点の作業工程の担当者であるユーザの指示により、まず、分岐先のうちの１つの担当者に渡されるＩＤ付き文書が、図２を参照して説明したのと同様の文書操作部２００の処理により生成され、登録処理部２１０により文書管理サーバ１０に登録される。このとき生成されるＩＤ付き文書には、例えば図７の例の設定画面により、対応する分岐先への分岐条件が設定される。その後、当該ユーザは、文書操作部２００を用いて、生成されたＩＤ付き文書を残りの分岐先の数だけ複製する。そして、当該ユーザは、複製後の各文書を指定して、文書操作部２００の操作メニュー上で「分岐時新規登録」を指示する。この指示に応じて分岐時処理部２０６は、ＩＤ割り当て部２０２に依頼して、複製後の各文書に対して付与する新たな管理ＩＤを生成させる。そして、分岐時処理部２０６は、派生関係組込部２０４に依頼して、複製後の各文書のメタ情報として、ＩＤ割り当て部２０２が生成した新たな管理ＩＤを管理ＩＤとし、親ＩＤを「なし」とするメタ情報を生成させる。これにより、複製後の各文書は新たなＩＤ付き文書となる。また、複製後の各ＩＤ付き文書のメタ情報では、ログ情報中の操作種別の値は「分岐時新規登録」に設定され、かつ、ログ情報中に複製元のＩＤ付き文書の管理ＩＤが「分岐元」として組み込まれる。さらに、分岐時処理部２０６は、複製後の各ＩＤ付き文書について、それぞれ対応する分岐先へ分岐する分岐条件の設定のユーザ入力を受け付ける。受け付けられた分岐条件は、派生関係組込部２０４により複製後の各ＩＤ付き文書のログ情報に組み込まれる。
【０１４７】
以上のように生成された操作種別「分岐時新規登録」の各ＩＤ付き文書は、登録処理部２１０により文書管理サーバ１０に登録される。
【０１４８】
第２実施形態の例の文書管理サーバ１０は、図４に例示する第１実施形態における文書管理サーバ１０と同様の構成を有していてよい。ただし、派生関係ＤＢ１１０において、操作種別の項目の値として「分岐時新規登録」を有するレコードが登録され得る。さらに、操作種別が「分岐時新規登録」であるレコードには、そのレコードに対応するＩＤ付き文書の「分岐元」が含まれる。
【０１４９】
以下、図２７〜図３２を参照し、業務の試行においてクライアント端末２０が行う処理及び文書管理サーバ１０に登録される文書の履歴の一例を説明する。
【０１５０】
まず、図２７〜図２９を参照し、説明のために用いる業務の具体例を説明する。
【０１５１】
図２７は、本具体例の業務のワークフローを図式的に示す図である。図２８は、図２７に例示するワークフローの各作業工程の内容を示す。図２７及び図２８の例が示すワークフローでは、まず、作業工程「業務１」において、役割「開発」のユーザにより操作「新規登録／起案」が行われ、次に、作業工程「業務２」で、役割「開発管理」のユーザにより操作「進達」が行われる。その後、ワークフローは分岐ノード「分岐１」で２つの分岐先に分岐し、一方の分岐先である「業務３」では、役割「開発管理」のユーザによる操作「承認／部長」が行われ、他方の分岐先である「業務４」では、役割「開発管理」のユーザによる操作「承認／課長」が行われる。「業務３」又は「業務４」の後、ワークフローは結合ノード「結合１」で結合し、最後に「業務５」で役割「開発」のユーザが操作「アーカイブ」を行うことで終了する。
【０１５２】
図２９（ａ）及び図２９（ｂ）は、それぞれ、図２７及び図２８の例のワークフローにおける分岐ノード「分岐１」の分岐条件及び結合ノード「結合１」の結合種類を示す。図２９（ａ）を参照し、「分岐１」では、「決済額が２０万円を超える」という条件を満たす場合に「業務３」に進み、「決済額が２０万円以下」という条件を満たす場合に「業務４」に進む。また、図２９（ｂ）を参照し、「結合１」は、その結合種類が「OR-Join」であり、ワークフローに従った文書の操作実行時に文書の入力を１つだけ受けて当該文書を通過させて「業務５」に進む結合ノードである。
【０１５３】
図２７〜図２９を参照して以上で説明した例の業務について業務の試行を行った場合、文書管理サーバ１０の派生関係ＤＢ１１０には、例えば、図３０のようなデータ内容が登録される。
【０１５４】
図３０を参照し、第２実施形態において派生関係ＤＢ１１０に登録されるデータ内容の例を示す。図３０の例の派生関係ＤＢ１１０の各ＩＤ付き文書に対応するレコードは、管理ＩＤ、親ＩＤ、ツリーＩＤ、操作種別、操作者、役割、操作日時、分岐条件、結合種類、及び分岐元の各項目を含む。このうち、「分岐元」以外の項目の意味は、図５の例の派生関係ＤＢ１１０を参照してすでに説明したとおりである。「分岐元」は、分岐点に相当する作業工程（つまり、ワークフローにおける分岐ノードの親ノードが表す作業工程）の担当者がクライアント端末２０において「分岐時新規登録」を指示したときに生成されるＩＤ付き文書の複製元のＩＤ付き文書の管理ＩＤを表す。
【０１５５】
また、図３１は、図３０に例示するデータ内容を派生関係ＤＢ１１０が有する場合の履歴ツリーの例である。
【０１５６】
以下、図３０及び図３１に例示する文書の履歴を例に取り、業務の試行の様子を説明する。なお、図３０の例の表では、全レコードを時系列順（操作日時の順）で示すのではなく、同じツリーＩＤを有するレコード毎に時系列順で示している。
【０１５７】
まず、図２７〜図２９の例のワークフローの「業務１」の担当者userAは、文書管理サーバ１０に未登録の文書をクライアント端末２０上で作成し、「業務１」の操作種別である「新規登録／起案」をＩＤ付き文書の操作種別として指定して文書管理サーバ１０への登録を指示する。この指示に応じて、クライアント端末２０の文書操作部２００は、管理ＩＤ"Doc31"、親ＩＤ「なし」、操作種別「新規登録／起案」、操作者「userA」、役割「開発」であるＩＤ付き文書"Doc31"を生成する。ＩＤ付き文書"Doc31"は文書管理サーバ１０に送られて派生関係ＤＢ１１０に登録される。文書管理サーバ１０は、ＩＤ付き文書"Doc31"の親ＩＤが「なし」であることから、このＩＤ付き文書"Doc31"を根とする履歴ツリーのツリーＩＤ"Tree3"を新たに生成して管理ＩＤ"Doc31"のレコードに登録する。
【０１５８】
なお、ＩＤ付き文書"Doc31"の文書内容は、実際の業務を行うときに操作種別「新規登録／起案」の文書が備えるべき内容を備えていなくてよい。この文書内容は空であってもよいし、例えば、当該ＩＤ付き文書が業務の試行に係る文書であることを表す情報を含んでいてもよい。図３０及び図３１を参照して以下の説明で言及するＩＤ付き文書の文書内容についても同様である。
【０１５９】
ＩＤ付き文書"Doc31"は、「業務１」の次の「業務２」の担当者であるuserBに電子メールなどにより渡される。「業務２」は、ワークフローの分岐が生じる作業工程であるため、userBのクライアント端末２０では、分岐時処理部２０６による上述の処理が行われる。まず、userBは、クライアント端末２０において、userAから受け取ったＩＤ付き文書"Doc31"を文書操作部２００により操作し（ここでは、例えば、単に「閲覧」するだけでよい）、「業務２」の操作種別である「進達」を指定して文書管理サーバ１０へのＩＤ付き文書の登録を指示する。この指示に応じて、新たなＩＤ付き文書"Doc32"が生成され、文書管理サーバ１０に登録される。ＩＤ付き文書"Doc32"の親ＩＤは"Doc31"、操作種別は「進達」、操作者は「userB」、役割は「開発管理」である。また、userBは、ＩＤ付き文書"Doc32"について、「業務２」の後の分岐先のうちの１つに対応する分岐条件を設定する。例えば、文書操作部２００は、分岐条件の設定を望む旨のuserBからの指示を受けて、クライアント端末２０の表示装置に図３２の例のような表示画面を表示させ、userBによる分岐条件の設定を受け付ける。本例では、userBは、図３２の例の表示画面を用いて、ＩＤ付き文書"Doc32"について、２つの分岐先のうち「業務３」へ進む条件「決済金額が２０万を超える」を設定したとする。なお、文書管理サーバ１０において、ＩＤ付き文書"Doc32"のツリーＩＤは、親文書である"Doc31"と同じ"Tree3"に設定される。
【０１６０】
さらに、userBは、ＩＤ付き文書"Doc32"をクライアント端末２０上で複製する。そして、この複製後の文書を指定して、文書操作部２００の操作メニュー上で「分岐時新規登録」を指示する。この指示に応じて、分岐時処理部２０６により、新たなＩＤ付き文書"Doc41"が生成される。ＩＤ付き文書"Doc41"の親ＩＤは「なし」、操作種別は「分岐時新規登録」に設定される。また、ＩＤ付き文書"Doc41"のログ情報には、「分岐元」として、複製元のＩＤ付き文書"Doc32"の管理ＩＤ"Doc32"が組み込まれる。さらに、userBは、例えば図３２の例の表示画面を用いて、ＩＤ付き文書"Doc41"の分岐条件として、残りの分岐先「業務４」へ進む条件「決済金額が２０万円以下」を設定する。ＩＤ付き文書"Doc41"をuserBのクライアント端末２０から受け取った文書管理サーバ１０は、ＩＤ付き文書"Doc41"の親ＩＤが「なし」であることから、ＩＤ付き文書"Doc41"を根とする新たな履歴ツリーのツリーＩＤ"Tree4"を生成して派生関係ＤＢ１１０に登録する。
【０１６１】
以上で説明したuserBの操作によって、「業務２」の後の２つの分岐先「業務３」及び「業務４」のそれぞれに対応するＩＤ付き文書"Doc32"，"Doc41"が文書管理サーバ１０に登録される。そして、ＩＤ付き文書"Doc32"は、userBから「業務３」の担当者であるuserCに渡され、ＩＤ付き文書"Doc41"は、userBから「業務４」の担当者であるuserDに渡される。
【０１６２】
ＩＤ付き文書"Doc32"を受け取ったuserCは、クライアント端末２０上で、ＩＤ付き文書"Doc32"を指定し、自己が担当する「業務３」の操作種別「承認／部長」を指定して文書管理サーバ１０へのＩＤ付き文書の登録を指示する。これに応じて、親ＩＤを"Doc32"とする新たなＩＤ付き文書"Doc33"が生成されて文書管理サーバ１０に登録される。userCは、ＩＤ付き文書"Doc33"を次の作業工程「業務５」の担当者userAに渡す。
【０１６３】
一方、ＩＤ付き文書"Doc41"を受け取ったuserDにより、クライアント端末２０上で、ＩＤ付き文書"Doc41"に関し、「業務４」の操作種別「承認／課長」を指定して文書管理サーバ１０へのＩＤ付き文書の登録の指示が行なわれると、新たなＩＤ付き文書"Doc42"が文書管理サーバ１０に登録される。ＩＤ付き文書"Doc42"の親ＩＤは"Doc41"に設定される。userDは、この新たなＩＤ付き文書"Doc42"を次の作業工程「業務５」の担当者userAに渡す。
【０１６４】
userAは、userC及びuserDからそれぞれ受け取った各ＩＤ付き文書"Doc33"，"Doc42"に関して、「業務５」の操作種別「アーカイブ」に対応するＩＤ付き文書の文書管理サーバ１０への登録を指示する。これに応じて、親ＩＤを"Doc33"とするＩＤ付き文書"Doc34"と、親ＩＤを"Doc42"とするＩＤ付き文書"Doc43"と、が文書管理サーバ１０に登録される。また、userAは、自己の担当する「業務５」がワークフローにおける結合点に対応する作業工程（つまり、ワークフローの結合ノードの子ノードの作業工程）であることから、各ＩＤ付き文書"Doc34"，"Doc43"について、結合種類（本例では、「OR-Join」）を設定する。
【０１６５】
ＩＤ付き文書"Doc34"，"Doc43"が文書管理サーバ１０に登録されると、図２７の例のワークフローに関する業務の試行は終了する。業務の試行が終了すると、図３０及び図３１に例示するように、派生関係ＤＢ１１０には２つの履歴ツリー"Tree3"，"Tree4"が登録される。履歴ツリー"Tree3"は、ワークフローの「業務１」，「業務２」，「業務３」，「業務５」にそれぞれ対応するノード"Doc31"，"Doc32"，"Doc33"，"Doc34"から成り、「業務２」から「業務３」へ分岐した場合の文書の履歴を表す。履歴ツリー"Tree4"は、「業務２」に対応する"Doc32"を分岐元とする分岐時新規登録のノード"Doc41"と、「業務４」，「業務５」に対応するノード"Doc42"，"Doc43"から成り、「業務２」から「業務４」へ分岐した場合の文書の履歴を表す。ただし、履歴ツリー"Tree4"は、分岐点に相当する「業務２」に至るまでの文書の履歴を含まない。
【０１６６】
図３３は、第２実施形態の例の業務管理サーバ５０の内部構成の例を示すブロック図である。図３３では、図８に例示する第１実施形態における業務管理サーバ５０と同様の構成要素については図８と同様の符号を付し、その詳細な説明を省略する。図３３を参照し、本実施形態の例の業務管理サーバ５０は、履歴ツリー統合部５２０において、分岐時新規登録ノード処理部５２２を備える。分岐時新規登録ノード処理部５２２は、文書管理サーバ１０から履歴ツリー取得部５００が取得した履歴ツリーの中に、操作種別が「分岐時新規登録」である根ノード（以下、「分岐時新規登録ノード」と呼ぶ）を有する履歴ツリーが存在する場合に、当該分岐時新規登録ノードの「分岐元」を参照して、当該分岐時新規登録ノードに至るまでの文書の履歴を取得する処理を行う。また、分岐時新規登録ノード処理部５２２は、分岐時新規登録ノードを根とする履歴ツリーに分岐時新規登録ノードに至るまでの文書の履歴を接続して補足した履歴ツリーを生成する処理を行う。履歴ツリー統合部５２０は、分岐時新規登録ノード処理部５２２により補足された履歴ツリーを処理対象の１つとして、第１実施形態の例の履歴ツリー統合処理（図１２）と同様の処理を行う。
【０１６７】
以下、本実施形態の例の業務管理サーバ５０がワークフローの生成の際に行う処理の手順の例を説明する。本実施形態においても、処理手順の全体的な流れは、図９に例示する第１実施形態の例の業務管理サーバ５０の手順と同様のものであってよい。ただし、本実施形態では、履歴ツリー取得処理（ステップＳ１０）と履歴ツリー統合処理（ステップＳ２０，図１２）との間に、分岐時新規登録ノード処理部５２２による処理が行われる点が第１実施形態における処理手順と異なる。
【０１６８】
図３４に、分岐時新規登録ノード処理部５２２の処理の手順の例を示す。まず、分岐時新規登録ノード処理部５２２は、図９のステップＳ１０で文書管理サーバ１０から取得した履歴ツリーの中に、操作種別が「分岐時新規登録」である根ノード（以下、「分岐時新規登録ノード」と言う）を有するものが存在するか否かを判定する（ステップＳ１５０）。存在しなければ図３４の手順の処理は終了し、存在すればステップＳ１５１に進む。例えば、図３０及び図３１に例示する履歴ツリー"Tree3"，"Tree4"を図９のステップＳ１０で取得していたとすると、分岐時新規登録ノード"Doc41"が存在するため、ステップＳ１５０からステップＳ１５１に進む。ステップＳ１５１では、分岐時新規登録ノードの分岐元までの文書の履歴を記録しておくリストを初期化して空にする。
【０１６９】
ステップＳ１５１の後、分岐時新規登録ノードの分岐元として設定されている管理ＩＤのレコードを取得する（ステップＳ１５２）。分岐時新規登録ノードが"Doc41"である場合、分岐元として設定された管理ＩＤ"Doc32"のレコードが取得される。分岐元のレコードを取得すると、分岐時新規登録ノード処理部５２２は、取得したレコードをリストに追加する（ステップＳ１５４）。そして、ステップＳ１５４でリストに追加したレコードに含まれる親ＩＤの値を調べ、親ＩＤが存在すれば（ステップＳ１５６でＹＥＳ）、当該親ＩＤを管理ＩＤとするレコードを取得し（ステップＳ１５８）、取得したレコードに対してステップＳ１５４，Ｓ１５６の処理を繰り返す。
【０１７０】
ステップＳ１５４，１５６，Ｓ１５８を含む処理ループにより、分岐時新規登録ノードの分岐元のノードを起点に、当該分岐元のノードが属する履歴ツリーを根ノードまで遡った経路上の管理ＩＤ（ノード）のレコードがリストに記録される。分岐元の管理ＩＤが"Doc32"である場合、分岐元のノード"Doc32"を起点に履歴ツリー"Tree3"を根ノードまで遡った経路上の管理ＩＤ"Doc32"，"Doc31"のレコードがリストに記録される。
【０１７１】
一方、リストに追加したレコードに親ＩＤが存在しない（値が「なし」である）場合（ステップＳ１５６でＮＯ）、分岐時新規登録ノードを根とする履歴ツリーに対し、リストに記録されたレコードを接続して、分岐時新規登録ノードに至るまでの文書の履歴を補足した履歴ツリーを生成する（ステップＳ１５９）。処理対象の分岐時新規登録ノードが"Doc41"、リストに記録されるレコードの管理ＩＤが"Doc32"，"Doc31"である上述の例の場合、例えば、分岐時新規登録ノード"Doc41"をリスト中の"Doc32"，"Doc31"から成る部分木で置き換えた履歴ツリーを生成する。ただし、分岐時新規登録ノード"Doc41"に設定された分岐条件は、置き換え後の履歴ツリーにおいても保持しておく。本例で生成される補足された履歴ツリー中の各ノードの情報レコードを図３５に示す。また、補足された履歴ツリーを図式化した例を図３６に示す。図３５及び図３６を参照し、履歴ツリー"Tree4"において、分岐時新規登録ノード"Doc41"（図３１参照）が削除され、代わりに、"Doc41"に至るまでの文書の履歴を表すノード"Doc31"，"Doc32"を有する。ステップＳ１５９の前に分岐時新規登録ノード"Doc41"の子であったノード"Doc42"の親ＩＤは、分岐元の管理ＩＤ"Doc32"に書き換えられる。ただし、図３５の例の表において"Doc32"の分岐条件は、履歴ツリー"Tree3"中の"Doc32"の分岐条件「決済額が２０万円を超える」（図３０参照）ではなく、分岐時新規登録ノード"Doc41"に設定されていた分岐条件「決済額が２０万円以下」である。
【０１７２】
なお、本例のステップＳ１５９の処理の結果として履歴ツリー"Tree4"に含まれることになる"Doc31"，"Doc32"は、履歴ツリー"Tree3"にも含まれる。履歴ツリー統合部５２０は、後の履歴ツリー統合処理（図９のステップＳ２０，図１２）において、異なる履歴ツリーに含まれるノードについては管理ＩＤが同一であっても区別して取り扱う。
【０１７３】
ステップＳ１５９の処理の変形例では、分岐時新規登録ノードと置き換えた部分木の各ノードの管理ＩＤを元の値と異なる値に書き換えてもよい。例えば、履歴ツリー"Tree4"で"Doc41"と置き換えられる"Doc31"，"Doc32"の各管理ＩＤを、"Doc31-4"，"Doc32-4"などの値に書き換える。本変形例では、ステップＳ１５９で補足された履歴ツリー"Tree4"は、ノード"Doc31-4"，"Doc32-4"，"Doc42"，"Doc43"を含み、初めから分岐時新規登録ノードを含まない履歴ツリー"Tree3"は、ノード"Doc31"，"Doc32"，"Doc33"，"Doc34"を含む。
【０１７４】
ステップＳ１５９の処理の更なる変形例では、分岐時新規登録ノードをリスト中の管理ＩＤのノードから成る部分木と置き換える代わりに、分岐時新規登録ノードの管理ＩＤを残してもよい。例えば、分岐時新規登録ノード"Doc41"の操作種別を「分岐時新規登録」から分岐元"Doc32"の操作種別「進達」に書き換え、"Doc41"の親ＩＤを分岐元"Doc32"の親ＩＤ"Doc31"に書き換える。この変形例では、ステップＳ１５９の結果として得られる補足された履歴ツリー"Tree4"は、ノード"Doc31"，"Doc41"，"Doc42"，"Doc43"を含むことになる。
【０１７５】
ステップＳ１５９の後、処理はステップＳ１５０に戻り、未処理の分岐時新規登録ノードがあれば（ステップＳ１５０でＹＥＳ）、当該分岐時新規登録ノードに関してステップＳ１５１以下の処理を行う。
【０１７６】
第２実施形態の例の業務管理サーバ５０の履歴ツリー統合部５２０は、分岐時新規登録ノードを含む履歴ツリーを図３４の例の手順の処理により補足した上で、履歴ツリー統合処理（図９のステップＳ２０，図１２）を第１実施形態の例の場合と同様に行う。図９の例のステップＳ３０〜ステップＳ６０についても、第１実施形態の例と同様に行ってよい。
【０１７７】
以上で説明した第２実施形態の例では、業務管理サーバ５０が分岐時新規登録ノード処理部５２２を備えるが、第２実施形態において、文書管理サーバ１０が分岐時新規登録ノード処理部５２２を備えていてもよい。例えば、業務管理サーバ５０に提供する履歴ツリーとして検索された履歴ツリーに関して、文書管理サーバ１０が図３４の例の手順の処理を実行し、分岐時新規登録ノードを根とする履歴ツリーを分岐時新規登録ノードまでの履歴により補足した上で、業務管理サーバ５０に履歴ツリーを送信する。この例の場合、業務管理サーバ５０では、図３４の例の手順の処理を行わず、履歴ツリーの取得（図９のステップＳ１０）の後、履歴ツリー統合処理（図９のステップＳ２０，図２０）を実行すればよい。
【０１７８】
以上に例示した第１実施形態及び第２実施形態の例では、管理ＩＤの発行は各クライアント端末２０で行われていたが、この代わりに文書管理サーバ１０が管理ＩＤを発行してもよい。この場合、クライアント端末２０は、ＩＤ付き文書に対して操作を行った場合、操作前のＩＤ付き文書内の管理ＩＤを親ＩＤ３１４として含み、更にその操作についてのログ情報３１６と操作後の文書内容３２０とを含み、管理ＩＤ３１２は空欄の文書データを生成し、文書管理サーバ１０に送る。文書管理サーバ１０は、受け取った文書データに対して新たな管理ＩＤを付与し、この管理ＩＤとその文書データとに含まれる情報を、文書ＤＢ１００及び派生関係ＤＢ１１０に登録する。また、文書管理サーバ１０は、付与した管理ＩＤを当該文書データにセットすることによりＩＤ付き文書を生成し、これをクライアント端末２０に返す。クライアント端末２０は、操作前のＩＤ付き文書を、受け取ったＩＤ付き文書に置き換える。このように、文書管理サーバ１０が管理ＩＤを付与する構成でも、上述の各例の処理は同様に実行できる。
【０１７９】
以上に例示したシステムにおける文書管理サーバ１０、クライアント端末２０、及び業務管理サーバ５０の各装置は、典型的には、汎用のコンピュータにて上述の各装置の各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図３７に示すように、ＣＰＵ（中央演算装置）８０、メモリ（一次記憶）８２、各種Ｉ／Ｏ（入出力）インタフェース８４等がバス８６を介して接続された回路構成を有する。また、そのバス８６に対し、例えばＩ／Ｏインタフェース８４経由で、ハードディスクドライブ（ＨＤＤ）８８やＣＤやＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ９０が接続される。このようなドライブ８８又は９０は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク経由で、ＨＤＤ８８等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されることにより、実施形態の処理が実現される。
【０１８０】
なお、文書管理サーバ１０及び業務管理サーバ５０は、それぞれ異なるコンピュータを用いて実現してもよいし、上述の文書管理サーバ１０及び業務管理サーバ５０が備える各機能を１つのコンピュータに実現してもよい。
【符号の説明】
【０１８１】
１０  文書管理サーバ、２０  クライアント端末、５０  業務管理サーバ、６０  ネットワーク、８０  ＣＰＵ、８２  メモリ、８４  Ｉ／Ｏインタフェース、８６  バス、８８  ＨＤＤ、９０  ディスクドライブ、１００  文書ＤＢ、１１０  派生関係ＤＢ、１３０  文書登録部、１３２  派生関係登録部、１４０  要求処理部、２００  文書操作部、２０２  ＩＤ割り当て部、２０４  派生関係組込部、２０６  分岐時処理部、２１０  登録処理部、５００  履歴ツリー取得部、５２０  履歴ツリー統合部、５２２  分岐時新規登録ノード処理部、５３０  ワークフロー処理部、５３２  分岐・結合検出部、５３４  分岐種類判定部、５３６  分岐条件設定部、５３８  結合種類設定部、５４０  ワークフローＤＢ。
【図１】
2010191709.tif 000003
【図２】
2010191709.tif 000004
【図３】
2010191709.tif 000005
【図４】
2010191709.tif 000006
【図５】
2010191709.tif 000007
【図６】
2010191709.tif 000008
【図７】
2010191709.tif 000009
【図８】
2010191709.tif 000010
【図９】
2010191709.tif 000011
【図１０】
2010191709.tif 000012
【図１１】
2010191709.tif 000013
【図１２】
2010191709.tif 000014
【図１３】
2010191709.tif 000015
【図１４】
2010191709.tif 000016
【図１５】
2010191709.tif 000017
【図１６】
2010191709.tif 000018
【図１７】
2010191709.tif 000019
【図１８】
2010191709.tif 000020
【図１９】
2010191709.tif 000021
【図２０】
2010191709.tif 000022
【図２１】
2010191709.tif 000023
【図２２】
2010191709.tif 000024
【図２３】
2010191709.tif 000025
【図２４】
2010191709.tif 000026
【図２５】
2010191709.tif 000027
【図２６】
2010191709.tif 000028
【図２７】
2010191709.tif 000029
【図２８】
2010191709.tif 000030
【図２９】
2010191709.tif 000031
【図３０】
2010191709.tif 000032
【図３１】
2010191709.tif 000033
【図３２】
2010191709.tif 000034
【図３３】
2010191709.tif 000035
【図３４】
2010191709.tif 000036
【図３５】
2010191709.tif 000037
【図３６】
2010191709.tif 000038
【図３７】
2010191709.tif 000039