(57)【要約】【課題】社員の異動など、実行者の属性が変更されても適切にワークフローを進めることができるワークフロー管理システムを提供すること。【解決手段】一連の作業単位のそれぞれが実行される実行順序が定められたワークフローを管理するワークフロー管理システムであって、作業単位を実行する実行者が有する属性を格納する実行者情報格納部と、実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が有する属性が満たすべき条件を格納するプロセス情報格納部と、一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけてプロセス情報格納部が格納している条件に適合する属性を有する実行者を、それぞれの作業単位を実行する実行者として実行者情報格納部が格納している実行者の中から選択する実行者選択部とを備える。【選択図】図２
2008250556.tif 000002
【特許請求の範囲】
【請求項１】
一連の作業単位のそれぞれが実行される実行順序が定められたワークフローを管理するワークフロー管理システムであって、
作業単位を実行する実行者が有する属性を格納する実行者情報格納部と、
前記実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が有する属性が満たすべき条件を格納するプロセス情報格納部と、
前記一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけて前記プロセス情報格納部が格納している条件に適合する属性を有する実行者を、それぞれの作業単位を実行する実行者として前記実行者情報格納部が格納している実行者の中から選択する実行者選択部と
を備えるワークフロー管理システム。
【請求項２】
前記実行者選択部は、一の作業単位が実行される順番より予め定められた順番だけ前の順番で実行される作業単位が実行された場合に、当該一の作業単位が実行される順番に対応づけて前記プロセス情報格納部が格納している条件に適合する属性を有する実行者を、当該一の作業単位を実行すべき実行者として前記実行者情報格納部が格納している実行者の中から選択する
請求項１に記載のワークフロー管理システム。
【請求項３】
前記プロセス情報格納部は、前記一連の作業単位が実行される前に実行者が決定されるべきか否かを示す情報を前記実行順序における順番のそれぞれに対応づけてさらに格納しており、
前記実行者選択部は、前記一連の作業単位が実行される前に実行者が決定されるべき旨を示す情報及び前記実行順序における順番に対応づけて前記プロセス情報格納部が格納している条件に適合する属性を有する実行者を、当該順番で作業単位を実行すべき実行者として、前記一連の作業単位が実行される前に、前記実行者情報格納部が格納している実行者の中から選択する
請求項１に記載のワークフロー管理システム。
【請求項４】
前記実行者情報格納部が格納している実行者の属性を変更する実行者属性変更部
をさらに備え、
前記実行者選択部は、前記実行者選択部によって選択された実行者の属性が前記実行者属性変更部によって変更された場合に、当該属性が変更された実行者が実行すべき作業単位が実行される順番に対応づけて前記プロセス情報格納部が格納している条件に適合する属性を有する実行者を、当該属性が変更された実行者が実行すべき作業単位を実行する実行者として、前記実行者情報格納部が格納している実行者の中から新たに選択し直す
請求項３に記載のワークフロー管理システム。
【請求項５】
前記一連の作業単位が実行される前に、前記プロセス情報格納部が前記実行順序における順番のそれぞれに対応づけて格納している条件に適合する属性を有する実行者を、前記実行者情報格納部が格納している実行者の中から選択する予定実行者選択部と、
前記予定実行者選択部が選択した実行者を、前記プロセス情報格納部が格納している、当該実行者が実行する作業単位が実行される前記実行順序における順番のそれぞれに対応づけて出力する予定実行者出力部と
をさらに備える請求項１に記載のワークフロー管理システム。
【請求項６】
前記実行者情報格納部は、作業単位を実行する実行者が所属する組織を格納し、
前記プロセス情報格納部は、前記実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が所属すべき組織を対応づけて格納し、
前記実行者選択部は、前記一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけて前記プロセス情報格納部が格納している組織に所属する実行者を、それぞれの作業単位を実行する実行者として前記実行者情報格納部が格納している実行者の中から選択する
請求項１に記載のワークフロー管理システム。
【請求項７】
前記実行者属性変更部は、実行者が所属する組織に変更があった場合に、前記実行者情報格納部が格納している実行者が所属している組織を変更する
請求項６に記載のワークフロー管理システム。
【請求項８】
一連の作業単位のそれぞれが実行される実行順序が定められたワークフローを管理するワークフロー管理方法であって、
作業単位を実行する実行者が有する属性を格納する実行者情報格納段階と、
前記実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が有する属性が満たすべき条件を格納するプロセス情報格納段階と、
前記一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけて前記プロセス情報格納段階において格納されている条件に適合する属性を有する実行者を、それぞれの作業単位を実行する実行者として前記実行者情報格納段階において格納されている実行者の中から選択する実行者選択段階と
を備えるワークフロー管理方法。
【請求項９】
一連の作業単位のそれぞれが実行される実行順序が定められたワークフローを管理するワークフロー管理システム用のプログラムであって、前記ワークフロー管理システムを、
作業単位を実行する実行者が有する属性を格納する実行者情報格納部、
前記実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が有する属性が満たすべき条件を格納するプロセス情報格納部、
前記一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけて前記プロセス情報格納部が格納している条件に適合する属性を有する実行者を、それぞれの作業単位を実行する実行者として前記実行者情報格納部が格納している実行者の中から選択する実行者選択部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフロー管理システム、ワークフロー管理方法、及びプログラムに関する。特に本発明は、ワークフローを管理するワークフロー管理システム及びワークフロー管理方法、並びにワークフロー管理システム用のプログラムに関する。
【背景技術】
【０００２】
文書を回覧して決済するワークフローシステムとして、文書に対して回議者が実行可能な操作を特定し、回議者からの実行可能な操作から選択された何れかにしたがって、文書のステータスを変更し、次の回議者を特定するワークフロー制御システムが知られている（例えば、特許文献１参照。）。
【特許文献１】特開２００５−２８４７６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記特許文献１に記載のワークフローシステムによると、回議順連結テーブに記録された社員に文書が順次回議されていく。このため、ある案件に関する回議がスタートした後に、文書が回ってくる前にある社員がその案件を決済する権限のない部署に異動した場合でも、その社員に文書が回されてしまう虞がある。
【０００４】
そこで本発明は、上記課題を解決することができるワークフロー管理システム、ワークフロー管理方法、及びプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の第１の形態によると、一連の作業単位のそれぞれが実行される実行順序が定められたワークフローを管理するワークフロー管理システムであって、作業単位を実行する実行者が有する属性を格納する実行者情報格納部と、実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が有する属性が満たすべき条件を格納するプロセス情報格納部と、一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけてプロセス情報格納部が格納している条件に適合する属性を有する実行者を、それぞれの作業単位を実行する実行者として実行者情報格納部が格納している実行者の中から選択する実行者選択部とを備える。
【０００６】
実行者選択部は、一の作業単位が実行される順番より予め定められた順番だけ前の順番で実行される作業単位が実行された場合に、当該一の作業単位が実行される順番に対応づけてプロセス情報格納部が格納している条件に適合する属性を有する実行者を、当該一の作業単位を実行すべき実行者として実行者情報格納部が格納している実行者の中から選択してよい。
【０００７】
本発明の第２の形態によると、一連の作業単位のそれぞれが実行される実行順序が定められたワークフローを管理するワークフロー管理方法であって、作業単位を実行する実行者が有する属性を格納する実行者情報格納段階と、実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が有する属性が満たすべき条件を格納するプロセス情報格納段階と、一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけてプロセス情報格納段階において格納されている条件に適合する属性を有する実行者を、それぞれの作業単位を実行する実行者として実行者情報格納段階において格納されている実行者の中から選択する実行者選択段階とを備える。
【０００８】
本発明の第３の形態によると、一連の作業単位のそれぞれが実行される実行順序が定められたワークフローを管理するワークフロー管理システム用のプログラムであって、ワークフロー管理システムを、作業単位を実行する実行者が有する属性を格納する実行者情報格納部、実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が有する属性が満たすべき条件を格納するプロセス情報格納部、一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけてプロセス情報格納部が格納している条件に適合する属性を有する実行者を、それぞれの作業単位を実行する実行者として実行者情報格納部が格納している実行者の中から選択する実行者選択部として機能させる。
【０００９】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１０】
本発明によれば、例えば社員の異動など、実行者の属性が変更されても適切にワークフローを進めることができるワークフロー管理システムを提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
図１は、一実施形態に係るワークフローシステム１００の構成の一例を示す。ワークフローシステム１００は、複数の社員１９０ａ−ｆ（以下、社員１９０と総称する。）或いは複数の業務処理装置１６０ａ−ｃ（以下、業務処理装置１６０と総称する。）によって遂行されるビジネスプロセスを管理する。例えば、ワークフローシステム１００は、ビジネスプロセス全体あるいはビジネスプロセスの一部において、ビジネスプロセスを遂行する上で必要となる文書等のデータ又は作業を、実行者（社員１９０又は業務処理装置１６０）から次の実行者へ引き継ぐ。例えば、ワークフローシステム１００は、複数の社員１９０にわたる確認業務、承認業務、又は決済業務等の、一連の業務の進行を管理する。例えば、ワークフローシステム１００は、いわゆる回議システム又は稟議システムとして機能してよい。なお、社員１９０とは会社等の従業員であってよい。また、実行者とは、社員、従業員等の会社組織に含まれる人員だけでなく、ビジネスプロセスに参加する人物及び装置を示す。
【００１３】
ワークフローシステム１００は、ワークフロー管理装置１１０、社員１９０を認証する複数の認証サーバ１４０ａ及びｂ（以後、認証サーバ１４０と総称する。）、複数の業務処理装置１６０ａ−ｃ（以後、業務処理装置１６０と総称する。）、複数のユーザ端末１７０ａ−ｆ（以後、ユーザ端末１７０と総称する。）、及びネットワーク１８０を有する。ワークフロー管理装置１１０は、ワークフロー管理サーバ１２０及びデータベース１３０を有する。なお、ワークフロー管理装置１１０は、この発明におけるワークフロー管理システムの一例である。
【００１４】
ユーザ端末１７０は、ネットワーク１８０によってワークフロー管理装置１１０と接続されている。ネットーワーク１８０は、インターネット、又はコンピュータ・ネットワークであってよい。ネットーワーク１８０は、ＷＡＮ、ＭＡＮ、及びＬＡＮを含む。ユーザ端末１７０は、パーソナルコンピュータ、専用端末であってよいし、携帯電話又はＰＤＡ等の情報携帯端末であってもよい。
【００１５】
ワークフロー管理装置１１０は、一連の業務単位を含むビジネスプロセスを開始する前に、社員１９０等からデータが入力されることにより、業務の流れを定義するプロセス定義データを作成する。例えば、ワークフロー管理装置１１０は、業務単位のそれぞれが処理されるべき順序及び業務単位のそれぞれを処理する実行者を定義する。そして、ワークフロー管理装置１１０は、実行者によって業務単位が処理されると、当該業務単位の次の業務単位を処理する実行者に、次の業務単位を処理すべきことを通知する。このように、ワークフロー管理装置１１０は、一連の作業単位のそれぞれが実行される実行順序が定められたワークフローを管理する。なお、ビジネスプロセスは、この発明におけるワークフローの一例であり、ワークフローは、ビジネスプロセスに限らず、一以上の実行者が順次作業を行う多様なプロセスを含む。また、業務単位は、この発明における業務単位の一例である。また、業務単位は、業務処理装置１６０が実行してもよい。また、業務処理装置１６０は、ネットワーク１８０に接続された外部装置１５０に業務単位に含まれる業務の一部を依頼してもよい。
【００１６】
なお、ワークフローシステム１００は、複数のワークフロー管理装置１１０を備えてよい。また、ワークフロー管理装置１１０は、複数のワークフロー管理サーバ１２０を備えてよいし、複数のデータベース１３０を備えてもよい。この場合、複数のワークフロー管理サーバ１２０は、それぞれのワークフロー管理サーバ１２０に予め割り当てられた異なる処理を実行してよいし、例えばラウンドロビン方式によってアクセスされることによって、一のワークフロー管理サーバ１２０に処理が集中することを防ぐべく負荷分散されてよい。また、ワークフロー管理装置１１０は、複数のデータベース１３０を備えてもよい。この場合、複数のデータベース１３０のそれぞれは、予め定められた異なるデータを格納してよいし、データベース分散機能等によって、一のデータベース１３０にアクセスが集中することを防ぐべく負荷分散制御されてもよい。
【００１７】
図２は、ワークフロー管理装置１１０のブロック構成の一例を示す。ワークフロー管理装置１１０は、一連の作業単位のそれぞれが実行される実行順序が定められたプロセス情報に基づいてワークフローを管理する。ワークフロー管理装置１１０は、制御情報格納部２００、制御部２２０、出力部２９０、情報変更部２６０、及び組織検索部３００を備える。制御情報格納部２００は、実行者情報格納部２０２、プロセス情報格納部２０４、組織情報格納部２０６、実行者格納部２０８、期限格納部２１０、平均処理時間格納部２１２、証跡情報格納部２１４、及びエラー情報格納部２１６を有する。制御部２２０は、実行者選択部２２２、予定実行者選択部２２５、プロセス生成部２３０、作業単位特定部２４０、基準時間幅設定部２５０、情報変更部２６０、及び実行内容抽出部２７０を有する。情報変更部２６０は、組織情報変更部２６２及び実行者属性変更部２６４を含む。実行内容抽出部２７０は、実行順差抽出部２７２、及び実行内容選択部２７４を含む。また、入力部２８０は、特定実行者入力部２８２を有する。出力部２９０は、予定実行者出力部２９２、実行内容出力部２９４、及び通知部２９６を有する。
【００１８】
実行者情報格納部２０２は、作業単位を実行する実行者が有する属性を格納する。そして、プロセス情報格納部２０４は、実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が有する属性が満たすべき条件を格納する。そして、実行者選択部２２２は、一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけてプロセス情報格納部２０４が格納している条件に適合する属性を有する実行者を、それぞれの作業単位を実行する実行者として実行者情報格納部２０２が格納している実行者の中から選択する。
【００１９】
具体的には、実行者選択部２２２は、一の作業単位が実行される順番より予め定められた順番だけ前の順番で実行される作業単位が実行された場合に、当該一の作業単位が実行される順番に対応づけてプロセス情報格納部２０４が格納している条件に適合する属性を有する実行者を、当該一の作業単位を実行すべき実行者として実行者情報格納部２０２が格納している実行者の中から選択する。
【００２０】
具体的には、実行者情報格納部２０２は、作業単位を実行する実行者が所属する組織を格納する。そして、プロセス情報格納部２０４は、実行順序における順番のそれぞれに対応づけて、当該順番で作業単位を実行する実行者が所属すべき組織を対応づけて格納する。そして、実行者選択部２２２は、一連の作業単位がそれぞれ実行される前に、それぞれの作業単位が実行される順番に対応づけてプロセス情報格納部２０４が格納している組織に所属する実行者を、それぞれの作業単位を実行する実行者として実行者情報格納部２０２が格納している実行者の中から選択する。そして、実行者属性変更部２６４は、実行者が所属する組織に変更があった場合に、実行者情報格納部２０２が格納している実行者が所属している組織を変更する。なお、組織に変更があった場合とは、社員１９０の部署の退職を含む異動、及び組織変更を含む。
【００２１】
なお、プロセス情報格納部２０４は、一連の作業単位が実行される前に実行者が決定されるべきか否かを示す情報を実行順序における順番のそれぞれに対応づけてさらに格納している。そして、実行者選択部２２２は、一連の作業単位が実行される前に実行者が決定されるべき旨を示す情報及び実行順序における順番に対応づけてプロセス情報格納部２０４が格納している条件に適合する属性を有する実行者を、当該順番で作業単位を実行すべき実行者として、一連の作業単位が実行される前に、実行者情報格納部２０２が格納している実行者の中から選択する。なお、一連の作業単位が実行される前とは、ビジネスプロセスが開始される前であってよい。
【００２２】
実行者属性変更部２６４は、実行者情報格納部２０２が格納している実行者の属性を変更する。例えば、実行者属性変更部２６４は、実行者情報格納部２０２が格納している実行者が所属している部署を変更する。そして、実行者選択部２２２は、実行者選択部２２２によって選択された実行者の属性が実行者属性変更部２６４によって変更された場合に、当該属性が変更された実行者が実行すべき作業単位が実行される順番に対応づけてプロセス情報格納部２０４が格納している条件に適合する属性を有する実行者を、当該属性が変更された実行者が実行すべき作業単位を実行する実行者として、実行者情報格納部２０２が格納している実行者の中から新たに選択し直す。
【００２３】
また、予定実行者選択部２２５は、一連の作業単位が実行される前に、プロセス情報格納部２０４が実行順序における順番のそれぞれに対応づけて格納している条件に適合する属性を有する実行者を、実行者情報格納部２０２が格納している実行者の中から選択する。そして、予定実行者出力部２９２は、予定実行者選択部２２５が選択した実行者を、プロセス情報格納部２０４が格納している、当該実行者が実行する作業単位が実行される実行順序における順番のそれぞれに対応づけて出力する。具体的には、予定実行者出力部２９２は、予定実行者選択部２２５が選択した実行者を、ユーザ端末１７０に出力する。
【００２４】
また、プロセス情報格納部２０４は、一連の作業単位で実行されるべき実行内容及び一連の作業単位のそれぞれを実行する実行者が有する属性が満たすべき条件を対応づけて格納する。そして、実行者格納部２０８は、一連の作業単位のそれぞれについて、プロセス情報格納部２０４が格納している条件に適合する属性を有する実行者を実行者情報格納部２０２が格納している実行者の中から選択して、プロセス情報格納部２０４が格納している実行内容に対応づけて格納する。具体的には、実行者格納部２０８は、実行者選択部２２２が選択した実行者を、実行内容に対応づけて格納する。
【００２５】
なお、特定実行者入力部２８２は、特定の実行者を入力する。例えば、特定実行者入力部２８２は、ユーザ端末１７０からワークフローシステム１００にログインした社員１９０を特定の実行者として入力してよいし、ユーザ端末１７０から入力された特定の社員１９０を特定の実行者として入力してよい。そして、実行内容抽出部２７０は、特定の実行者に対応づけて実行者格納部２０８が格納している実行内容を抽出する。そして、実行内容出力部２９４は、実行内容抽出部２７０が抽出した実行内容を、特定の実行者に対応づけて出力する。具体的には、実行内容出力部２９４は、実行内容を、特定の実行者に対応づけてユーザ端末１７０に出力してよい。
【００２６】
プロセス情報格納部２０４は、実行内容、一連の作業単位のそれぞれを実行する実行者が有する属性が満たすべき条件、及び一連の作業単位のそれぞれを実行すべき実行順序における順番を対応づけて格納している。そして、実行者格納部２０８は、プロセス情報格納部２０４が格納している実行内容に対応づけて、実行者及び当該実行者が実行する作業単位を実行すべき順番を格納する。そして、実行内容抽出部２７０は、特定の実行者に対応づけて実行者格納部２０８が格納している実行内容を抽出する。そして、実行内容出力部２９４は、実行内容抽出部２７０が抽出した実行内容を、当該実行内容及び特定の実行者に対応づけて実行者格納部２０８が格納している順番を、特定の実行者に対応づけて出力する。
【００２７】
なお、実行者格納部２０８は、作業単位が現在実行中であるか否かを示す実行状態にさらに対応づけて実行者を格納している。そして、実行順差抽出部２７２は、特定の実行者に対応づけて実行者格納部２０８が格納している実行内容のうち、特定の実行者及び当該実行内容に対応づけて実行者格納部２０８が格納している順番と、作業単位が現在実行中である旨を示す実行状態及び当該実行内容に対応づけて実行者格納部２０８が格納している順番との差を抽出する。そして、実行内容選択部２７４は、実行順差抽出部２７２が抽出した差が予め定められた差より小さい順番及び特定の実行者に対応づけて実行者格納部２０８が格納している実行内容を選択する。そして、実行内容出力部２９４は、実行内容選択部２７４が選択した実行内容を、当該実行内容及び特定の実行者に対応づけて実行者格納部２０８が格納している順番に対応づけて出力する。
【００２８】
また、実行者格納部２０８は、一連の作業単位のそれぞれが現在実行中であるか否かを示す実行状態及び実行中である作業単位が実行中になったタイミング、プロセス情報格納部２０４が格納している実行内容、及び実行者を対応づけて格納している。そして、実行内容抽出部２７０は、特定の実行者及び作業単位が現在実行中である旨を示す実行状態に対応づけて実行者格納部２０８が格納している実行内容のうち、実行者格納部２０８が実行内容に対応づけて格納しているタイミングが示す時刻と現在の時刻との間の時間幅が予め定められた時間幅より長い実行内容を抽出する。なお、作業単位が実行中になったタイミングとは、作業タイミングが実行可能になったタイミングを含む。例えば、作業単位が実行中になったタイミングとは、回議が回ってきたタイミングであってよい。
【００２９】
期限格納部２１０は、一連の作業単位が完了すべきタイミングを示す完了期限を実行者情報格納部２０２が格納している実行内容に対応づけて格納する。そして、実行内容抽出部２７０は、特定の実行者に対応づけて実行者格納部２０８が格納している実行内容のうち、期限格納部２１０が実行内容に対応づけて格納している完了期限と現在との間の時間幅が予め定められた時間幅より短い実行内容を抽出する。
【００３０】
実行者格納部２０８は、一連の作業単位のそれぞれについて、プロセス情報格納部２０４が格納している条件に適合する属性を有する実行者を実行者情報格納部２０２が格納している実行者の中から選択して、それぞれの作業単位が現在実行中であるか否かを示す実行状態に対応づけて格納する。具体的には、実行者格納部２０８は、実行者選択部２２２が選択した実行者を、実行者が作業単位を現在実行中であるか否かを示す実行状態に対応づけて格納する。そして、通知部２９６は、期限格納部２１０が格納している完了期限と現在との間の時間幅が予め定められた基準時間幅より短い場合に、作業単位が現在実行中である旨を示す実行状態に対応づけて実行者格納部２０８が格納している実行者に通知する。
【００３１】
基準時間幅設定部２５０は、基準時間幅を設定する。また、実行者格納部２０８は、一連の作業単位のそれぞれについて、それぞれの作業単位が現在実行中であるか否かを示す実行状態及びそれぞれの作業単位が実行されるべき実行順序における順番に対応づけて実行者を格納している。そして、基準時間幅設定部２５０は、実行者格納部２０８が格納している実行状態及び順番に基づいて現在実行中である作業単位より後に実行されるべき作業単位の数を算出し、算出した数がより多い場合により長い基準時間幅を設定する。
【００３２】
また、実行者格納部２０８は、一連の作業単位のそれぞれについて、作業単位が現在実行中であるか否かを示す実行状態及びそれぞれの作業単位が実行されるべき実行順序における順番に対応づけて実行者を格納している。また、平均処理時間格納部２１２は、実行者が作業単位を実行するのに要した所要時間の平均値を実行者に対応づけて格納する。そして、実行者選択部２２２は、実行者格納部２０８が格納している実行者、実行状態、及び順番に基づいて、現在実行中である作業単位より後に実行される作業単位を実行する実行者を特定する。そして、基準時間幅設定部２５０は、実行者選択部２２２が特定した実行者に対応づけて平均処理時間格納部２１２が格納している処理時間の平均値の合計値がより長い場合に、基準時間幅をより長く設定する。
【００３３】
なお、プロセス情報格納部２０４は、一連の作業単位のそれぞれが第１リンクデータを用いて実行されるべき実行順序における順番を定める第１プロセス情報、及び、第１プロセス情報で定められている一連の作業単位のうちの少なくとも１つの作業単位を含む一連の作業単位のそれぞれが第２リンクデータを用いて実行されるべき実行順序における順番を定める第２プロセス情報を格納する。そして、プロセス生成部２３０は、第１プロセス情報及び第２プロセス情報に基づいて、第１プロセス情報及び第２プロセス情報の双方で定められている作業単位である重複作業単位を第１リンクデータ及び第２リンクデータを用いて同時に実行させる新たなプロセス情報を生成する。
【００３４】
また、プロセス生成部２３０は、第１プロセス情報で定められている重複作業単位の直前に実行される第１直前作業単位と、第２プロセス情報で定められている重複作業単位の直前に実行される第２直前作業単位とが異なる場合に、第１直前作業単位及び第２直前作業単位が共に実行されたことを条件として重複作業単位を実行させる新たなプロセス情報を生成する。なお、プロセス生成部２３０は、第１プロセス情報で定められている重複作業単位の直前に実行される第１直前作業単位と、第２プロセス情報で定められている重複作業単位の直前に実行される第２直前作業単位とが異なり、第１直前作業単位が第２リンクデータを用いずに実行され、第２直前作業単位が第１リンクデータを用いずに実行される旨が定められている場合に、第１直前作業単位及び第２直前作業単位が共に実行されたことを条件として重複作業単位を実行させる新たなプロセス情報を生成してよい。
【００３５】
また、プロセス生成部２３０は、第１プロセス情報で定められている重複作業単位の直前に実行される第１直前作業単位と、第２プロセス情報で定められている重複作業単位の直前に実行される第２直前作業単位とが異なり、第１直前作業単位が第１リンクデータ及び第２リンクデータを用いて実行される旨が第１プロセス情報及び第２プロセス情報によって定められ、第２直前作業単位が第１リンクデータを用いずに実行される旨が定められている場合に、第２直前作業単位にも第１リンクデータ及び第２リンクデータを提供するとともに、第２直前作業単位に第１リンクデータを用いた実行を禁止する新たなプロセス情報を生成してよい。
【００３６】
また、プロセス生成部２３０は、第１プロセス情報で定められている重複作業単位の直前に実行される第１直前作業単位と、第２プロセス情報で定められている重複作業単位の直前に実行される第２直前作業単位とが異なり、第１直前作業単位が第１リンクデータ及び第２リンクデータを用いて実行される旨が第１プロセス情報及び第２プロセス情報により定められており、第１直前作業単位から重複作業単位までの間に実行される旨が第２プロセス情報により定められている作業単位である中間作業単位の数が予め定められた数より少ない場合に、中間作業単位に第１リンクデータ及び第２リンクデータを提供するとともに、中間作業単位に第１リンクデータを用いる実行を禁止する新たなプロセス情報を生成してよい。
【００３７】
プロセス情報格納部２０４は、一連の作業単位のそれぞれが実行されるべき実行順序における順番を定める第１プロセス情報、及び、第１プロセス情報で定められている一連の作業単位と異なる作業単位を含む一連の作業単位のそれぞれが実行されるべき実行順序における順番を定める第２プロセス情報を格納する。そして、プロセス生成部２３０は、第１プロセス情報及び第２プロセス情報に基づいて、第１プロセス情報により定められている一連の作業単位が完了したことを条件として、第２プロセス情報により定められている一連の作業単位を実行することを開始する新たなプロセス情報を生成する。
【００３８】
なお、プロセス情報格納部２０４は、一連の作業単位のそれぞれが第１リンクデータを用いて実行されるべき実行順序における順番を定める第１プロセス情報、及び、第１プロセス情報で定められている一連の作業単位と異なる作業単位を含む一連の作業単位のそれぞれが第１リンクデータと異なる第２リンクデータを用いて実行されるべき実行順序における順番を定める第２プロセス情報を格納している。そして、プロセス生成部２３０は、第１プロセス情報及び第２プロセス情報に基づいて、第１プロセス情報により定められている一連の作業単位が第１リンクデータを用いて完了したことを条件として、第２プロセス情報により定められている一連の作業単位を第２リンクデータを用いて実行することを開始する新たなプロセス情報を生成する。
【００３９】
また、実行者格納部２０８は、プロセス情報格納部２０４が格納している第１プロセス情報及び第２プロセス情報のそれぞれにより定められた一連の作業単位に対応づけて一連の作業単位のそれぞれを実行する実行者を格納する。実行制御部２２０は、プロセス生成部２３０が生成したプロセス情報に従って、第１プロセス情報により定められている一連の作業単位が完了した場合に、第２プロセス情報により定められている一連の作業単位のうちの最初の作業単位に対応づけて実行者格納部２０８が格納している実行者に当該最初の作業単位を実行すべき旨を通知する。
【００４０】
なお、組織検索部３００は、複数の階層（例えば、３階層以上）にわたる複数の部署を有するツリー構造において、特定の部署から複数の階層にわたって辿ることができる複数の部署を検索する。組織検索部３００の動作については、図３に関連して説明する。
【００４１】
なお、本実施形態における作業単位とは、ビジネスプロセスにおける作業の単位であり、いわゆるアクティビティと呼ばれるものであってよい。例えば、作業単位とは、業務における一の業務単位であってよい。具体的には、作業単位は、文書等の内容を確認或いはレビューする等の確認業務、業務を実行することを承認したり決裁したりする承認業務或いは決裁業務等を含む。他にも、作業単位とは、文書等の情報に基づいて新たな文書を作成したり、データベース等に対してデータを追加・更新・削除する業務等の処理業務を含む。
【００４２】
図３は、組織検索部３００のブロック構成の一例を示す。なお、組織検索部３００は、この発明における検索システムの一例である。組織検索部３００は、階層情報入力部３１０、節点情報格納部３２０、節点抽出部３３０、及び節点出力部３４０を有する。
【００４３】
階層情報入力部３１０は、節点の階層情報を入力する。例えば、階層情報入力部３１０は、組織情報格納部２０６が格納している組織に含まれる部署の階層情報を入力する。部署は、この発明における節点の一例である。そして、節点情報格納部３２０は、複数の節点のそれぞれについて、それぞれの節点を含みそれぞれの節点からルートに向かって上位の階層にある節点である上位節点を、当該上位節点が属する階層及びそれぞれの節点に対応づけて格納する。そして、節点抽出部３３０は、特定の節点が属する階層より上位の複数の階層のそれぞれ及び特定の節点に対応づけて節点情報格納部３２０がそれぞれ格納している複数の節点を抽出する。また、節点抽出部３３０はさらに、節点情報格納部３２０が特定の節点が属する階層と対応づけて特定の節点を格納している複数の節点を抽出する。節点出力部３４０は、節点抽出部３３０が抽出した節点を、制御部２２０に出力する。
【００４４】
図４は、ワークフロー管理装置１１０が管理するビジネスプロセス４００の一例を示す。ワークフロー５００は、建設工事を実施する場合のビジネスプロセスを示す。ワークフロー管理装置１１０は、一のビジネスプロセスにおいて順次実行されるべき一連の複数の業務単位４１０、４２０、４３０、４４０、４５０、及び４６０を有する。また、一連の複数の業務単位４１０、４２０、４３０、４４０、４５０、及び４６０は、順次実行されるべき一連の複数の業務単位（例えば、業務単位４１０ａ−ｄ、業務単位４４０ａ−ｄ、及び業務単位４６０ａ−ｄ）をそれぞれ含む。
【００４５】
プロセス情報格納部２０４は、業務単位４１０が実行された後に業務単位４２０が実行され、業務単位４２０が実行された後に、業務単位４３０及び４４０が実行され、業務単位４３０及び４４０の双方が実行された後に業務単位４５０が実行されることを格納している。また、プロセス情報格納部２０４は、業務単位４５０が実行された結果、例えば予算が超過していれば業務単位４６０が実行され、予算が超過していなければビジネスプロセスを終了する旨を格納している。
【００４６】
なお、業務単位４１０は見積伺を行う業務であり、業務単位４２０は、業務単位４１０における見積伺の結果に応じて予算伺を行う業務である。また、業務単位４３０は、業務単位４２０における予算伺の結果に応じて、それぞれ材料及び人員を発注する業務である。また、業務単位４５０は、業務単位４３０及び業務単位４４０において発注した発注結果に応じて、支払いを依頼する業務である。また、業務単位４６０は、予算が超過した場合には、予算超過の決済を求める業務である。以下に、業務単位４１０を例に挙げて、ワークフロー管理サーバ１２０の動作を説明する。
【００４７】
業務単位４１０ａは、見積伺を申請する業務を示す見積伺申請業務であり、例えば見積書等を作成する業務を含み、例えば工事担当者（例えば、社員１９０ａ）が実行する業務単位である。工事担当者がユーザ端末１７０を操作して見積書を添付して申請ボタンをクリックすると、業務単位４１０を開始する旨の指示が入力部２８０から入力される。そして、ワークフロー管理サーバ１２０は、業務単位４１０ａの次に実行すべき業務単位である業務単位４１０ｂ及び業務単位４１０ｃを実行するよう、業務単位４１０ｂ及び業務単位４１０ｃを実行すべき実行者としてそれぞれ割り当てられた実行者に、それぞれ業務単位を実行すべき旨の電子メールを出力部２９０から送信する。なお、当該電子メールのことを、本実施形態では業務実行通知メールと呼ぶ。
【００４８】
例えば、業務単位４１０ｂは、申請者の上司が申請を承認する業務を示す上司承認業務である。プロセス情報格納部２０４は、工事担当者の直属上司が業務単位４１０ｂを実行すべき旨を格納している。したがって、ワークフロー管理サーバ１２０は、プロセス情報格納部２０４を参照することによって、業務単位４１０ｂを実行すべき旨の業務実行通知メールを、工事担当者の直属上司（以下、社員１９０ｂとする。）に出力部２９０から送信する。
【００４９】
また、業務単位４１０ｃは、申請者が所属する部署内において申請内容をチェックする業務を示す部内担当チェック業務である。プロセス情報格納部２０４は、工事担当者が所属する部署と同じ部署に所属するチェック担当者が申請内容をチェックすべき旨を格納している。したがって、ワークフロー管理サーバ１２０は、プロセス情報格納部２０４を参照することによって、業務単位４１０ｃを実行すべき旨の業務実行通知メールを出力部２９０からチェック担当者（以下、社員１９０ｃとする。）に送信する。
【００５０】
なお、プロセス情報格納部２０４は、業務単位４１０ａが実行された後に、業務単位４１０ｂ及びｃが実行されるべき旨を格納している。したがって、ワークフロー管理サーバ１２０では、業務単位４１０ａが実行されると略同時に、通知部２９６が社員１９０ｂ及び１９０ｃに業務実行通知メールを送信する。
【００５１】
社員１９０ｂは、業務実行通知メールを受け取ると、ユーザ端末１７０ｂを操作してワークフロー管理サーバ１２０にログインする。すると、ワークフロー管理サーバ１２０は、社員１９０ｂが見積書にアクセスするアクセスボタン、承認する旨を示す承認ボタン、承認しない旨を示す非承認ボタンを含むメニューを作成して、ユーザ端末１７０ｂに送信する。社員１９０ｂがユーザ端末１７０ｂに表示されたメニューから、見積書にアクセスするアクセスボタンをクリックすると、ワークフロー管理サーバ１２０は見積書データをユーザ端末１７０ｂに送信する。社員１９０ｂは、見積書データを参照して、承認するか否かを判断する。承認する場合には、社員１９０ｂは、ユーザ端末１７０ｂを操作して、承認ボタンをクリックする。入力部２８０は、いずれのボタンがクリックされたかを識別する情報をユーザ端末１７０ｂから取得する。ワークフロー管理サーバ１２０は、当該情報によって、業務単位４１０ｂが社員１９０ｂによって実行され、業務単位４１０ｂにおいて承認された否かを判断する。
【００５２】
同様にして、ワークフロー管理サーバ１２０は、社員１９０ｃによって業務単位４１０ｃが実行され、業務単位４１０ｃにおいてチェックされた結果がＯＫであるか否かを判断する。ワークフロー管理サーバ１２０は、業務単位４１０ｂにおいて承認され、かつ、業務単位４１０ｃにおいてチェック結果がＯＫである場合に、次に実行されるべき業務単位４１０ｄに業務フローを進める。なお、業務単位４１０ｂにおいて承認されていないか、業務単位４１０ｃにおいてチェック結果がＯＫでない場合には、その旨を申請者である社員１９０ａに電子メールで通知する。
【００５３】
業務単位４１０ｄは、申請者が所属する部が属する本部長が決裁を行う業務を示す本部長決済業務である。プロセス情報格納部２０４は、工事担当者が所属する部の本部長が業務単位４１０ｄを実行すべき旨を格納している。したがって、ワークフロー管理サーバ１２０は、プロセス情報格納部２０４を参照することによって、業務単位４１０ｄを実行すべき旨の業務実行通知メールを、工事担当者が所属する部の部長（以下、社員１９０ｄとする）に出力部２９０から送信する。そして、ワークフロー管理サーバ１２０は、上記と同様にして、業務単位４１０ｄが社員１９０ｄによって実行され、決済されたか否かを判断する。
【００５４】
そして、ワークフロー管理サーバ１２０は、業務単位４１０内の最後の業務単位である業務単位４１０ｄが決済されると、業務単位４１０内の次に実行される業務単位４２０にフローを進める。このようにして、ワークフロー管理サーバ１２０は、上記した業務単位４１０、４２０、４３０、４４０、４５０、及び４６０を、プロセス情報格納部２０４に格納されている実行順序で進めていく。なお、プロセス情報格納部２０４は、一の業務単位４２０が承認されない場合には、直前に実行される業務単位を再度実行する旨を格納してよい。また、プロセス情報格納部２０４は、業務単位に対応づけて、当該業務単位が承認されなかった場合に再度実行させるべき業務単位を格納してもよい。そしてワークフロー管理サーバ１２０は、一の業務単位が承認されなかった場合には、当該一の業務単位に対応づけてプロセス情報格納部２０４が格納している業務単位を実行するよう、当該業務単位を実行すべき実行者に通知してよい。
【００５５】
なお、人員発注を行う業務である業務単位４４０において、プロセス情報格納部２０４は、前に実行した業務単位４１０におけるチェック担当者（社員１９０ｃ）が、業務単位４４０を開始する申請者となる旨を格納している。従って、ワークフロー管理サーバ１２０は、業務単位４４０の直前に実行する業務単位４２０が実行されると、業務単位４４０の最初の業務単位である業務単位４４０ａを実行すべき旨を示す業務実行通知メールを、社員１９０ｃに送信する。そして、ワークフロー管理サーバ１２０は、上記において業務単位４１０ａ−ｄを進める場合の制御と同様にして、業務単位４４０a−ｄを進める。
【００５６】
また、予算超過伺いを行う業務である業務単位４６０において、プロセス情報格納部２０４は、前に実行した業務単位４４０における承認者（例えば、社員１９０ｂ）が、業務単位４４０を開始する申請者となる旨を格納している。従って、ワークフロー管理サーバ１２０は、業務単位４６０の直前に実行する業務単位４５０が実行され、予算が超過した場合には、業務単位４６０の最初の業務単位である４６０ａを実行すべき旨を示す業務実行通知メールを、社員１９０ｂに送信する。そして、ワークフロー管理サーバ１２０は、上記において業務単位４１０ａ−ｄを進める場合の制御と同様にして、業務単位４６０a−ｄを進める。
【００５７】
なお、業務単位４２０、４３０、及び４５０も、業務単位４１０、４４０、及び４６０と同様に、複数の業務単位を含むが、説明が分かりにくくなることを防ぐために省略している。以上説明したように、ワークフロー管理サーバ１２０は、例えば、業務単位４１０内における一連の業務単位を実行する業務フローと、業務単位４１０内における一連の業務単位を実行する業務フローとを繋げて、ビジネスプロセスを管理することができる。したがって、ワークフロー管理装置１１０によると、例えばビジネスプロセスを起票する起票プロセスと、ビジネスプロセスの主要部である本プロセスとを分離して管理しつつ、起票プロセスと本プロセスとを結合して進行させることができる。
【００５８】
以下、制御情報格納部２００が格納しているデータの具体例と、当該データを利用したワークフロー管理装置１１０の動作について説明する。以下の例では、説明を分かりやすく、かつワークフロー管理装置１１０による各種制御内容をコンパクトに説明するために、出張申請の回議を一例に挙げて、ワークフロー管理装置１１０の動作の詳細を説明する。なお、回議はビジネスプロセスの一例であり、ワークフロー管理装置１１０は、回議以外の多様なビジネスプロセスを管理することができることは言うまでもない。
【００５９】
図５は、出張申請における回議を定義したプロセス定義情報の一例を示す。申請、承認、確認、決裁、予算処理、及び発券依頼を含む一連の業務単位には、各業務単位を実行すべき実行者の役職、部署等の、実行者の属性が定められている。また、各業務単位５１０、５２０、５３０、５４０、５５０、及び５６０には、各業務単位の実行順序が定める回議順０、回議順１、回議順１、回議順２、回議順３−１、及び回議順３−２が割り当てられている。
【００６０】
なお、本図の例では、ワークフロー管理サーバ１２０は、業務単位５１０が完了すると、業務単位５２０及び５３０を実行させるべく、それぞれの業務単位を実行する実行者に略同一のタイミングで業務実行通知メールを送る。一方、業務単位５４０が完了すると、ワークフロー管理サーバ１２０は、決裁結果に応じて、業務単位５５０及び業務単位５６０のいずれか一方に、業務の処理を依頼する（ＯＲ分岐）。
【００６１】
図６、図７、及び図１０は、プロセス情報格納部２０４が格納するデータの一例をテーブル形式で示す。プロセス情報格納部２０４は、ビジネスプロセスを識別する情報を持つプロセステーブル６００、各業務単位の進行に関する情報を持つ回議順テーブル６１０、各業務単位の実行順序（回議順）に関する情報を持つ回議順関連テーブル６２０、回議順における一の業務単位を識別する情報を持つ回議ノードテーブル７００、次の順番の回議順に進む条件に関する情報を持つ分岐条件テーブル１０００を含む。
【００６２】
プロセステーブル６００は、複数のビジネスプロセスをそれぞれ識別するプロセスコード及びプロセス名を対応づけて格納する。例えば、プロセステーブル６００は、図５に示す出張申請、図４に関連して説明した見積伺、人員発注、及び予算超過伺におけるビジネスプロセスをそれぞれ識別するプロセスコードｐｒｃ＃００１、ｐｒｃ＃００２、ｐｒｃ＃００３、及びｐｒｃ＃００４を格納している。
【００６３】
回議順テーブル６１０は、プロセスコード、プロセスにおける複数の回議順をそれぞれ識別する回議順コード、分岐の型を示す分岐タイプ、次の回議順に進行するために満たすべき条件の型を示す進行タイプ、可決閾値タイプ、及び可決閾値を対応づけて格納する。なお、可決閾値タイプ及び可決閾値の内容については後に説明する。
【００６４】
また、回議順関連テーブル６２０は、プロセスコード、回議順コード、パスコード、及び関連先回議順コードを対応づけて格納している。関連先回議順コードとは、次の回議順を示す回議順コードである。また、パスコードは、当該関連先回議順コードと自身の回議順の繋がりを識別する情報である。回議順テーブル６１０及び回議順関連テーブル６２０によって、各回議順の間の繋がり（以後、パスと呼ぶ。）が定義され、したがって業務単位の実行順序が定められる。
【００６５】
なお、回議順テーブル６１０が格納している分岐タイプの値は、前及び／又は後の回議順との間の進行経路を示す情報である。例えば、回議順テーブル６１０は、回議順コードｔｒｎ＃００、ｔｒｎ＃０１、ｔｒｎ＃０３−１、及びｔｒｎ＃０３−２に対応づけて、"通常"の分岐タイプを格納している。分岐タイプが"通常"とは、前の回議順との間に１本のパスが存在し、後の回議順との間に１本のパスが存在することを示す。回議順テーブル６１０は、ｔｒｎ＃０２に対応づけて"ＯＲ分岐"の分岐タイプを格納している。この"ＯＲ分岐"とは、前の回議順との間に１本のパスが存在し、後の回議順との間に複数本のパスが存在し、かつ、当該複数本のパスのうち何れか１本のパスを排他的に選択して、次の回議順に進むことができる旨を示す。
【００６６】
他にも、図５には具体例が示されないが、回議順テーブル６１０は、"通常"、"ＯＲ分岐"の分岐タイプの他に、"ＡＮＤ分岐"又は"合体"を分岐タイプとして格納することができる。"ＡＮＤ分岐"は、前の回議順との間に１本のパスが存在し、後の回議順との間に複数本のパスが存在し、かつ、当該複数本のパスの全てが示す回議順に進めることができる旨を示す。また、"合体"とは、前の回議順との間に複数本のパスが存在し、後の回議順との間に１本のパスが存在することを示す。例えば、図４に関連して説明した業務単位４１０ｄへは、業務単位４１０ｂからのパスと業務単位４１０ｃからのパスが存在する。したがって、回議順テーブル６１０は、業務単位４１０ｄが実行される回議順に対応づけて"合体"を分岐タイプの値として格納することができる。
【００６７】
また、回議順テーブル６１０が格納している進行タイプの値は、"ＡＮＤ進行"、"多数決進行"が含まれる。"ＡＮＤ進行"は、複数の業務単位の全ての業務単位において承認がなされたことを条件として、次の回議順に進行する旨を示す。"多数決進行"は、複数の業務単位のうちの所定数又は所定の割合の業務単位において承認がなされたことを条件として、次の回議順に進行する旨を示す。
【００６８】
なお、進行タイプが"多数決進行"である場合には、回議順テーブル６１０は、可決閾値タイプ及び可決閾値を格納することができる。回議順テーブル６１０は、絶対数で閾値を指定する旨を示す"絶対数"又は割合で閾値を指定する旨を示す"パーセント"を、可決閾値タイプとして格納する。そして、回議順テーブル６１０は、当該可決閾値を示す値（例えば、２個、６７％等）を、可決閾値として格納する。
【００６９】
図７は、回議ノードテーブル７００が格納するデータの一例をテーブル形式で示す。回議ノードテーブル７００は、プロセスコード、回議順コード、ノードコード、ノードタイプ、権限コード、動的フラグ、通知メール、削除可能フラグ、多数決重み、作業内容定義、組織タイプ、部署コード、階層タイプ、役職コード、役割コード、社員コード、グループコード、直属上司選択タイプ、直属上司指定ノード、直属上司指定部署Ｓｅｃｔｉｏｎ、直属上司指定部署階層タイプ、及び外部システムコードを対応づけて格納する。
【００７０】
ノードコードは、少なくとも同一プロセス及び同一回議順内において、業務単位を識別する情報である。例えば、回議ノードテーブル７００は、プロセスコードｐｒｃ＃００１、回議順コードｔｒｎ＃０１に対応づけて、"ｎｏｄ＃０１"及び"ｎｏｄ＃０２"を格納する。
【００７１】
ノードタイプとは、業務単位の種別を示す。例えば、ノードタイプには、"会社組織"、"直属上司"、"開始者"、"システム"がある。例えば、"開始者"は、この回議が開始する開始者が実行者である業務単位であることを示す。また、"直属上司"は直属上司を実行者として検索するタイプの業務単位であることを示し、"会社組織"は会社組織の中から実行者を検索するタイプの業務単位であることを示し、"システム"は実行者がシステムであることを示す。権限コードとは、アクセスすることができる権限を示し、権限コードは、"申請者"、"承認者"、"確認者"、"決裁者"、"予算担当"、"発券システム"等を値として持つ。ワークフロー管理サーバ１２０は、データベース１３０へのアクセス等、ワークフロー管理装置１１０に対する各種操作のそれぞれを実行することができるか否かを、各権限コードの値として予め割り当てられている。ワークフロー管理サーバ１２０は、各ノードが示す業務単位において、権限コードに応じて、社員１９０による各種操作の許否を決定する。
【００７２】
動的フラグとは、後に説明するように、回議が開始する前に実行者を決定するか、回議の途中で実行者を決定するかを識別する情報を示す。動的フラグが"静的"である場合、ワークフロー管理サーバ１２０は、回議が開始される前に実行者を決定し、動的フラグが"動的"である場合には、ワークフロー管理サーバ１２０は、回議が開始された後に実行者を決定する。
【００７３】
また、通知メールは、ワークフロー管理サーバ１２０が実行者に業務実行通知メールで通知すべきか否かを示す。削除可能フラグは、当該業務単位を削除することができるか否かを示す。ワークフロー管理サーバ１２０は、削除可能フラグがｆａｌｓｅである業務単位については、業務単位を削除する旨の指示が入力部２８０からなされても削除しない。ワークフロー管理サーバ１２０は、削除可能フラグがｔｒｕｅである業務単位については、業務単位を削除する旨の指示が入力部２８０からなさると、当該業務単位を削除する。
【００７４】
多数決重みは、上記の進行タイプが"多数決進行"である場合の、多数決に使用するカウント値への寄与の重みを示す。ワークフロー管理サーバ１２０は、各業務単位において承認されると、多数決の重みに応じて、カウント値を加算していく。そして、ワークフロー管理サーバ１２０は、加算して得られたカウント値を、回議順テーブル６１０が格納している可決閾値と比較して、当該カウント値が可決閾値以上である場合に、次の回議順に進める。
【００７５】
作業内容定義は、業務単位において実行すべき内容を特定する情報であってよい。例えば、作業内容定義は、"承認"、"確認"、"決裁"、"経理処理"、"発券"等の、業務単位において実行すべき業務内容を特定するテキスト情報であってよい。なお、この発明における実行内容とは、当該業務内容を含んでよい。組織タイプは、"通常"又は"仮想"を値として持つ。"通常"は実際の組織を示し、"仮想"は仮想組織を示す。仮想組織については後に説明するので、ここでは説明を省略する。部署コードは実行者が属するべき部署を示し、"開始者所属"、"経理部"等を値として持つ。"開始者所属"は、回議の開始者が所属する部署に実行者が所属しているべきことを示し、"経理部"は、実行者が"経理部"が示す部署に所属しているべきことを示す。
【００７６】
また、階層タイプは、実行者を検索する部署が存在する階層を示す。階層タイプとしては、"自部署"、"上位部署"、"下位部署"、及び"上下位部署"を含む。"自部署"は、例えば部署コードの値が示す部署に実行者が所属すべきことを示し、"上位部署"は、当該部署より上位の部署に実行者が所属すべきことを示す。同様に、"下位部署"は、より下位の部署に実行者が所属すべきことを示し、"上下位部署"は、より上位又は下位の部署に実行者が所属すべきことを示す。なお、"上位部署"、"下位部署"、"上下位部署"は、自部署を含んでよいし、含まなくてもよい。
【００７７】
役職コードは、"部長"、"課長"等、実行者の役職を識別する情報を示す。また、役割コードは、"庶務担当"、"経理担当"等、実行者の役割を識別する情報を示す。また、社員コードは、実行者を識別する社員コードを示す。また、グループコードは、実行者が参加するグループを識別する情報を示す。なお、グループとは、会社組織における部署を横断する社員１９０によって構成される作業部会、小委員会等のような、会社組織における部署とは異なる社員１９０のまとまりであってよい。
【００７８】
直属上司選択タイプは、直属上司の実行者を検索する場合に、どの系列に属する直属上司を選択するかを示す。例えば、直属上司選択タイプの一つの値である"ノード指定"は、指定されるノードの実行者の直属上司を検索すべきことを示す。直属上司指定ノードは、当該指定されるノードを識別するノードコードを値として持つ。直属上司指定部署Ｓｅｃｔｉｏｎは、実行者の所属部署を特定するものであり、"指定者所属部署"を含む。"指定者所属部署"は、直属上司指定ノードで指定されたノードコードで識別される業務単位の実行者が所属する部署を示す。また、直属上司指定部署階層タイプは、階層タイプと同様に、"自部署"、"上位部署"、"下位部署"、及び"上下位部署"を含む。また、外部システムコードは、いわゆる人物の社員１９０ではなく、業務処理装置１６０のような外部のシステムが処理を行う場合に、その外部のシステムを識別する情報を示す。
【００７９】
ここで、図７のデータを参照して、実行者選択部２２２が各業務単位の実行者を決定する決定方法について説明する。プロセスコードｐｒｃ＃０１、回議順コードｔｒｎ＃０１、及びノードコードｎｏｄ＃０１の業務単位の実行者（以下、回議順１の承認者とする。）を選択する場合、実行者選択部２２２は、業務単位を特定する情報に対応づけて回議ノードテーブル７００が格納しているノードタイプの値を参照する。ここでは、ノードタイプの値は"直属上司"であるので、実行者選択部２２２は、直属上司選択タイプの値を参照する。直属上司選択タイプの値は"ノード指定"であるので、実行者選択部２２２は、直属上司指定ノード及び直属上司指定部署Ｓｅｃｔｉｏｎの値を参照する。直属上司指定ノードはｎｏｄ＃００であり、直属上司指定部署Ｓｅｃｔｉｏｎの値は"指定者所属部署"であるので、実行者選択部２２２は、ｎｏｄ＃００の実行者が所属する部署を特定する。なお、実行者選択部２２２は、後に説明する実行者情報格納部２０２が格納している部署コードを参照することによって、実行者が所属する部署を特定することができる。また、実行者選択部２２２は、直属上司指定部署階層タイプの値を参照すると、"上位部署"であることから、ｎｏｄ＃００の業務単位を実行する実行者が所属する部署を含む上位の部署の中から、当該実行者の直属上司を選択する。
【００８０】
また、プロセスコードｐｒｃ＃０１、回議順コードｔｒｎ＃０１、及びノードコードｎｏｄ＃０２で識別される業務単位の実行者（以下、確認者という。）を選択する場合には、このノードタイプの値は"会社組織"であるので、実行者選択部２２２は、部署コード、階層タイプ、役職コード、及び役割コードの値を参照する。部署コードの値は"開始者所属"であるので、実行者選択部２２２は、ノードタイプの値が"開始者"の業務単位を実行する実行者が所属する部署を特定する。また、役職コードの値は指定されておらず、役割コードの値が"庶務担当"であるので、実行者選択部２２２は、後に説明する実行者情報格納部２０２の役割コードを参照することによって、庶務担当の役割コードを持つ社員１９０を検索する。なお、階層タイプの値は"上下位部署"であるので、実行者選択部２２２は、ノードタイプの値が"開始者"の業務単位を実行する実行者が所属する部署を含む、当該部署の上位及び下位の部署に所属している、"庶務担当"の役割コードを持つ社員１９０を実行者として検索する。
【００８１】
また、プロセスコードｐｒｃ＃０１、回議順コードｔｒｎ＃０２、及びノードコードｎｏｄ＃０１で識別される業務単位の実行者（以下、決裁者という。）を選択する場合には、ノードコード＃０１の実行者の直属上司を検索する点を除いて、上記のプロセスコードｐｒｃ＃０１、回議順コードｔｒｎ＃０１、及びノードコードｎｏｄ＃０１の実行者を検索する場合と同じである。また、プロセスコードｐｒｃ＃０１、回議順コードｔｒｎ＃０３−１、及びノードコードｎｏｄ＃０１で識別される業務単位の実行者（以下、予算担当者という。）を選択する場合には、実行者選択部２２２は経理部に所属する社員１９０を実行者として検索する。また、プロセスコードｐｒｃ＃０１、回議順コードｔｒｎ＃０３−２、及びノードコードｎｏｄ＃０１で識別される業務単位の実行者を選択する場合には、ノードタイプの値が"システム"であるので、外部システムコードを参照して、発券システムで識別される業務処理装置１６０を選択する。
【００８２】
図８は、会社組織の各部署の階層構造及び各部署における社員配置の一例を示す。また、図９は、図８における部署の階層構造及び社員配置において、実行者選択部２２２が決定した各業務単位を実行する実行者の一例を示す。
【００８３】
申請者、すなわちプロセスコードｐｒｃ＃０１、回議順コードｔｒｎ＃００、及びノードコードｎｏｄ＃０１で識別される業務単位の実行者がマイケルである場合には、実行者選択部２２２は、マイケルが所属する営業部の上位部署である関東事業部に所属し、かつマイケルより役職の高い上司であるボブを、承認者として選択する。また、実行者選択部２２２は、マイケルが所属する営業部を含む上階層又は下階層の部署に所属し、庶務担当の役割を持つ社員１９０を検索することによって、ジェニファー及びスーザンを確認者として選択する。
【００８４】
また、実行者選択部２２２は、承認者であるボブが所属する関東事業部の上位部署である東日本支社に所属し、かつボブより役職の高い支社長のジョンを、決裁者として選択する。また、実行者選択部２２２は、経理部に所属する社員１９０を検索することによって、ピーチ及びストロベリーを予算担当者として選択する。
【００８５】
一方、申請者がマイケルより上位のボブである場合には、実行者選択部２２２は、ボブが所属する関東事業部の上位部署である東日本支社に所属し、かつボブより役職の高い支社長のジョンを、承認者として選択する。また、実行者選択部２２２は、ボブが所属する関東事業部を含む上階層又は下階層の部署に所属し、庶務担当の役割を持つ社員１９０を検索することによって、ジェニファー及び／又はスーザンを確認者として選択する。
【００８６】
また、実行者選択部２２２は、承認者であるジョンが所属する関東事業部の上位部署である会社に所属し、かつボブより役職の高い社長のジョージを、決裁者として選択する。また、実行者選択部２２２は、経理部に所属する社員１９０を検索することによって、ピーチ及びストロベリーを予算担当者として選択する。このように、ワークフロー管理装置１１０によると、一つのプロセスを定義することによって、申請者の所属部署、役職等に応じた適切なルートで回議することができる。
【００８７】
なお、回議ノードテーブル７００は、確認者及び予算担当者に該当する動的フラグの値として"ｔｒｕｅ"を格納している。これは、回議が始まってから実行者を選択することを示す。このように、回議が開始された後に動的に実行者を選択する場合のワークフロー管理装置１１０の動作については後に説明する。
【００８８】
図１０は、分岐条件テーブル１０００が格納するデータの一例をテーブル形式で示す。分岐条件テーブル１０００は、プロセスコード、回議順コード、パスコード、優先順位、条件タイプ、下限金額、上限金額、下限役職レベル、上限役職レベル、及び役職コードを対応づけて格納する。例えば、図５で例示した出張申請の回議では、業務単位５４０が完了すると、業務単位５５０又は業務単位５６０のいずれかに進むことが定められている。このような場合、実行順２が完了した後に"ＯＲ分岐"すべきことが、回議順テーブル６１０に定められている。分岐条件テーブル１０００は、このようなＯＲ分岐する場合に、各パスでフローを進める場合に満たすべき条件をパスコードに対応づけて格納する。
【００８９】
図５の出張申請を例に挙げてワークフロー管理装置１１０の動作を説明すると、実行順２の業務単位５４０が完了すると、パスコードｐａｔ＃０３及びｐａｔ＃０４のいずれで識別されるパスに進むかを決定する。このとき、制御部２２０は、分岐条件テーブル１０００を参照して、条件タイプの値を取得する。パスコードｐａｔ＃０３に対応づけられた条件のように、条件タイプの値が"開始者の役職コード"である場合、制御部２２０は、分岐条件テーブル１０００の役職コードの値を参照する。役職コードの値は"支社長"であるので、制御部２２０は、図８に説明したいずれの場合にも、パスコードｐａｔ＃０３に対応づけられた条件に適合しない旨を判断する。
【００９０】
一方、パスコードｐａｔ＃０４に対応づけられた条件のように、条件タイプの値が"開始者の役職レベル"である場合、制御部２２０は、分岐条件テーブル１０００の下限役職レベル及び上限役職レベルの値を参照する。下限役職レベルの値は８、上限役職レベルの値は３であるので、例えばボブ及びマイケルの役職レベルが３−８であれば、図８に説明したいずれの場合にも、パスコードｐａｔ＃０４に対応づけられた条件に適合する旨を判断する。したがって制御部２２０は、パスコードｐａｔ＃０４に対応するパスで回議を進めることを決定する。
【００９１】
なお、制御部２２０は、分岐条件テーブル１０００が格納している複数の条件が適合することを判断した場合、分岐条件テーブル１０００がより高い優先順位に対応づけて格納しているパスコードが示すパスに回議を進めてよい。また、分岐条件テーブル１０００が格納する条件タイプには、"画面指定"を含む。この場合、制御部２２０は、画面入力値が適合する条件に対応づけて分岐条件テーブル１０００が格納しているパスに回議を進めてもよい。画面入力値とは、例えば出張申請の場合であれば、出張に要する費用であってよい。このような入力値は、社員１９０の操作によってユーザ端末１７０から入力されてワークフロー管理サーバ１２０に送信され、入力部２８０から入力される。そして、分岐条件テーブル１０００は、入力された金額が適合すべき下限金額及び上限金額を条件として格納することができる。そして制御部２２０は、入力された金額が当該下限金額以上及び／又は当該上限金額以下である場合に、当該条件に対応づけて分岐条件テーブル１０００が格納しているパスで回議を進める。
【００９２】
このように、分岐条件テーブル１０００が、適合すべき条件に対応づけてパスを格納しているので、例えば「申請者の役職レベルが本部長以上の場合、社長を含むパスに進む」等といった、申請者の役職レベル等に応じた適切なパスに回議を進めることができる。
【００９３】
図１１及び図１２は、実行者情報格納部２０２が格納するデータの一例をテーブル形式で示す。実行者情報格納部２０２は、社員１９０を識別する情報を持つ社員テーブル１１００、社員１９０が所属している部署を示す情報を持つ所属テーブル１２００、役職を識別する情報を持つ役職テーブル１２１０を含む。なお、実行者情報格納部２０２は、代理処理者設定テーブル１７００をさらに含んでよい。代理処理者設定テーブル１７００については、図１７に関連して説明する。
【００９４】
図１１を参照して、社員テーブル１１００は、複数の社員１９０をそれぞれ識別する社員コード、社員１９０の名前を示す社員名、社員１９０を認証する認証サーバ１４０を識別する認証サーバコード、社員１９０がワークフロー管理サーバ１２０にログインするために使用するログインＩＤ、社員１９０の電子メールアドレスを示す社員メールアドレス、社員１９０の電話番号を示す電話番号、退職暫定開始日、及び退職暫定終了日を対応づけて格納する。なお、退職暫定開始日及び退職暫定終了日については、後に説明する。
【００９５】
ワークフロー管理サーバ１２０は、ユーザ端末１７０からアクセスがあった場合に、ログインＩＤとパスワードを入力する画面をユーザ端末１７０に表示させる。ワークフロー管理サーバ１２０は、ログインＩＤとパスワードを受信すると、入力されたログインＩＤに対応づけて社員テーブル１１００が格納している認証サーバコードで識別される認証サーバ１４０に、ログインＩＤ及びパスワードを送信する。認証サーバ１４０は、ログインＩＤとパスワードを用いて、認証結果をワークフロー管理サーバ１２０に送信する。ワークフロー管理サーバ１２０は、認証された旨が認証サーバ１４０から通知された場合に、社員１９０にログインを許可し、認証されなかった旨が認証サーバ１４０から通知された場合に、社員１９０にログインを許可しない。
【００９６】
なお、通知部２９６は、社員テーブル１１００を参照して、実行すべき業務単位の実行者に宛てて、業務単位を実行すべき旨の業務実行通知メールを送信することができる。
【００９７】
図１２を参照して、所属テーブル１２００は、所属コード、部署コード、役職コード、社員コード、異動前所属コード、異動後所属コード、及びデフォルト所属フラグを対応づけて格納している。また、役職テーブル１２１０は、役職コード、役職レベル、役職名、異動前役職コード、及び異動後役職コードを格納している。部署コードは部署を識別する情報であり、図１３に関連して詳細に説明する。所属コードは、社員１９０の所属を一意に識別する情報である。
【００９８】
役職コードは、役職を識別する情報である。役職レベルは、役職のレベルを示す値である。なお、役職レベルは数値であってよい。例えば、役職テーブル１２１０は、階層においてより高い役職に対応づけて、より小さい値の役職レベルを格納してよい。例えば分岐条件テーブル１０００が分岐するパスを選択するための条件として役職レベルの範囲を格納したりするなどのように、ワークフロー管理サーバ１２０は、役職レベルに応じて多様な形でビジネスプロセスの進行を制御することが可能になる。なお、所属テーブル１２００が格納している異動前所属コード及び異動後所属コード、並びに役職テーブル１２１０が格納している異動前役職コード及び異動後役職コードについては、後に説明する。
【００９９】
デフォルト所属フラグは、当該部署がデフォルトのログイン先であるか否かを示し、"ｔｒｕｅ"又は"ｆａｌｓｅ"を値として持つ。ワークフロー管理サーバ１２０は、認証された社員がログインする場合に、当該社員１９０を識別する社員コード及び"ｔｒｕｅ"のデフォルト所属フラグに対応づけて所属テーブル１２００が格納している部署コードを抽出して、当該部署コードによって識別される部署を、当該社員１９０がログインすべき部署として選択してよい。そして、ワークフロー管理サーバ１２０は、選択した部署に応じて、当該社員１９０がログイン直後のアクセス環境を設定してよい。例えば、ワークフロー管理サーバ１２０は、選択した部署専用のアクセス画面を、ユーザ端末１７０に表示させてよい。
【０１００】
このように、所属テーブル１２００は、一の社員１９０が複数の部署に所属している旨を格納することができる。そして、所属テーブル１２００は、複数の部署のそれぞれにおける社員１９０の役職を格納することができる。そして、ワークフロー管理サーバ１２０は、一の社員１９０が複数の部署に所属している場合であっても、ログイン時のデフォルトの所属を指定することで、ができる。なお、所属テーブル１２００は、社員１９０が予め定められた時間幅の期間内に社員１９０が最も多くログインした部署を識別する部署コード及び当該社員１９０を識別する社員コードに対応づけて、デフォルト所属フラグの値として"ｔｒｕｅ"を格納してよい。
【０１０１】
図１３は、組織情報格納部２０６が格納するデータの一例をテーブル形式で示す。組織情報格納部２０６は、部署を識別する情報を持つ部署テーブル１３００を含む。部署テーブル１３００は、部署コード、部署コードで識別される部署の名前を示す部署名、異動前部署コード、異動後部署コードを対応づけて格納している。なお、異動前部署コード及び異動後部署コードについては、後に説明する。社員テーブル１１００、所属テーブル１２００、役職テーブル１２１０、及び部署テーブル１３００により、ワークフロー管理サーバ１２０は、社員１９０が所属している部署、社員１９０の役職、社員１９０の役職に対応する役職レベルを特定することができる。
【０１０２】
図１４は、期限格納部２１０が格納している情報の一例をテーブル形式で示す。期限格納部２１０は、一連の業務単位が全て実行される期限を示す情報を持つ実フローテーブル１４００を含む。実フローテーブル１４００は、実際に実行する回議の実体それぞれに関する情報を格納するテーブルであり、ジョブＩＤ、プロセスコード、フローステータスタイプ、及び承認期限を対応づけて格納している。ジョブＩＤは、回議の実体を識別する情報である。プロセスコードは、プロセステーブル６００が格納しているプロセスコードを示し、回議がいずれのプロセス定義により定義されているかを示す。
【０１０３】
フローステータスタイプは、現在におけるビジネスプロセスの状態を示す情報であり、"実行中"、"業務終了済"、及び"回議終了済"を値として含む。" 実行中"は、回議が現在進行中であることを示し、最後に実行される業務単位がまだ完了していない状態を示す。"業務終了済"は、回議は完了していないが業務が終了した状態を示す。"業務終了済"は、例えば事後承認の場合のように、承認する業務単位がまだ完了していないが、その他の業務単位が完了している状態を示す。"回議終了済"は、回議が完了した旨、すなわち、定義された業務単位が全て完了した旨を示す。具体的には、業務が終了したと判断されるか否かを示す情報が回議順コードに対応づけて回議順テーブル６１０に定められていて、当該業務順で実行される業務単位が全て完了した場合に、分岐条件テーブル１０００は、フローステータスタイプの値として"業務終了済"を格納する。また、承認期限は、回議が完了すべきタイミング、例えば最後に実行される業務単位の実行が完了すべきタイミングを示す。
【０１０４】
図１５及び図１６は、実行者格納部２０８が格納しているデータの一例をテーブル形式で示す。実行者格納部２０８は、回議の実体における回議の進行を定める情報を持つ実回議順テーブル１５００、回議順における実行順序に関する情報を持つ実回議順関連テーブル１５１０及び回議の実体における業務単位の実際の実行者を特定する情報を持つ実回議ノードテーブル１６００を含む。
【０１０５】
図１５を参照して、実回議順テーブル１５００は、ジョブＩＤ、回議順コード、分岐タイプ、ターンステータスタイプ、進行タイプ、可決カウンタ、否決カウンタ、可決閾値タイプ、及び可決閾値を対応づけて格納する。なお、実回議順テーブル１５００の各フィールドのうち、回議順テーブル６１０と同名のフィールド名のフィールドが示す意味は同一であるので、説明を省略する。ジョブＩＤは、実フローテーブル１４００が格納しているジョブＩＤを格納する。これにより、制御部２２０は、実回議順テーブル１５００がいずれのプロセス定義から生成されたものであるかを特定することができる。
【０１０６】
ターンステータスタイプは、該当する回議順で実行される業務単位の処理状態を示し、" 未到達"、"処理中"、及び"終了済"を値として持つ。"未到達"は、当該回議順で実行すべき業務単位が実行できない状態である旨を示し、"処理中"は当該回議順で実行すべき業務単位のいずれかが実行中である旨を示し、"終了済"は当該回議順で実行すべき業務単位の全てが実行された状態である旨を示す。可決カウンタは、当該回議順で実行すべき業務単位のうち、可決或いは承認された業務単位の数を示す。なお、次の回議順の業務単位に進む条件として重み付け多数決が設定されている場合には、実回議順テーブル１５００は、重みが加えられた値を可決カウンタに格納してよい。否決カウンタは、当該回議順で実行すべき業務単位のうち、否決或いは否認された業務単位の数を示す。
【０１０７】
実回議順関連テーブル１５１０は、ジョブＩＤ、回議順コード、パスコード、関連先回議順コードを対応づけて格納する。なお、回議順コード、パスコード、及び関連先回議順コードは、回議順関連テーブル６２０における同名のフィールドと同一の情報を示すので、説明を省略する。ジョブＩＤは、実フローテーブル１４００が格納しているジョブＩＤを格納する。ワークフロー管理サーバ１２０は、実回議順関連テーブル１５１０を参照して、回議の実体における回議順の実行順序を特定することができ、特定した順番に従って、業務単位の実行を進めることができる。
【０１０８】
図１６を参照して、実回議ノードテーブル１６００は、ジョブＩＤ、回議順コード、ノードコード、ノードタイプ、ノードステータスタイプ、権限コード、動的フラグ、通知メール、削除可能フラグ、多数決重み、作業内容定義、組織タイプ、部署コード、役職コード、社員コード、外部システムコード、処理開始日時、及び処理完了日時を対応づけて格納する。なお、回議順コード、ノードコード、ノードタイプ、並び順、権限コード、動的フラグ、通知メール、削除可能フラグ、多数決重み、作業内容定義、組織タイプ、部署コード、役職コード、及び外部システムコードは、回議ノードテーブル７００における同名のフィールドと同一の情報を示すので、説明を省略する。
【０１０９】
実回議ノードテーブル１６００は、ジョブＩＤには、実フローテーブル１４００が格納しているジョブＩＤを格納する。また、実回議ノードテーブル１６００は、ノードステータスタイプに、当該業務単位の実行状態を格納する。ノードステータスタイプは、"未処理"、"処理可能"、及び"処理済"を値として持つ。"未処理"、"処理可能"、及び"処理済"はそれぞれ、業務単位を実行することができない状態、業務単位を実行することが可能な状態、及び業務単位の実行が完了した状態示す。なお、業務単位を実行することができない状態とは、当該業務単位を実行すべき実行順序における順番より前の順番に実行されるべき業務単位の実行が完了していない状態又は回議が開始されていない状態を含む。
【０１１０】
また、実回議ノードテーブル１６００は、実行者選択部２２２が選択した実行者の社員ＩＤを格納する。このように実回議ノードテーブル１６００は、回議順を示す情報と、社員１９０又は業務処理装置１６０を特定する情報とを対応づけて格納するので、ワークフロー管理サーバ１２０は、実回議ノードテーブル１６００を参照して、回議の実体における一連の業務単位を順次実行させることができる。また、ワークフロー管理サーバ１２０は、指定された社員１９０に将来回ってくる業務を抽出して、抽出した業務内容の一覧を当該社員１９０に提示したりすることができる。なお、ワークフロー管理サーバ１２０が社員１９０に業務内容の一覧を提示する場合の動作については、後に説明する。
【０１１１】
なお、実回議ノードテーブル１６００は、業務単位を実行できるようになった日時を処理開始日時に格納し、業務単位の実行が完了した日時を処理開始日時に格納する。例えば、制御部２２０は、一の業務単位の実行が完了した場合に、当該実行が完了した業務単位に対応づけて実回議ノードテーブル１６００が格納しているノードステータスを"処理可能"から"処理済"に更新するとともに、実行が完了した業務単位に対応づけて実回議ノードテーブル１６００が格納している処理完了日時に、実行が完了した日時を格納する。また、制御部２２０は、一の回議順で実行すべき全ての業務単位の実行が完了した場合に、当該業務単位の次の回議順の業務単位に対応づけて実回議ノードテーブル１６００が格納しているノードステータスを"未処理"から"処理可能"に更新するとともに、当該次の業務単位に対応づけて実回議ノードテーブル１６００が格納している処理開始日時に、当該次の業務単位の実行が可能になった日時を格納する。当該次の業務単位の実行が可能になった日時とは、例えば前の回議順で実行すべき全ての業務単位の実行が完了した日時であってよい。
【０１１２】
なお、実回議順テーブル１５００、実回議順テーブル１５１０、及び実回議ノードテーブル１６００は、回議を開始する指示が申請者からなされた場合に、プロセス生成部２３０が、プロセステーブル６００、回議順テーブル６１０、回議順関連テーブル、回議ノードテーブル７００、社員テーブル１１００、及び、役職テーブル１２１０、所属テーブル１２００が格納している情報に基づいて生成する。そして、実行者選択部２２２は、当該ビジネスプロセスに含まれる各業務単位を実行する社員１９０を社員テーブル１１００から選択して、実回議ノードテーブル１６００の社員コードの値に格納する。以下に、図５で示した出張申請の回議において、実行者選択部２２２が社員１９０を選択する動作について説明する。
【０１１３】
実行者選択部２２２は、出張申請の回議を識別するジョブＩＤと、当該ジョブＩＤに対応づけて実フローテーブル１４００が格納しているプロセスコードとを抽出する。そして、実行者選択部２２２は、当該ジョブＩＤ及び"静的"の動的フラグに対応づけて実回議ノードテーブル１６００が格納している回議順コード及びノードコードを選択する。そして、実行者選択部２２２は、抽出したプロセスコード、並びに、上記で選択した回議順コード及びノードコードに対応づけて回議ノードテーブル７００が格納している、実行者が適合すべき条件（以下、実行者適合条件という。）を読み出す。なお、ここでいう実行者適合条件とは、具体的には、回議ノードテーブル７００が格納している、ノードタイプ、組織タイプ、部署コード、階層タイプ、役職コード、役割コード、グループコード、直属上司選択タイプ、直属上司指定ノード、直属上司指定部署Ｓｅｃｔｉｏｎ、直属上司指定部署階層タイプを含む。なお、回議ノードテーブル７００で社員コードが直に指定されている場合には、社員１９０を選択する必要はないので、動的フラグの値が"静的"であったとしても、実行者選択部２２２が回議ノードテーブル７００から実行者適合条件を読み出す必要がないことは言うまでもない。
【０１１４】
そして、実行者選択部２２２は、抽出した実行者適合条件に適合する社員１９０を、社員テーブル１１００が格納している社員１９０の中から選択する。なお、実行者選択部２２２が社員１９０を選択する動作については、図７に関連して具体的に説明したので、ここでは説明を省略する。そして、実行者選択部２２２は、選択した社員１９０を特定する社員コードを、実回議ノードテーブル１６００の社員コードの値として格納する。このようにして、実行者選択部２２２は、申請者によるビジネスプロセスの申請時に、動的フラグが"静的"である業務単位を実行する社員１９０を識別する社員コードを抽出して、実フローテーブル１４００に格納する。
【０１１５】
そして、申請者から回議を開始する指示を入力部２８０から入力されると、実行者選択部２２２は、次の回議順で実行されるべき業務単位のうち、"動的"の動的フラグに対応づけて実回議ノードテーブル１６００が格納している業務単位を特定する。例えば、図５の出張申請の回議では、実行順１の確認者が、"動的"の動的フラグに対応づけられている。したがって、実行者選択部２２２は、実行順１の確認者が適合すべき実行者適合条件を回議ノードテーブル７００から読み出して、当該実行者適合条件に適合する社員１９０を識別する社員コードを抽出して、実フローテーブル１４００に格納する。
【０１１６】
回議が進んで、業務単位５４０が実行可能になったタイミングで、実行者選択部２２２は、実フローテーブル１４００が"動的"の動的フラグを持つ、次の順番に実行されるべき回議順３−１の業務単位５５０を実行する社員１９０を選択して、実フローテーブル１４００に記録する。なお、業務単位５４０が実行可能になったタイミングとは、回議順２の業務単位を実行する社員１９０がワークフロー管理サーバ１２０にアクセスして、業務単位５４０に関するデータが最初にアクセスされたタイミングであってよい。なお、実行者選択部２２２は、回議順２の業務単位を実行する社員１９０がワークフロー管理サーバ１２０にアクセスして、業務単位５４０に関するデータがアクセスされる毎に、回議順３−１の業務単位５５０を実行する社員１９０を選択してもよい。
【０１１７】
なお、上記の説明においては、実行者選択部２２２が、一の業務単位の直前の業務単位が実行可能になったタイミングで、当該一の業務単位を実行する実行者を選択するとしたが、実行者選択部２２２が実行者を選択するタイミングとしては、上記のタイミングの他にも、当該一の業務単位が実行される順番から予め定められた順番だけ前の順番で実行される業務単位が実行可能になったタイミングであってよい。他にも、実行者選択部２２２は、当該一の業務単位が実行される順番から予め定められた順番だけ前の順番で実行される業務単位（直前に実行される業務単位を含む）が完了したタイミングであってもよい。
【０１１８】
図１７を参照して、代理処理者設定テーブル１７００は、社員１９０に異動等が生じた場合に当該業務単位の実行を委託する他の社員１９０を格納するテーブルであり、所属コード（依頼者）、社員コード（委託先）、権限タイプ、期間指定フラグ、委託期間開始日、及び委託期間終了日を含む。
【０１１９】
所属コード（依頼者）は、委託することを依頼する社員１９０の所属を識別する、所属テーブル１２００に格納されている所属コードを示す。社員コード（委託先）は、実行を委託される社員１９０を識別する社員コードを示す。権限タイプは、権限の種別を示し、"申請者"、"担当者"等を値として持つ。権限タイプとして"申請者"を持つ社員は、申請者が行うことができる予め定められた操作をすることができる。具体的には、実際に回議を開始したり、回議を削除したりすることができる。権限タイプの値として"担当者"を持つ社員は、担当者が行うことができる予め定められた操作をすることができる。具体的には、添付された文書を閲覧したり、添付された文書を承認したりすることができる。期間指定フラグは、代理で実行することができる期限の有無を示す情報であり、ｔｒｕｅ又はｆａｌｓｅを値として持つ。ｔｒｕｅは期限が存在することを示し、ｆａｌｓｅは期限が存在しないことを示す。委託期間開始日は委託を開始する期間の開始日時を示し、委託期間終了日は委託を開始する期間の終了日日時を示す。
【０１２０】
次に、実行者選択部２２２の動作を説明する。通知部２９６が業務単位を実行する社員１９０に業務通知メールを送信する前に、実行者選択部２２２は、当該業務単位を識別するジョブＩＤ、回議順コード、及びノードコードに対応付けて実回議ノードテーブル１６００が格納している社員コード、部署コード、及び役職コードを抽出する。そして、実行者選択部２２２は、当該社員コード、部署コード、及び役職コードの組合せに対応づけて所属テーブル１２００が格納している所属コードを抽出する。そして、実行者選択部２２２は、当該所属コードに対応づけて代理処理者設定テーブル１７００が格納しているレコードを検索する。
【０１２１】
レコードが検索された場合には、実行者選択部２２２は、検索されたレコードの期間指定フラグ、委託期間開始日、委託期間終了日、及び社員コード（委託先）を読み出す。そして、期間指定フラグがｆａｌｓｅである場合には、実行者選択部２２２は、社員コード（委託先）が示す社員コードによって識別される社員１９０を、代理に実行する社員として選択する。なお、期間指定フラグがｔｒｕｅである場合には、実行者選択部２２２は、現在の日時が委託期間開始日と委託期間終了日との間にあることを条件として、社員コード（委託先）が示す社員コードによって識別される社員１９０を、代理に実行する社員として選択する。そして、通知部２９６は、当該社員コードに対応づけて社員テーブル１１００が格納している社員メールアドレスに、業務通知メールを送信する。一方、レコードが検索されなかった場合には、実行者選択部２２２は代理者が設定されていない旨を判断する。そして、通知部２９６は、実回議ノードテーブル１６００が格納している社員コードによって識別される社員１９０に業務通知メールを送信する。なお、実行者情報格納部２０２は、代理者情報を代理処理者設定テーブル１７００に設定した社員１９０を識別する社員コードをさらに格納してよい。具体的には、代理処理者設定テーブル１７００が、社員コード、部署コード、及び役職コードの組合せについて、当該組合せの代理者情報を設定した社員１９０を識別する社員コード（以下、代理者設定社員コードと呼ぶ。）を格納してよい。そして、実行者選択部２２２は、代理処理者設定テーブル１７００に代理者が設定されている旨を判断した場合には、社員コード（委託先）が示す社員コードの他に、代理者設定社員コードをさらに抽出してよい。そして、通知部２９６は、抽出された社員コード（委託先）及び代理者設定社員コードの値にそれぞれ対応づけて社員テーブル１１００が格納している社員メールアドレスに、業務通知メールを送信してよい。
【０１２２】
以上説明したように、ワークフロー管理装置１１０によると、代理処理者設定テーブル１７００が委託期間開始日及び委託期間終了日を格納しているので、社員が部署を変わったり退職したりしても、異動してから所定の期間、他の社員１９０に代理で処理させることができる。したがって、経費清算の申請を忘れたまま社員１９０が退職してしまっても、代理の社員１９０が経費清算を申請したりすることが可能になる。また、ワークフロー管理装置１１０は、代理処理者設定テーブル１７００が格納している権限タイプに応じて、代理の社員１９０に適切な権限を与えることができる。
【０１２３】
なお、ある社員１９０が他の部署に異動する場合を例に挙げて、所属テーブル１２００が格納するデータの遷移を以下に説明する。なお、以下の説明においては、分かりやすさを目的として、社員１９０が異動前に所属していた部署を旧部署と呼び、社員１９０が異動する異動先の部署を新部署と呼ぶ。また、社員１９０が旧部署に所属していることを示す所属コードを旧所属コード、社員１９０が新部署に所属していることを示す所属コードを新所属コードと呼ぶ。実行者属性変更部２６４は、社員１９０が異動した場合に、社員１９０が新部署に所属していることを示すレコードを所属テーブル１２００に追加する。このとき、実行者属性変更部２６４は、当該レコードの所属コードの値として新所属コードを記録する。そして、実行者属性変更部２６４は、旧所属コードに対応づけられた異動後所属コードの値として新所属コードを記録するとともに、新所属コードに対応づけられた異動前所属コードの値として旧所属コードを記録する。
【０１２４】
このように、所属テーブル１２００が異動前所属コード及び異動後所属コードを格納しているので、社員１９０が異動することによって業務単位を実行させる社員１９０を特定することができなくなることを未然に防ぐことができる。なお、実行者属性変更部２６４は、社員１９０が異動したとき、異動前所属コードの値を格納している他のテーブルに、異動後所属コードの値を格納させてもよい。また、社員１９０に異動があった場合において、異動前所属コードの値を異動後所属コードの値に更新する旨が入力部２８０から入力されたことを条件として、実行者属性変更部２６４は、異動前所属コードの値を格納している他のテーブルに異動後所属コードの値を格納させてもよい。
【０１２５】
なお、上記において、所属テーブル１２００が異動前後の所属コードを格納することについて説明したが、同様に、役職テーブル１２１０も、異動前後の役職コードを格納することができる。例えば、図１２を参照して、部長という役職が本部長という役職に変更されたとすると、組織情報変更部２６２は、役職コードｐｏｓ＃１３に対応づけて役職名"本部長"及び役職レベル３を持つレコードを所属テーブル１２００に追加する。そして、組織情報変更部２６２は、当該レコードの異動前役職コードの値として、部長の役職を示す役職コード（ｐｏｓ＃０３）を格納する。また、組織情報変更部２６２は、本部長の役職コード（ｐｏｓ＃１３）を、部長の役職を定めているレコードの異動後役職コードに設定する。
【０１２６】
同様に、部署テーブル１３００も、異動前後の部署コードを格納することができる。例えば、図１３を参照して、経理部という部署が会計部という部署に変更されたとすると、組織情報変更部２６２は、部署コードｓｅｃ＃１１に対応づけて部署名"会計部"を持つレコードを部署テーブル１３００に追加する。そして、組織情報変更部２６２は、当該レコードの異動前部署コードの値として、経理部の部署を示す部署コード（ｐｏｓ＃０１）を格納する。また、組織情報変更部２６２は、会計部の部署を示す部署コード（ｓｅｃ＃１１）を、経理部の部署を定めているレコードの異動後部署コードの値として設定する。
【０１２７】
なお、組織情報変更部２６２は、部署に異動があった場合、異動前部署コードの値を格納している他のテーブルに、異動後部署コードの値を格納させてもよい。また、部署に異動があった場合において、異動前部署コードの値を異動後部署コードの値に更新する旨が入力部２８０から入力されたことを条件として、組織情報変更部２６２は、異動前部署コードの値を格納している他のテーブルに異動後部署コードの値を格納させてもよい。同様に、組織情報変更部２６２は、役職に異動があった場合、異動前役職コードの値を格納している他のテーブルに、異動後役職コードの値を格納させてもよい。また、役職に異動があった場合において、異動前役職コードの値を異動後役職コードの値に更新する旨が入力部２８０から入力されたことを条件として、組織情報変更部２６２は、異動前役職コードの値を格納している他のテーブルに異動後役職コードの値を格納させてもよい。
【０１２８】
上記において、社員１９０の所属が変わった場合、役職の変更があった場合、及び組織変更等で部署に異動があった場合における、実行者属性変更部２６４及び組織情報変更部２６２の動作を説明した。上記のような異動があった場合には、既に回議が開始されている場合に、望ましいフローで回議を進めることができなくなってしまう場合がある。例えば、ある社員１９０が他の部署に異動したとする。そして、実回議ノードテーブル１６００には、その社員１９０が決裁する業務単位が定められていたとする。このような場合、そのままその社員１９０が決裁してしまうと、本来決裁権限のないはずの部署の社員１９０が決裁したことになってしまう。
【０１２９】
このような状況は、回議が始まる前に各業務単位の実行者が定められている場合に生じ得る。したがって、情報変更部２６０は、実行者属性変更部２６４によって所属している部署が変更された社員１９０が実行者として定められている場合に、当該社員１９０を識別する社員コードに対応づけて実回議ノードテーブル１６００が格納している動的フラグの値を、"動的"に変更する。なお、情報変更部２６０は、実回議ノードテーブル１６００が当該社員１９０を識別する社員コード及び"未処理"のノードステータスタイプに対応づけて格納している動的フラグの値を"動的"に変更することが望ましい。このようにすると、既に述べたように、当該社員１９０が実行すべき業務単位を実行することができるようになったタイミングで適切な実行者が検索されて、検索された実行者に業務実行通知メールが送信される。
【０１３０】
図１８は、平均処理時間格納部２１２が格納しているデータの一例をテーブル形式で示す。平均処理時間格納部２１２は、平均処理時間を識別する情報を持つ処理時間テーブル１８００を含む。処理時間テーブル１８００は、社員コード、平均処理時間、及び処理カウントを対応づけて格納している。平均処理時間は、社員コードで識別される社員１９０が一の業務単位の実行に要した時間長さを示す。例えば、平均処理時間は、実行者選択部２２２が選択した社員コードによって識別する社員１９０に通知部２９６が業務実行通知メールを送信した日時から、当該社員１９０が一の業務単位を実行した日時までの時間長さであってよい。また、処理カウントは、社員コードによって識別される社員１９０が業務単位を完了した回数を示す。
【０１３１】
既に述べたように、実回議ノードテーブル１６００は、処理開始日時及び処理終了日時を格納している。そして、制御部２２０は、所定のタイミングにおいて、実回議ノードテーブル１６００が格納している処理完了日時と処理開始日時との間の時間差の合計値及び業務単位の合計数を社員コード毎に算出する。そして、制御部２２０は、処理時間テーブル１８００が格納している平均処理時間及び処理カウントと、算出した時間差の合計値及び業務単位の合計数とに基づいて、社員１９０が過去に業務単位を処理するのに要した平均処理時間を算出する。そして、制御部２２０は、算出した平均処理時間を処理時間テーブル１８００が格納している平均処理時間の値として格納するとともに、処理時間テーブル１８００が格納している処理カウントに業務単位の合計数を加える。なお、所定のタイミングとは、社員１９０が業務単位を実行したタイミングであってよいし、予め定められた時刻（例えば、毎日午前２時等）であってよい。
【０１３２】
なお、ワークフロー管理サーバ１２０は、回議中のビジネスプロセスについて、その承認期限に近くなると、回議中であるビジネスプロセスに含まれる業務単位を実行している実行者に、実行を催促する電子メール（以下、催促メールと呼ぶ。）を通知する。このとき、ワークフロー管理サーバ１２０は、処理時間テーブル１８００が格納している平均処理時間を考慮して、承認期限に間に合うよう、余裕をもって催促メールを送信する。
【０１３３】
具体的には、作業単位特定部２４０は、"実行中"のフローステータスタイプに対応づけて実フローテーブル１４００が格納しているジョブＩＤを抽出する。そして、作業単位特定部２４０は、抽出したジョブＩＤ及び"処理可能"のノードステータスタイプに対応づけて実回議ノードテーブル１６００が格納している回議順コード及び社員コード（以下、実行中社員コードと呼ぶ。）を抽出する。そして、作業単位特定部２４０は、抽出した回議順コードに対応づけて実回議順関連テーブル１５１０が格納している関連先回議順コードを抽出する。そして、作業単位特定部２４０は、抽出した関連先回議順コードの値に対応づけて実回議順関連テーブル１５１０が格納している関連先回議順コードを抽出していくことによって、実行中の業務単位の後に実行される回議順コードを抽出することができる。そして、作業単位特定部２４０は、抽出した回議順コード及び抽出したジョブＩＤに対応づけて実回議ノードテーブル１６００が格納しているレコードを抽出する。これにより、作業単位特定部２４０は、実行中の業務単位の後に実行される業務単位を特定することができる。
【０１３４】
そして、通知部２９６は、作業単位特定部２４０が抽出したレコードの社員コードを抽出する。そして、通知部２９６は、抽出した社員コードに対応づけて平均所要時間テーブル１８００が格納している平均所要時間の合計値を算出する。そして、通知部２９６は、算出した合計値が基準時間幅設定部２５０によって設定された基準時間幅より長い場合に、実行中社員コードに対応づけて社員テーブル１１００が格納しているメールアドレスに、催促メールを送信する。なお、通知部２９６は、作業単位特定部２４０が抽出したレコードの社員コードに対応づけて平均所要時間テーブル１８００が格納している平均所要時間の合計値を、回議順コード毎に算出してよい。そして、通知部２９６は、算出した回議順コード毎の合計値を同一回議順コードに対応づけられた作業単位の数で除した値を算出し、算出した値を回議順コードにわたる合計値を算出してもよい。そして、通知部２９６は、算出した合計値が基準時間幅設定部２５０によって設定された基準時間幅より長い場合に、実行中社員コードに対応づけて社員テーブル１１００が格納しているメールアドレスに、催促メールを送信してもよい。なお、通知部２９６は、作業単位特定部２４０が抽出したレコードの数が予め定められた数より多い場合に、実行中社員コードに対応づけて社員テーブル１１００が格納しているメールアドレスに、催促メールを送信してもよい。なお、承認期限とは、この発明における完了期限であってよい。
【０１３５】
なお、実回議ノードテーブル１６００は、実行者である社員１９０が案件にアクセスしたか否かを示す情報を記憶してもよい。例えば、ワークフロー管理サーバ１２０が後に示す業務単位の一覧を示す画面を当該業務単位を実行する社員１９０が操作するユーザ端末１７０に送信した場合に、実回議ノードテーブル１６００は、当該業務単位にアクセスした旨を示す情報を記憶してよい。そして、通知部２９６は、現在の日時と、当該業務単位に対応づけて実回議ノードテーブル１６００が格納している処理開始日時との間の差が、代理処理者設定テーブル１７００が当該社員１９０に対応づけて格納している平均処理時間を越えた場合に、業務実行通知メールを再度送信してもよい。
【０１３６】
図１９は、プロセス定義を社員１９０に定義させるプロセス作成メニュー１９００の一例を示す。ワークフロー管理サーバ１２０はプロセス作成メニュー１９００をユーザ端末１７０に表示させる。なお、プロセス作成メニュー１９００は、複数のプロセス定義から新たな一のプロセス定義を作成するメニューの一例である。
【０１３７】
ユーザ端末１７０は、社員１９０からのマウス操作によってプロセス作成メニュー１９００に含まれるチェックボタン１９５０及び１９６０がチェックされると、氏名変更及び家族異動を示すプロセス定義が選択されたことを判断する。また、ユーザ端末１７０は、社員１９０からのマウス操作によってプロセス作成メニュー１９００に含まれるリンクデータ選択ボタン１９３０及び１９４０がマウスでクリックされると、氏名変更届及び家族異動届の届出文書であるコンピュータ・ファイル（氏名変更届．ｄｏｃ及び家族異動届．ｄｏｃ）を社員１９０に選択させる。
【０１３８】
そして、社員１９０からのマウス操作によってプロセス定義生成ボタン１９７０がクリックされると、ユーザ端末１７０は、氏名変更届の回議を定める業務単位１９１０〜１９１３及び家族異動届の回議を定める業務単位１９２０〜１９２２を用いて、新たなプロセス定義を生成することをプロセスワークフロー管理サーバ１２０に指示する。そして、プロセス生成部２３０は、ユーザ端末１７０から指示された情報を入力部２８０が受信すると、氏名変更届及び家族異動届のそれぞれのプロセス定義に基づいて、氏名変更届及び家族異動届を届け出る一の回議を定める一連の業務単位を生成する。
【０１３９】
具体的には、プロセス生成部２３０は、回議ノードテーブル７００に定められている各業務単位１９２０〜１９２２を実行する実行者が適合すべき条件を検索する。実行者が適合すべき条件とは、図５に関連して説明したように、回議ノードテーブル７００が格納している部署コード、階層タイプ、役職コード、役割コード、ノード指定、指定者所属部署、及び上位部署等の値を含む。
【０１４０】
そして、プロセス生成部２３０は、業務単位１９１０〜１９１３及び業務単位１９２０〜１９２２の中から、回議ノードテーブル７００が同じ条件を格納している業務単位を選択する。例えば、プロセス生成部２３０は、開始者である業務単位１９１０及び１９２０と、同じ指定部署が指定されている業務単位１９１３及び１９１２とを選択する。そこでプロセス生成部２３０は、業務単位１９１０の完了後に、業務単位１９１１及び１９２０に進む旨を回議順関連テーブル６２０の関連先回議順コードに記録するとともに、その分岐タイプがＡＮＤ分岐である旨を回議順テーブル６１０の分岐タイプに記録する。
【０１４１】
図２０は、プロセス定義によって定義される回議を開始する申請メニュー２０００の一例を示す。ワークフロー管理サーバ１２０は、社員１９０によってプロセス定義が選択されると、当該プロセス定義による回議を開始する申請メニュー２０００をユーザ端末１７０に表示させる。なお、本図の申請メニュー２０００は、図１９に関連して説明した氏名変更届及び家族異動届のそれぞれのプロセス定義からプロセス生成部２３０が生成したプロセス定義によって定められる回議を申請するメニューの一例である。当該一のプロセス定義は、前述したように、業務単位１９１０、１９１１、１９１２、１９１３、及び１９２１を含む。
【０１４２】
ユーザ端末１７０は、申請メニュー２０００に含まれる予定実行者取得ボタン２０３０がクリックされると、各業務単位を実行する実行者を検索するよう回議実行者ワークフロー管理サーバ１２０に指示する。予定実行者選択部２２は、実行者選択部２２２が実行者を選択する動作と同様にして、各業務単位を実行する実行者を選択する。そして、予定実行者出力部２９２は、予定実行者選択部２２５が選択した実行者をユーザ端末１７０に送信する。ユーザ端末１７０は、予定実行者選択部２２４から受信した実行者を、例えば各業務単位のアイコンに隣接して表示する。このように、ワークフローシステム１００では、回議前に予定実行者を申請者に確認させることができる。また、ワークフローシステム１００ではさらに、回議前又は回議中に、実行者を変更することができる。例えばユーザ端末１７０は、回議順１を示す領域がクリックされたことを検知すると、回議順１に新たな実行者を追加及び削除するメニューを表示する。ユーザ端末１７０は、当該メニューから実行者を追加する旨が指示されると、ワークフロー管理サーバ１２０から実行者の候補者リストを取得して提示して、追加する社員１９０を選択させる。追加する社員１９０が選択されると、ユーザ端末１７０は、選択された社員１９０を識別する社員識別情報及び回議順１を識別する回議順識別情報を、ワークフロー管理サーバ１２０に送信する。ワークフロー管理サーバ１２０は、ユーザ端末１７０から受信した回議順識別情報によって識別される回議順で実行する実行者として、受信した社員識別情報によって識別される社員１９０を追加する。具体的には、実回議ノードテーブル１６００が、当該社員１９０を識別する社員コード、並びに、回議順識別情報で識別される回議順を識別する回議順コードを含む新たなレコードを格納する。また、ユーザ端末１７０は、実行者を削除する旨が指示されると、指定された削除すべき社員１９０を識別する社員識別情報を回議順識別情報と共にワークフロー管理サーバ１２０に送信する。ワークフロー管理サーバ１２０は、ユーザ端末１７０から受信した回議順識別情報によって識別される回議順で実行される業務単位の実行者の中から、社員識別情報によって識別される社員１９０を削除する。なお、実行者の変更は、上記の実行者の追加動作及び削除動作の組合せによって実装することができる。また、ここでは特定の回議順において実行者を変更する場合について説明したが、同様の動作によって、回議順自体を追加及び削除することができることは言うまでもない。また、実行者を追加又は削除したり、回議順を追加又は削除したりする操作がなされた場合には、証跡情報格納部２１４がその操作内容及び操作した社員１９０を特定する情報を格納する。証跡情報格納部２１４が格納するデータの一例については図２４に関連して説明する。
【０１４３】
ユーザ端末１７０は、申請メニュー２０００に含まれる申請ボタン２０５０がクリックされると、氏名変更届．ｄｏｃ及び家族異動届．ｄｏｃをワークフロー管理サーバ１２０に送信するとともに、回議を開始することをワークフロー管理サーバ１２０に指示する。また、このとき、ユーザ端末１７０は、申請メニュー２０００に含まれる承認期限入力欄２０４０に社員１９０から入力された承認期限を示す日時情報を、ワークフロー管理サーバ１２０に送信する。入力部２８０はユーザ端末１７０から送信された日時情報を受信して、実フローテーブル１４００が受信した日時情報を承認期限の値として格納する。
【０１４４】
なお、制御部２２０は、ユーザ端末１７０から受け取った回議を開始する旨の指示を受け取ると、プロセス生成部２３０が生成したプロセス定義に従って前述のように回議を進める。このとき、制御部２２０は、ワークフロー管理サーバ１２０から受け取った業務単位１９１１及び１９１２を実行する社員１９０に氏名変更届．ｄｏｃを各回議順において閲覧又は変更可能な形で提供し、業務単位１９２１を実行する社員１９０に各回議順において家族異動届．ｄｏｃを閲覧又は変更可能な形で提供する。また、制御部２２０は、業務単位１９１３を実行する社員１９０には、氏名変更届．ｄｏｃ及び家族異動届．ｄｏｃの双方を、閲覧又は変更可能な形で提供する。なお、プロセス生成部２３０は、業務単位１９１０と業務単位１９１３との間に回議すべき業務単位の数が予め定められた数より少ないことを条件として、業務単位１９１０と業務単位１９１３との間に回議すべき業務単位に、氏名変更届．ｄｏｃ及び家族異動届．ｄｏｃの双方を、閲覧又は変更可能な形で提供するプロセス定義を生成してよい。
【０１４５】
図２１は、業務単位を実行する実行者が承認する承認メニュー２１００の一例を示す。ワークフロー管理サーバ１２０は、承認メニュー２１００をユーザ端末１７０に表示させる。なお、本図の承認メニュー２１００は、図１９及び２０に関連して説明した氏名変更届及び家族異動届を作業単位１９１３において確認するメニューの一例である。
【０１４６】
ユーザ端末１７０は、社員１９０が文書タブ２１３０をクリックすると、氏名変更届．ｄｏｃの内容を文書表示枠２１１０内に表示する。氏名変更届．ｄｏｃの内容が文書表示枠２１１０内に表示された状態で社員１９０が確認ボタン２１２０をクリックした場合に、ユーザ端末１７０は、氏名変更届が確認された旨を判断する。同様にして、ユーザ端末１７０は、社員１９０が文書タブ２１４０をクリックすると、家族異動届．ｄｏｃの内容を文書表示枠２１１０内に表示し、その状態で確認ボタン２１２０がクリックされると、ユーザ端末１７０は家族異動届が確認された旨を判断する。
【０１４７】
このようにして全ての文書が確認された場合に、ユーザ端末１７０は、作業単位１９１３が承認された旨の情報をワークフロー管理サーバ１２０に送信する。ワークフロー管理サーバ１２０は、当該承認された旨の情報をユーザ端末１７０から受け取った場合に、作業単位１９１３の実行が完了したと判断する。
【０１４８】
図２２は、業務一覧メニュー２２００の一例を示す。ワークフロー管理サーバ１２０は、ワークフロー管理サーバ１２０にアクセスして認証された社員１９０に、当該社員１９０に関連する業務単位の一覧を示す業務一覧メニュー２２００をユーザ端末１７０に表示させる。業務一覧メニュー２２００は、業務単位を検索する検索条件を入力する検索メニュー２２１０、処理中である業務単位の一覧を示す処理中業務一覧メニュー２２３０、処理予定である業務単位の一覧を示す処理業務予定一覧メニュー２２５０、及び処理済みである業務単位の一覧を示す処理済業務一覧メニュー２２６０を含む。
【０１４９】
検索メニュー２２１０は、処理中、処理予定、及び処理済のそれぞれの業務単位を検索すべき処理状態を選択する処理状態選択チェックボックス２２１２、申請されている金額の範囲を指定する金額入力メニュー２２１４、作業内容を指定する作業内容選択メニュー２２１６、承認期限までの残り日数の範囲を指定する承認期限入力メニュー２２１８、及び検索ボタン２２２０を含む。
【０１５０】
処理状態選択チェックボックス２２１２がチェックされているか否かを社員１９０に指定させることで、検索対象に含めるべき業務単位の処理状態を選択することができる。また、作業内容選択メニュー２２１６により、例えば"確認"、"承認"、"決済"などの、検索対象に含めるべき業務単位の業務種別を選択することができる。なお、処理中、処理予定、及び処理済とは、実回議ノードテーブル１６００が格納しているノードステータスタイプの" 処理可能"、" 未処理"、及び" 処理済"にそれぞれ対応する。このような検索メニュー２２１０を社員１９０に提示することによって、ワークフロー管理サーバ１２０は、例えば、複数の業務単位の中から、現在処理中であり、金額入力メニュー２２１４に入力された金額以下の金額が指定されており、作業内容が"決済"であり、承認期限が２日以内の回議に対応づけられた業務単位を検索することができる。
【０１５１】
ユーザ端末１７０は、検索メニュー２２１０によって入力された検索条件をワークフロー管理サーバ１２０に送信する。そして、実行内容抽出部２７０は、ユーザ端末１７０から受け取った検索条件に基づいて、ログインしている社員１９０が実行者である業務単位を抽出する。例えば、実行内容選択部２７４は、現在の日時から検索条件で指定された承認期限までの日時を承認期限の値に対応づけて実フローテーブル１４００が格納しているジョブＩＤ及びプロセスコードを抽出する。そして、実行内容選択部２７４は、当該抽出したジョブＩＤ、ログインしている社員１９０を識別する社員コード、検索条件で指定された処理状態を示す値（例えば"処理可能"）、及び検索条件で指定された作業内容を示す値（例えば"決済"）に対応づけて実回議ノードテーブル１６００が格納しているジョブＩＤ、作業内容、及び回議順コードを抽出する。また、実行内容選択部２７４は、抽出したジョブＩＤに対応づけて実フローテーブル１４００が格納している承認期限を抽出する。また、実行内容選択部２７４は、抽出したプロセスコードに対応づけてプロセステーブル６００が格納しているプロセス名を抽出する。なお、実行内容選択部２７４が実回議ノードテーブル１６００から抽出した回議順コードは、処理予定の業務単位を検索する場合に使用され、後に説明する。
【０１５２】
そして、実行内容出力部２９４は、実行内容選択部２７４が抽出したプロセス名、作業内容、及び承認期限をユーザ端末１７０に送信する。なお、実行内容選択部２７４は、実フローテーブル１４００とプロセステーブル６００とをプロセスコードで連結するとともに、実フローテーブル１４００と実回議ノードテーブル１６００とをジョブＩＤで連結したテーブルに対して、承認期限、社員コード、処理状態、及び作業内容の条件を指定して、一のＳＱＬを実行することによってプロセス名、作業内容、及び承認期限を抽出することができる。なお、プロセス名、作業内容、及び承認期限は、この発明における実行内容の一例である。
【０１５３】
なお、ここでは、ログインしている社員１９０が実行者である業務単位を検索する場合を例に挙げて説明したが、ワークフロー管理サーバ１２０は、ユーザ端末１７０から特定の社員１９０を入力させ、入力された社員１９０が実行者である業務単位を検索してもよい。この場合も、入力された社員１９０を識別する社員コードで検索する点を除き、実行内容選択部２７４が上記と同様の処理を行うことによって検索することができることは言うまでもない。なお、ユーザ端末１７０が当該特定の社員１９０を識別する情報をワークフロー管理サーバ１２０に送信し、ワークフロー管理サーバ１２０において特定実行者入力部２８２から当該特定の社員１９０を識別する情報が入力されてよい。なお、実行内容選択部２７４は、特定の社員１９０が実行する業務単位を検索する場合には、ログインしている社員１９０が閲覧することが許容されている回議の中から検索する。具体的には、制御情報格納部２００は、実フローテーブル１４００が格納しているジョブＩＤに対応づけて、当該ジョブＩＤで識別される回議を閲覧することを許容する社員１９０（以下、閲覧可能社員と呼ぶ。）の所属を識別する所属コード、閲覧可能社員が所属している部署を識別する部署コード、閲覧可能社員の役職を識別する役職コード、閲覧可能社員を識別する社員コードを格納する。そして、実行内容選択部２７４は、ログインしている社員１９０の所属コード、部署コード、役職コード、及び社員コードのいずれかに適合する所属コード、部署コード、役職コード、及び社員コードに対応づけて制御情報格納部２００が格納しているジョブＩＤを抽出する。そして、実行内容選択部２７４は、抽出したジョブＩＤで識別される回議の中から、上記と同様の方法によって、特定の社員１９０が実行する業務単位を選択する。このように、ワークフロー管理サーバ１２０によると、回議内容を閲覧することができる社員１９０を限定することができる。
【０１５４】
処理中業務一覧メニュー２２３０は、一括承認の対象とするか否かを指定する一括承認選択チェックボックス２２３２、回議の概要を示す概要表示欄２２３４、作業内容を表示する作業内容表示欄２２３６、承認期限を表示する承認期限表示欄２２３８、一の業務単位を個別に処理する旨を指示する個別処理ボタン２２４０、表示されている一括承認選択チェックボックス２２３２を全てチェックする旨を指示する全チェックボタン２２４２、一括承認選択チェックボックス２２３２においてチェックされている業務単位を一括処理する旨を指示する一括処理ボタン２２４４、一括承認選択チェックボックス２２３２においてチェックされている業務単位を連続的に処理する旨を指示する連続処理ボタン２２４６、及び処理中の業務の一覧の表示・非表示を選択する処理中業務一覧表示トグルボタン２２３１を有する。
【０１５５】
個別処理ボタン２２４０がクリックされると、ユーザ端末１７０は対応する業務単位を識別する情報とともに作業単位の承認画面をワークフロー管理サーバ１２０に要求する。ワークフロー管理サーバ１２０は、業務単位を識別する情報及び作業単位の承認画面を要求する情報をユーザ端末１７０から受け取ると、当該業務単位を識別する情報に基づいて、図２１に関連して説明した業務単位を承認する承認画面をユーザ端末１７０に表示させる。
【０１５６】
また、一括処理ボタン２２４４がクリックされると、ユーザ端末１７０は、一括承認選択チェックボックス２２３２においてチェックされている業務単位を識別する情報及び作業単位を承認する旨の情報をワークフロー管理サーバ１２０に送信する。ワークフロー管理サーバ１２０は、業務単位を識別する情報及び作業単位を承認する旨の情報を受け取ると、当該業務単位を識別する情報によって識別される業務単位が実行された旨を判断する。また、連続処理ボタン２２４６がクリックされた場合の動作の一例は、図２３に関連して説明する。
【０１５７】
また、全チェックボタン２２４２がクリックされると、ユーザ端末１７０は、現在表示している業務単位に対応する一括承認選択チェックボックス２２３２の全てをチェックする。また、ユーザ端末１７０は、処理中業務一覧表示トグルボタン２２３１がクリックされる毎に、処理中業務一覧メニュー２２３０内に表示されている業務の一覧の表示／非表示を切り替える。
【０１５８】
なお、実行内容抽出部２７０は、業務単位が実行可能になってから予め定められた期間より長い期間が経過している業務単位の実行内容を抽出してもよい。業務単位が実行可能になってからの期間は、実回議ノードテーブル１６００の処理開始日時と現在との時間差から判断することができる。そして、実行内容出力部２９４は、実行可能になってから現在までに経過した時間が長い順に、業務単位の実行内容を処理中業務単位一覧メニュー２２３０内に表示させてよい。
【０１５９】
また、処理予定業務一覧メニュー２２５０は、回議の概要を示す概要表示欄２２５２、作業内容を表示する作業内容表示欄２２３４、及び承認期限表示欄２２５６を有する。なお、ユーザ端末１７０が概要表示欄２２５２、作業内容表示欄２２３４、及び承認期限表示欄２２５６に表示する内容は、処理予定の業務単位に関する内容を表示する点を除いて、それぞれ概要表示欄２２３４、作業内容表示欄２２３６、及び承認期限表示欄２２３８に表示する内容と略同一であるので説明を省略する。また、ユーザ端末１７０が処理済業務一覧メニュー２２６０に表示する内容は、処理済みの業務単位に関する内容を表示する点を除いて、処理予定業務一覧メニュー２２５０に表示する内容と略同一であるので、説明を省略する。また、ユーザ端末１７０は、処理中業務一覧表示トグルボタン２２３１がクリックされた場合の動作と同様に、処理予定業務一覧表示トグルボタン２２５１及び処理済業務一覧表示トグルボタン２２６１がクリックされる毎に、それぞれ処理予定業務一覧メニュー２２５０及び処理済業務一覧メニュー２２６０内に表示されている業務の一覧の表示／非表示を切り替える。
【０１６０】
なお、上記において、ワークフロー管理サーバ１２０がログインしている社員１９０が実行者である業務単位を抽出する動作について説明した。ワークフロー管理サーバ１２０は、処理予定の業務単位を抽出する場合には、ログインしている社員１９０が近い将来に処理可能になる業務単位を抽出してよい。この場合、上記で説明した抽出動作において業務単位を抽出する場合に、実行内容選択部２７４は実フローテーブル１４００からジョブＩＤを、実回議順テーブル１５００から回議順コードを抽出する。そして、実行順差抽出部２７２は、実回議順関連テーブル１５１０において、抽出されたジョブＩＤをジョブＩＤの値として持ち、抽出された回議順コードを関連先回議順コードの値として持つレコードを抽出して、当該レコードの回議順コードの値を抽出する。
【０１６１】
そして、実行順差抽出部２７２は、当該回議順コードを関連先回議順コードの値として持つレコードを抽出することを繰り返し実行することによって、現在実行中の業務単位を実行する回議順を特定する。このとき、実行順差抽出部２７２は、抽出したレコードの回議順コードに対応づけて実回議順テーブル１５００が格納しているターンステータスタイプの値が"処理中"となるまで、当該レコードの抽出を繰り返す。この動作によって、実行順差抽出部２７２は、ログインしている社員１９０が実行する回議順と、現在実行中である回議順の差を抽出する。
【０１６２】
そして、実行内容選択部２７４は、抽出した回議順の差が予め定められた差より小さい業務単位の内容を選択してよい。そして、実行内容出力部２９４は、実行内容選択部２７４が選択した業務単位の内容を処理予定業務一覧メニュー２２５０内に表示させるべくユーザ端末１７０に指示してよい。また、実行内容出力部２９４は、各業務単位の回議順序における順番を処理予定業務一覧メニュー２２５０内に表示させてもよい。また、実行内容出力部２９４は、回議が回ってくる順番が早い業務内容から順に、処理予定業務一覧メニュー２２５０内に業務単位を表示させてもよい。
【０１６３】
図２３は、連続承認における画面遷移の一例を示す。すでに述べたように、連続処理指示ボタン２２４６がクリックされると、ユーザ端末１７０はチェックされている業務単位を識別する情報をワークフロー管理サーバ１２０に送信するとともに、連続承認メニューをワークフロー管理サーバ１２０に要求する。ワークフロー管理サーバ１２０は、ユーザ端末１７０から受け取った業務単位を識別する情報から、その業務単位が扱う申請データを取得して、承認メニューをユーザ端末１７０に送信する。
【０１６４】
ワークフロー管理サーバ１２０は、承認メニュー２１００と同様に、一の業務単位に関する添付書類の内容と、承認ボタン２３１５を含む承認メニュー２３１０をユーザ端末１７０に表示させる。ユーザ端末１７０は、承認ボタン２３１５がクリックされたことを検知すると、ワークフロー管理サーバ１２０に当該業務単位が承認されたことをワークフロー管理サーバ１２０に送信するとともに、次の業務単位の承認メニューをワークフロー管理サーバ１２０に要求する。そして、ワークフロー管理サーバ１２０は、当該次の業務単位についても、添付書類の内容と承認ボタン２３２５を含む承認メニュー２３２０をユーザ端末１７０に表示させる。同様にして、ユーザ端末１７０は、承認ボタン２３２５がクリックされたことを検知すると、ユーザ端末１７０にはさらに次の業務単位の承認メニュー２３３０が表示される。ユーザ端末１７０は、この最後の業務単位の承認メニュー２３３０の承認ボタン２３３５がクリックされたことを検知すると、図２２に関連して説明した業務一覧メニュー２２００をワークフロー管理サーバ１２０に要求する。
【０１６５】
図２４は、証跡情報格納部２１４が格納しているデータの一例をテーブル形式で示す。証跡情報格納部２１４は、ワークフローシステム１００においてなされた操作情報を持つ証跡情報テーブル２４００を含む。証跡情報テーブル２４００は、セッションＩＤ、管理ＩＤ、実行日時、社員コード、ジョブＩＤ、ＩＰアドレス、ログインタイプ、ログインＩＤ、証跡情報タイプ、証跡タイプ、証跡情報詳細、ＳＱＬメッセージ、及び変更申請ジョブＩＤを対応づけて格納する。なお、社員コード、ジョブＩＤ、及びログインＩＤについては、証跡情報テーブル２４００は既に説明した同名のフィールドが示す情報とそれぞれ同じ意味を持つ情報を格納する。
【０１６６】
セッションＩＤは、ワークフロー管理サーバ１２０が割り当てたセッションを識別する情報を示す。管理ＩＤは、実行日時とともに、証跡情報をセッション内において一意に識別する。実行日時は、証跡に関連する操作が実行された日時を示す。ＩＰアドレスは、証跡情報に関するアクセス元のユーザ端末１７０及び業務処理装置１６０のＩＰアドレスを示す。ログインタイプは、アクセスされた種別を示し、Ｗｅｂを通じてログインされたアクセスであることを示す"Ｗｅｂ"、ＡＰＩを通じてアクセスされたことを示す"ＡＰＩ"等を値として持つ。証跡情報タイプは証跡の種別を示し、ワークフローに関連する証跡であることを示す"ワークフロー"、管理用の証跡を示す"管理用"、プロセスに関連する証跡であることを示す"プロセス"等を値として持つ。なお、プロセスに関連する証跡とは、図２０に関連して説明した実行者が追加又は削除された場合、或いは回議順が追加又は削除された場合の証跡を含む。証跡タイプは、証跡の種別を示し、マスタテーブルを参照した場合の証跡であることを示す"マスタ参照"、システムを変更した場合の証跡であることを示す"システム変更"等を値として持つ。証跡情報詳細は、証跡データを示す。ＳＱＬメッセージは、ＳＱＬが実行された場合における、ＳＱＬメッセージを示す。ＳＱＬメッセージには、実行したＳＱＬ文を含んでよいし、得られた結果を含んでもよい。
【０１６７】
変更申請ジョブＩＤは、システムの変更申請が承認された回議を識別するジョブＩＤを示し、ワークフローシステム１００においてシステム変更がなされた場合に得られる証跡に対して格納される。なお、システム変更とは、マスタテーブル、モジュール等の変更、諸設定、追加等を含む。ワークフローシステム１００では、そのようなワークフローシステム１００全体の制御動作に関わるシステム変更を行う場合には、システム変更の申請を回議し、承認された場合に限り、システム変更を行うことができてよい。
【０１６８】
ところで、システム変更申請が回議にて承認された後に社員１９０がシステム変更を行う場合には、ワークフロー管理サーバ１２０は、承認された回議を特定する情報を社員１９０に入力させる。当該回議を特定する情報とは、当該回議のジョブＩＤであってよいし、当該回議のジョブＩＤに対応づけられた他の値であってもよい。ワークフロー管理サーバ１２０は、入力された当該情報によって特定される回議のジョブＩＤを、その後に社員１９０によってシステム変更操作がなされた場合の証跡データに対応づけて、変更申請ジョブＩＤの値として格納する。なお、出力部２９０は、変更申請ジョブＩＤに対応づけて証跡情報テーブル２４００が格納している証跡データを外部に出力してよい。なお、ここでいう証跡データとは、証跡情報テーブル２４００が格納している少なくとも１つのデータであってよい。このように、証跡情報テーブル２４００が変更申請ジョブＩＤを格納するので、ワークフロー管理装置１１０によると、システム変更のようなワークフローシステム１００の動作に重大な影響を及ぼす変更に対して、どの社員１９０が申請して、どのように承認されたかを、変更申請ジョブＩＤをキーにして後で参照することが可能になる。
【０１６９】
また、証跡情報テーブル２４００が格納しているデータから、上記のシステム変更に関する操作等、ワークフローシステム１００における多様な操作ログを収集して、解析することができる。このように、ワークフロー管理装置１１０によると、例えば処理要求毎のデータを収集したり、滞留日数で検索することができる。また、プロセスの実行期間を収集したり、プロセスの変更履歴を検索したりすることが可能になる。
【０１７０】
図２５は、エラー情報格納部２１６が格納しているデータの一例をテーブル形式で示す。エラー情報格納部２１６は、ワークフローシステム１００においてエラー情報を持つエラー情報テーブル２５００を含む。エラー情報テーブル２５００は、セッションＩＤ、管理ＩＤ、実行日時、社員コード、ジョブＩＤ、ＩＰアドレス、ログインタイプ、ログインＩＤ、エラーコード、エラータイプ、エラーメッセージ、デバックメッセージ、及び引数メッセージを対応づけて格納する。なお、セッションＩＤ、管理ＩＤ、実行日時、社員コード、ジョブＩＤ、ＩＰアドレス、ログインタイプ、及びログインＩＤについては、エラー情報テーブル２５００は、証跡情報テーブル２４００が格納している同名のフィールドとそれぞれ同じ内容を格納するので、説明を省略する。
【０１７１】
エラーコードは、ワークフロー管理サーバ１２０上で動作するプログラムが定めているエラーを識別するエラーコードを示す。エラータイプは、エラー情報の種別を示し、エラー情報であることを示す"エラータイプ"、デバッグ情報であることを示す"デバッグタイプ"を値として含む。エラーメッセージは、エラーに関して出力されるメッセージを示し、オペレーティングシステム、ミドルウェア、又はツール等のプログラム、或いは業務処理装置１６０等から返却されるエラーメッセージであってよい。デバックメッセージは、デバッグ情報を示し、エラータイプが"デバッグタイプ"である場合に、デバッグ情報が格納される。引数メッセージは、エラーが発生した関数、オブジェクト等のプログラム要素が外部から受け取った情報を示し、例えばミドルウェア、その他のソフトウェア等のＡＰＩが受け取った引数を値として持つ。
【０１７２】
このように、エラー情報テーブル２５００は、証跡情報テーブル２４００が格納しているセッションＩＤ、管理ＩＤ、及び実行日時とリンクさせて、エラー情報を格納することができる。そして、例えば、ワークフロー管理サーバ１２０は、セッションＩＤをキーとして、関連する多様なエラー情報を収集して、例えばテキストファイルとして外部に出力することができる。また、ワークフロー管理サーバ１２０は、必要に応じて、各テーブルのテーブルデータも取得することができる。
【０１７３】
図２６は、節点情報格納部３２０が格納しているデータの一例をテーブル形式で示す。節点情報格納部３２０は、部署の階層情報を格納する部署階層テーブル２６００を含む。部署階層テーブル２３００は、部署コード、自階層レベル、階層レベル１識別子、階層レベル２識別子、階層レベル３識別子、階層レベル４識別子、及び階層レベル５識別子を対応づけて格納する。
【０１７４】
部署コードは、部署テーブル１３００が格納している部署コードを示す。自階層レベルは、部署コードで識別される部署が位置する、階層構造における階層レベルを示す。階層レベル１識別子は、部署コードで識別される部署の先祖ノードのうち、階層構造において階層レベル１にある部署の部署コードを示す。同様に、階層レベル２識別子、階層レベル３識別子、階層レベル４識別子、及び階層レベル５識別子は、階層構造におけるそれぞれの部署の先祖ノードのうち、それぞれ階層レベル２、階層レベル３、階層レベル４、及び階層レベル５にある部署の部署コードを示す。なお、部署テーブル１３００は、自階層レベルより低い階層レベルには先祖ノードが存在しないので、階層レベル識別子にはＮＵＬＬ値を格納してよい。なお、階層情報入力部３１０は、部署の階層構造を表現する情報を、ユーザ端末１７０から入力して、部署テーブル１３００が格納している部署コードに対応づけて部署階層テーブル２６００に格納する。なお、以下の説明では、階層レベル１識別子、階層レベル２識別子、階層レベル３識別子、階層レベル４識別子、及び階層レベル５識別子の各フィールドを階層レベルＮ識別子フィールドと総称し、その値を階層レベルＮ識別子の値と総称する場合がある。
【０１７５】
次に、節点抽出部３３０の動作について以下に説明する。節点抽出部３３０は、階層を抽出する基点となる部署を識別する部署コード、及び当該部署より下位及び上位のいずれの階層にある部署を抽出するか示す情報を取得する。節点抽出部３３０が下位の階層にある部署を抽出する旨の情報を取得した場合、節点抽出部３３０は、当該部署コードに対応づけられた自階層レベル及び階層レベルＮ識別子の値を抽出する。なお、節点抽出部３３０は、当該自階層レベル及び階層レベルＮ識別子の値を、一のＳＱＬを実行することで抽出することができる。例えば、東日本支社の自階層レベル及び階層レベルＮ識別子を抽出する場合、"ｓｅｌｅｃｔ  ＊  ｆｒｏｍ  部署階層テーブル  ｗｈｅｒｅ  部署コード＝東日本支社"のようなＳＱＬで抽出することができる。
【０１７６】
そして、節点抽出部３３０は、抽出した自階層レベルにおける部署を識別する階層レベルＮ識別子の値を、当該自階層レベルの階層レベルＮ識別子フィールドの値として持つレコードの部署コードを部署階層テーブル２６００から抽出する。ただし、Ｎは、抽出した自階層レベルの値が示す階層の階層レベルを示す値である。例えば、基準となる部署が東日本支社である場合、自階層レベルの値は１であり、節点抽出部３３０は、階層レベル１識別子の値である２を、階層レベル１識別子フィールドの値として持つレコードの部署コードを抽出する。
【０１７７】
この場合にも、節点抽出部３３０は、一のＳＱＬにより、複数の部署コードを抽出することができる。例えば、東日本支社より下位の部署及び東日本支社を識別する部署コードを抽出する場合、東日本支社の自階層レベルは１であり、それに対応する階層レベル１識別子が２であることが分かっているので、節点抽出部３３０は、"ｓｅｌｅｃｔ  部署コード  ｆｒｏｍ  部署階層テーブル  ｗｈｅｒｅ  階層レベル1識別子＝２"のようなＳＱＬによって、当該部署コードを抽出することができる。これにより、節点抽出部３３０は、東日本支社、関東事業部、東北事業部、営業部、及び建設部を識別する識別コードを抽出することができる。このようにして、節点抽出部３３０は、指定された部署及び当該指定された部署より下位の部署を識別する部署コードを一気に抽出することができる。また、必要であれば、節点抽出部３３０は、自階層レベルの値を制限することで、指定された部署より予め定められた階層より下位の部署コードを一気に抽出することができることは言うまでもない。例えば、上記ＳＱＬのｗｈｅｒｅ句を、"ｗｈｅｒｅ  階層レベル1識別子＝２  ＡＮＤ  自階層レベル＞２"等のように代えれば、階層レベルが２以下の部署だけを選択的に抽出することができる。
【０１７８】
一方、節点抽出部３３０が上位の階層にある部署を抽出する旨の情報を取得した場合、節点抽出部３３０は、当該部署コードに対応づけられた自階層レベル及び階層レベルＮ識別子の値を抽出する。なお、節点抽出部３３０は、当該自階層レベル及び階層レベルＮ識別子の値を、一のＳＱＬを実行することで抽出することができる。例えば、営業部の自階層レベル及び階層レベルＮ識別子を抽出する場合、"ｓｅｌｅｃｔ  ＊  ｆｒｏｍ  部署階層テーブル  ｗｈｅｒｅ  部署コード＝営業部"のようなＳＱＬで抽出することができる。
【０１７９】
そして、節点抽出部３３０は、抽出した自階層レベルより上の階層レベルを示す階層レベルＮ識別子フィールドの値として、抽出した階層レベルＮ識別子の値を持ち、かつ、自階層レベルフィールドの値として、当該抽出した自階層レベルより上の階層レベルを持つレコードの部署コードを部署階層テーブル２６００から抽出する。ただし、Ｎは、抽出した自階層レベルの値が示す階層の階層レベルより上位の階層レベルを示す値である。例えば、基準となる部署が営業部である場合、節点抽出部３３０は、階層レベル１識別子及び階層レベル２識別子フィールドの値として、それぞれ２及び２１を持つレコードの部署コードを抽出する。
【０１８０】
この場合にも、節点抽出部３３０は、一のＳＱＬにより、複数の部署コードを抽出することができる。例えば、営業部より上位の部署を識別する部署コードを抽出する場合、営業部の自階層レベルは３であり、それより上位の階層レベル１識別子及び階層レベル２識別子がそれぞれ２及び２１であることが分かっているので、節点抽出部３３０は、"ｓｅｌｅｃｔ  部署コード  ｆｒｏｍ  部署階層テーブル  ｗｈｅｒｅ  （階層レベル1識別子＝２  ａｎｄ  自階層レベル＝１）  ｏｒ  （階層レベル２識別子＝２１  ａｎｄ  自階層レベル＝２）"のようなＳＱＬによって、当該部署コードを抽出することができる。これにより、節点抽出部３３０は、関東事業部及び東日本支社を識別する識別コードを抽出することができる。このようにして、節点抽出部３３０は、指定された部署より上位の１以上の部署コードを一気に抽出することができる。また、必要であれば、節点抽出部３３０は、自階層レベルの値を制限することで、指定された部署から予め定められた階層より上位の部署コードを一気に抽出することができることは言うまでもない。
【０１８１】
上記のようにして節点抽出部３３０が抽出した部署コードは、節点出力部３４０から制御部２２０に提供される。なお、本図の例では、部署階層テーブル２６００は、５階層の部署の階層構造を格納している。しかしながら、部署階層テーブル２６００が、階層レベル５識別子よりもさらに深い階層レベルを識別する識別子を示すフィールドを有することで、６階層以上の階層構造を表現するよう拡張することができることは言うまでもない。また、本実施形態では、部署の階層構造を例に挙げて説明したが、節点情報格納部３２０は、部署階層に限らず、階層構造であればどのような構造も表現することができることは言うまでもない。このように、節点抽出部３３０は、３階層以上の階層にわたる複数の節点を有するツリー構造において、特定の節点から上位又は下位の複数の階層にわたって辿ることができる複数の節点を、高速に検索することができる。
【０１８２】
以上、ワークフロー管理装置１１０が一の会社組織内におけるビジネスプロセスを管理する場合の動作の一例を説明した。しかしながら、ワークフロー管理装置１１０が複数の会社組織にわたるビジネスプロセスを管理することができることは言うまでもない。例えば、所属テーブル１２００のような会社組織に依存する情報を格納する各種テーブルが、会社組織を識別する情報をさらに格納することで、複数の会社組織にわたってビジネスプロセスを進行させることができる。また、ある日を境に部署が大きく改廃され、大幅に異なる新たな組織構造で会社が運営される場合がある。このような場合に対処すべく、ワークフロー管理装置１１０は、組織のバージョンを管理してよい。例えば、所属テーブル１２００のような組織構造に依存する情報を格納する各種テーブルが、組織のバージョンを識別する情報をさらに格納することで、ワークフロー管理サーバ１２０は、改廃前の組織構造において既に開始されたビジネスプロセスを適切に進行させることができる。
【０１８３】
他にも、会社組織という実体のある組織ではなく、会社横断のプロジェクトチームや製品研究チームのように、仮想的な組織を対象にビジネスプロセスを進めることが必要な場合がある。ワークフロー管理装置１１０は、所属テーブル１２００、役職テーブル１２１０、及び部署テーブル１３００のような会社組織を特定するテーブルの他に、所属テーブル１２００、役職テーブル１２１０、及び部署テーブル１３００と同種の情報を有し、仮想的な組織を表すテーブルをさらに有してもよい。そして、回議ノードテーブル７００のノードタイプの値として、"会社組織"ではなく"仮想組織"とすることで、ワークフロー管理サーバ１２０は、仮想組織の部署構造、役職構造に応じて、業務単位の実行者を決定することができる。例えば、実際の会社組織において役職のない社員１９０が、実際の会社組織において役職のある社員（以下、役職社員と呼ぶ。）の上司であるような仮想組織を構築することができる。そして、役職社員が仮想組織の中で経費申請する場合、まず仮想組織において上司である社員が承認し、その次に、実際の会社組織おける役職社員の上司が承認するというビジネスプロセスを構築することができる。このように、ワークフロー管理装置１１０は、仮想組織と会社組織にまたがるビジネスプロセスを適切に進めることができる。
【０１８４】
図２７は、ワークフロー管理装置１１０のハードウェア構成の一例を示す。ワークフロー管理装置１１０は、ホスト・コントローラ１５８２により相互に接続されるＣＰＵ１５０５、ＲＡＭ１５２０、グラフィック・コントローラ１５７５、及び表示装置１５８０を有するＣＰＵ周辺部と、入出力コントローラ１５８４によりホスト・コントローラ１５８２に接続される通信インターフェイス１５３０、ハードディスクドライブ１５４０、及びＣＤ−ＲＯＭドライブ１５６０を有する入出力部と、入出力コントローラ１５８４に接続されるＲＯＭ１５１０、フレキシブルディスク・ドライブ１５５０、及び入出力チップ１５７０を有するレガシー入出力部とを備える。
【０１８５】
ホスト・コントローラ１５８２は、ＲＡＭ１５２０と、高い転送レートでＲＡＭ１５２０をアクセスするＣＰＵ１５０５、及びグラフィック・コントローラ１５７５とを接続する。ＣＰＵ１５０５は、ＲＯＭ１５１０、及びＲＡＭ１５２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ１５７５は、ＣＰＵ１５０５等がＲＡＭ１５２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置１５８０上に表示させる。これに代えて、グラフィック・コントローラ１５７５は、ＣＰＵ１５０５等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【０１８６】
入出力コントローラ１５８４は、ホスト・コントローラ１５８２と、比較的高速な入出力装置であるハードディスクドライブ１５４０、通信インターフェイス１５３０、ＣＤ−ＲＯＭドライブ１５６０を接続する。ハードディスクドライブ１５４０は、ＣＰＵ１５０５が使用するプログラム、及びデータを格納する。通信インターフェイス１５３０は、ネットワーク通信装置１５９８に接続してプログラムまたはデータを送受信する。ＣＤ−ＲＯＭドライブ１５６０は、ＣＤ−ＲＯＭ１５９５からプログラムまたはデータを読み取り、ＲＡＭ１５２０を介してハードディスクドライブ１５４０、及び通信インターフェイス１５３０に提供する。
【０１８７】
また、入出力コントローラ１５８４には、ＲＯＭ１５１０と、フレキシブルディスク・ドライブ１５５０、及び入出力チップ１５７０の比較的低速な入出力装置とが接続される。ＲＯＭ１５１０は、ワークフロー管理装置１１０が起動時に実行するブート・プログラムや、ワークフロー管理装置１１０のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ１５５０は、フレキシブルディスク１５９０からプログラムまたはデータを読み取り、ＲＡＭ１５２０を介してハードディスクドライブ１５４０、及び通信インターフェイス１５３０に提供する。入出力チップ１５７０は、フレキシブルディスク・ドライブ１５５０や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【０１８８】
ＣＰＵ１５０５が実行するプログラムは、フレキシブルディスク１５９０、ＣＤ−ＲＯＭ１５９５、またはＩＣカード等の記録媒体に格納されて利用者によって提供される。記録媒体に格納されたプログラムは圧縮されていても非圧縮であってもよい。プログラムは、記録媒体からハードディスクドライブ１５４０にインストールされ、ＲＡＭ１５２０に読み出されてＣＰＵ１５０５により実行される。
【０１８９】
ワークフロー管理装置１１０にインストールされて実行されるプログラムは、ワークフロー管理装置１１０を、図１から図２７に関連して説明した、制御情報格納部２００、制御部２２０、情報変更部２６０、出力部２９０、組織検索部３００、実行者情報格納部２０２、プロセス情報格納部２０４、組織情報格納部２０６、実行者格納部２０８、期限格納部２１０、平均処理時間格納部２１２、証跡情報格納部２１４、エラー情報格納部２１６、実行者選択部２２２、予定実行者選択部２２５、プロセス生成部２３０、作業単位特定部２４０、基準時間幅設定部２５０、情報変更部２６０、及び実行内容抽出部２７０、組織情報変更部２６２及び実行者属性変更部２６４、実行順差抽出部２７２、実行内容選択部２７４、特定実行者入力部２８２、予定実行者出力部２９２、実行内容出力部２９４、及び通知部２９６として機能させる。
【０１９０】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１５９０、ＣＤ−ＲＯＭ１５９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスクまたはＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをワークフロー管理装置１１０に提供してもよい。
【０１９１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加え得ることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【０１９２】
【図１】ワークフローシステム１００の構成の一例を示す図である。
【図２】ワークフロー管理装置１１０のブロック構成の一例を示す図である。
【図３】組織検索部３００のブロック構成の一例を示す図である。
【図４】ワークフロー管理装置１１０が管理するビジネスプロセス４００の一例を示す図である。
【図５】出張申請における回議を定義したプロセス定義情報の一例を示す図である。
【図６】プロセス情報格納部２０４が格納するデータの一例をテーブル形式で示す図である。
【図７】プロセス情報格納部２０４が格納するデータの一例をテーブル形式で示す図である。
【図８】会社組織の各部署の階層構造及び各部署における社員配置の一例を示す図である。
【図９】実行者選択部２２２が決定した各業務単位を実行する実行者の一例を示す図である。
【図１０】プロセス情報格納部２０４が格納するデータの一例をテーブル形式で示す図である。
【図１１】実行者情報格納部２０２が格納するデータの一例をテーブル形式で示す図である。
【図１２】実行者情報格納部２０２が格納するデータの一例をテーブル形式で示す図である。
【図１３】組織情報格納部２０６が格納するデータの一例をテーブル形式で示す図である。
【図１４】期限格納部２１０が格納している情報の一例をテーブル形式で示す図である。
【図１５】実行者格納部２０８が格納しているデータの一例をテーブル形式で示す図である。
【図１６】実行者格納部２０８が格納しているデータの一例をテーブル形式で示す図である。
【図１７】代理処理者設定テーブル１７００が格納しているデータの一例をテーブル形式で示す図である。
【図１８】平均処理時間格納部２１２が格納しているデータの一例をテーブル形式で示す図である。
【図１９】プロセス定義を社員１９０に定義させるプロセス作成メニュー１９００の一例を示す図である。
【図２０】プロセス定義によって定義される回議を開始する申請メニュー２０００の一例を示す図である。
【図２１】業務単位を実行する実行者が承認する承認メニュー２１００の一例を示す図である。
【図２２】業務一覧メニュー２２００の一例を示す図である。
【図２３】連続承認における画面遷移の一例を示す図である。
【図２４】証跡情報格納部２１４が格納しているデータの一例をテーブル形式で示す図である。
【図２５】エラー情報格納部２１６が格納しているデータの一例をテーブル形式で示す図である。
【図２６】節点情報格納部３２０が格納しているデータの一例をテーブル形式で示す図である。
【図２７】ワークフロー管理装置１１０のハードウェア構成の一例を示す図である。
【符号の説明】
【０１９３】
１００  ワークフローシステム
１１０  ワークフロー管理装置
１２０  ワークフロー管理サーバ
１３０  データベース
１４０  認証サーバ
１５０  外部装置
１６０  業務処理装置
１７０  ユーザ端末
１８０  ネットワーク
１９０  社員
２００  制御情報格納部
２０２  実行者情報格納部
２０４  プロセス情報格納部
２０６  組織情報格納部
２０８  実行者格納部
２１０  期限格納部
２１２  平均処理時間格納部
２１４  証跡情報格納部
２１６  エラー情報格納部
２２０  制御部
２２２  実行者選択部
２２５  予定実行者選択部
２３０  プロセス生成部
２４０  作業単位特定部
２５０  基準時間幅設定部
２６０  情報変更部
２６２  組織情報変更部
２６４  実行者属性変更部
２７０  実行内容抽出部
２７２  実行順差抽出部
２７４  実行内容選択部
２８０  入力部
２８２  特定実行者入力部
２９０  出力部
２９２  予定実行者出力部
２９４  実行内容出力部
２９６  通知部
３００  組織検索部
３１０  階層情報入力部
３２０  節点情報格納部
３３０  節点抽出部
３４０  節点出力部
４００  ビジネスプロセス
６００  プロセステーブル
６１０  回議順テーブル
６２０  回議順関連テーブル
７００  回議ノードテーブル
１０００  分岐条件テーブル
１１００  社員テーブル
１２００  所属テーブル
１２１０  役職テーブル
１３００  部署テーブル
１４００  実フローテーブル
１５００  実回議順テーブル
１５１０  実回議順関連テーブル
１６００  実回議ノードテーブル
１７００  代理処理者設定テーブル
１８００  平均所要時間テーブル
１８００  処理時間テーブル
２４００  証跡情報テーブル
２５００  エラー情報テーブル
２６００  部署階層テーブル
【図１】
2008250556.tif 000003
【図２】
2008250556.tif 000004
【図３】
2008250556.tif 000005
【図４】
2008250556.tif 000006
【図５】
2008250556.tif 000007
【図６】
2008250556.tif 000008
【図７】
2008250556.tif 000009
【図８】
2008250556.tif 000010
【図９】
2008250556.tif 000011
【図１０】
2008250556.tif 000012
【図１１】
2008250556.tif 000013
【図１２】
2008250556.tif 000014
【図１３】
2008250556.tif 000015
【図１４】
2008250556.tif 000016
【図１５】
2008250556.tif 000017
【図１６】
2008250556.tif 000018
【図１７】
2008250556.tif 000019
【図１８】
2008250556.tif 000020
【図１９】
2008250556.tif 000021
【図２０】
2008250556.tif 000022
【図２１】
2008250556.tif 000023
【図２２】
2008250556.tif 000024
【図２３】
2008250556.tif 000025
【図２４】
2008250556.tif 000026
【図２５】
2008250556.tif 000027
【図２６】
2008250556.tif 000028
【図２７】
2008250556.tif 000029