(57)【要約】【課題】ワークフローの実行の可否を、ワークフローにて順次処理されてゆく処理対象データの変化を考慮しつつ、効率良く判定することのできる技術を提供する。【解決手段】複数の処理単位の内のいずれかの処理単位にて処理された処理済データに関する情報を取得する処理結果取得部と、処理結果取得部にて処理済データが取得された処理単位よりも下流側に位置する処理単位における処理の実行条件に関する情報を取得する実行条件取得部と、実行条件取得部にて取得される実行条件に関する情報に基づいて、処理結果取得部にて情報が取得された処理済データを、該処理済データを処理した処理単位よりも下流側に位置する処理単位にて処理可能であるか否かを判定する実行可否判定部と、を備える。【選択図】図１
2010123124.tif 000002
【特許請求の範囲】
【請求項１】
連続する複数の処理単位において上流側の処理単位から下流側の処理単位へ向けて処理対象となるデータを順次処理してゆくワークフローを実行した場合における、前記複数の処理単位の内の処理が完遂された処理単位について該処理単位で処理された処理済データに関する情報を取得する処理結果取得部と、
前記処理結果取得部にて処理済データに関する情報が取得された処理単位よりも下流側に位置する処理単位における処理の実行条件に関する情報を取得する実行条件取得部と、
前記実行条件取得部にて取得される実行条件に関する情報に基づいて、前記処理結果取得部にて情報が取得された処理済データを、該処理済データを処理した処理単位よりも下流側に位置する処理単位にて処理可能であるか否かを判定する実行可否判定部と、
を備えるワークフロー管理装置。
【請求項２】
請求項１に記載のワークフロー管理装置において、
前記実行可否判定部は、前記複数の処理単位の内、下流側の処理単位の実行に影響を与える可能性のある所定の処理単位についてのみ、該処理単位にて処理された処理済データを該処理単位よりも下流側に位置する処理単位で処理可能であるか否かの判定を行うワークフロー管理装置。
【請求項３】
請求項１に記載のワークフロー管理装置において、
前記実行可否判定部は、前記複数の処理単位の内、前記処理結果取得部にて処理済データに関する情報が取得された処理単位よりも下流側に位置する処理単位の内、処理の実行に関して該処理済データの内容の影響を受ける可能性がある所定の処理単位についてのみ、該処理済データを処理可能であるか否かの判定を行うワークフロー管理装置。
【請求項４】
請求項１に記載のワークフロー管理装置において、
前記処理結果取得部にて取得される情報を記憶する処理結果記憶部と、
前記処理結果記憶部にて記憶されている処理済データに関する情報に基づいて、該処理済データを処理した処理単位よりも下流側の処理単位による処理からワークフローを再実行させる再実行制御部と、
をさらに備えるワークフロー管理装置。
【請求項５】
請求項４に記載のワークフロー管理装置において、
前記複数の処理単位の内の少なくともいずれかにおける処理内容を編集可能な編集部をさらに備え、
前記再実行制御部は、前記編集部にて処理内容を編集された処理単位よりも１つ上流側に位置する処理単位における処理済データに関する情報に基づいて、該編集された処理単位以降の処理単位による処理を再実行させるワークフロー管理装置。
【請求項６】
請求項１に記載のワークフロー管理装置において、
前記実行可否判定部は、処理を実行できないと判定される処理単位がある場合に、前記ワークフローの処理を中断させるものであり、
前記ワークフローが中断される場合に、所定の処理を実行する中断時対応処理部をさらに備えるワークフロー管理装置。
【請求項７】
連続する複数の処理単位において上流側の処理単位から下流側の処理単位へ向けて処理対象となるデータを順次処理してゆくワークフローを実行した場合における、前記複数の処理単位の内の処理が完遂された処理単位について該処理単位で処理された処理済データに関する情報を取得し、
前記処理済データに関する情報が取得された処理単位よりも下流側に位置する処理単位における処理の実行条件に関する情報を取得し、
前記取得される実行条件に関する情報に基づいて、前記情報が取得された処理済データを、該処理済データを処理した処理単位よりも下流側に位置する処理単位にて処理可能であるか否かを判定するワークフロー管理方法。
【請求項８】
請求項７に記載のワークフロー管理方法において、
前記複数の処理単位の内、下流側の処理単位の実行に影響を与える可能性のある所定の処理単位についてのみ、該処理単位にて処理された処理済データを該処理単位よりも下流側に位置する処理単位で処理可能であるか否かの判定を行うワークフロー管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアクティビティから構成されるワークフローの利用支援に関し、特に、ワークフローの実行可否の判定技術に関するものである。
【背景技術】
【０００２】
従来、例えば「画像の印刷」、「画像ファイルの保存」といった、「アクティビティ」と呼ばれる処理単位を、任意の順序で連結させることで、「画像を印刷し、その画像をファイル保存する」といった一連の処理を行うワークフローを構成する技術が知られる。
【０００３】
上記のように複数のアクティビティを組み合わせて構成されるワークフローでは、当該ワークフローを構成するアクティビティの性質によっては、ある実行環境では実行不可能となり、ワークフローを完了することができない場合がある。そこで、ワークフローを開始して各アクティビティを実行する際に、実行する予定のアクティビティが実行可能であるかどうか判定し、実行不可能なアクティビティがある場合、当該ワークフローの完遂が不可能であることをユーザに伝える構成が知られる（例えば、特許文献１を参照。）。
【０００４】
また、ワークフローを開始する前に、そのワークフローを構成する各アクティビティの実行に必要となる資源を推測し、さらにその実行環境でその資源が利用可能かどうか判定することで、当該ワークフローを完遂することができるかどうかを判定する技術が知られる（例えば、特許文献２を参照）。
【０００５】
また、ワークフローを開始して途中まで処理を遂行したものの、実行できないアクティビティがあり中断してしまったワークフローに対し、ワークフローを完遂できるようワークフローの構成を編集し、編集したワークフローを途中から再開させる技術が知られる（例えば、特許文献３を参照）。この方法では、ワークフローで扱うデータを途中まで処理された状態で保管しておき、保管されているデータを再度利用することで、ワークフローの途中から処理を再開する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、アクティビティが実行可能かどうか判定する上記従来技術（特許文献１）では、ワークフローを構成するアクティビティを実行する段階になって初めて実行の可否を判定する。したがって、ワークフローが完遂できないことが事前に判定できるようなケースにおいて当該従来技術を適用すると、アクティビティの実行が無駄となってしまう場合がある。
【０００７】
また、ワークフロー開始時に完遂可能かどうか判定する構成（特許文献２）では、ワークフローを実行してみなければ、そのワークフローの実行環境にて利用可能な資源が十分であるかどうかが判定できない場合がある。
【０００８】
一方、中断したワークフローを編集して再度実行可能とする構成（特許文献３）では、中断したワークフローの中で最後に実行されたアクティビティでの処理結果のデータしか保管していない。そのため、中断したワークフローにおける最後のアクティビティ以外のアクティビティから処理を再開したい場合に、そのアクティビティでの処理結果が保存されておらず、当該アクティビティを再度実行する必要が生ずる。
【０００９】
このように、上記従来技術では、ワークフローの実行の可否を、ワークフローにて順次処理されてゆく処理対象データの変化を考慮しつつ、効率良く判定することができなかった。
【００１０】
この発明の実施の形態は、ワークフローの実行の可否を、ワークフローにて順次処理されてゆく処理対象データの変化を考慮しつつ、効率良く判定することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決するため、本発明の一態様は、連続する複数の処理単位において上流側の処理単位から下流側の処理単位へ向けて処理対象となるデータを順次処理してゆくワークフローを実行した場合における、前記複数の処理単位の内の処理が完遂された処理単位について該処理単位で処理された処理済データに関する情報を取得する処理結果取得部と、前記処理結果取得部にて処理済データに関する情報が取得された処理単位よりも下流側に位置する処理単位における処理の実行条件に関する情報を取得する実行条件取得部と、前記実行条件取得部にて取得される実行条件に関する情報に基づいて、前記処理結果取得部にて情報が取得された処理済データを、該処理済データを処理した処理単位よりも下流側に位置する処理単位にて処理可能であるか否かを判定する実行可否判定部と、を備えるワークフロー管理装置に関する。
【００１２】
また、本発明の別の態様は、連続する複数の処理単位において上流側の処理単位から下流側の処理単位へ向けて処理対象となるデータを順次処理してゆくワークフローを実行した場合における、前記複数の処理単位の内の処理が完遂された処理単位について該処理単位で処理された処理済データに関する情報を取得し、前記処理済データに関する情報が取得された処理単位よりも下流側に位置する処理単位における処理の実行条件に関する情報を取得し、前記取得される実行条件に関する情報に基づいて、前記情報が取得された処理済データを、該処理済データを処理した処理単位よりも下流側に位置する処理単位にて処理可能であるか否かを判定するワークフロー管理方法に関する。
【００１３】
また、本発明の別の態様は、連続する複数の処理単位において上流側の処理単位から下流側の処理単位へ向けて処理対象となるデータを順次処理してゆくワークフローを実行した場合における、前記複数の処理単位の内の処理が完遂された処理単位について該処理単位で処理された処理済データに関する情報を取得し、前記処理済データに関する情報が取得された処理単位よりも下流側に位置する処理単位における処理の実行条件に関する情報を取得し、前記取得される実行条件に関する情報に基づいて、前記情報が取得された処理済データを、該処理済データを処理した処理単位よりも下流側に位置する処理単位にて処理可能であるか否かを判定する処理をコンピュータに実行させるワークフロー管理プログラムに関する。
【発明の効果】
【００１４】
以上に詳述したように本発明によれば、ワークフローの実行の可否を、ワークフローにて順次処理されてゆく処理対象データの変化を考慮しつつ、効率良く判定することのできる技術を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施の形態によるワークフロー管理装置の概略構成を示す機能ブロック図である。
【図２】本発明の第１の実施の形態によるワークフローシステム１を構成するための機器を示す図である。
【図３】Ｗｅｂブラウザに表示されるワークフローの編集画面を示す図である。
【図４】”旅費精算申請”ワークフローを、ワークフロー構成部１０３を用いて作成する場合について説明するための図である。
【図５】スキャン画像の取得対象となるワークフロー実行履歴保管部１１０に保管される情報を模式的に表した領収書の一例を示す図である。
【図６】画像処理およびファイル保存等を行うワークフローの一例を示す図である。
【図７】ワークフローシステム１でのワークフロー処理について説明するための図である。
【図８】本発明の第２の実施の形態によるワークフロー管理装置の概略構成を示す機能ブロック図である。
【図９】バージョン２のフローチャートの内容を示す図である。
【図１０】バージョン１のフローチャートの内容を示す図である。
【図１１】本発明の第２の実施の形態における処理の流れについて説明するためのフローチャートである。
【図１２】ワークフロー実行履歴保管部１１０に保管される情報を模式的に表した図である。
【図１３】ワークフローを再実行する処理について、説明するためのフローチャートである。
【図１４】実行したワークフローの一覧の画面を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１７】
（第１の実施の形態）
まず、本発明の第１の実施の形態について説明する。
【００１８】
図１は、本発明の第１の実施の形態によるワークフロー管理装置の概略構成を示す機能ブロック図である。
【００１９】
同図に示すように、本実施の形態によるワークフロー管理装置は、文書データ処理部１０１、アクティビティ保管部１０２、ワークフロー構成部１０３、ワークフロー構成保管部１０４、ワークフロー実行部１０５、アクティビティ実行条件保管部１０６、アクティビティ実行可能判定部１０７、ワークフロー続行可能判定部１０８およびワークフロー中断時対応処理部１０９を備えている。
【００２０】
本実施の形態によるワークフロー管理装置は、ワークフローの作成、編集、検証、実行といったワークフロー管理に関する処理を行う。本実施の形態において、「ワークフロー」とは、文書データや画像データ等のデータに関する様々な処理を組み合わせ、一連の処理としたものである。本実施の形態では、一例として、「紙文書をスキャンして、文書データであるスキャン画像を取得する」、「文書データを印刷する」、「文書データをファイルサーバに登録する」、「文書データから画像を切り出す」などの文書データを対象とした処理を実行するワークフローについて説明する。
【００２１】
以下、本実施の形態によるワークフロー管理装置を構成する各構成要素について詳細に説明する。
【００２２】
文書データ処理部１０１は、紙文書をスキャンして文書データを取得したり、文書データを印刷して出力したり、といった、文書データに関する処理を行う。
【００２３】
アクティビティ保管部１０２は、「紙文書をスキャンする」、「スキャン画像をファイルに保存する」などのワークフローの処理単位である「アクティビティ」を保管する。
【００２４】
本実施の形態におけるワークフローは、連続する複数のアクティビティから構成されることができ、上流側のアクティビティから下流側のアクティビティへ向けて処理対象となるデータを順次処理してゆく。
【００２５】
ワークフロー構成部１０３（編集部）は、アクティビティ保管部１０２にて保管されている複数のアクティビティを、実行する順に並べ、かつ、アクティビティの属性に対して所望の値を設定することで、一連の処理となるワークフローを構成することができる。また、ワークフロー構成部１０３は、構成したワークフローを構成する複数の処理単位の内の少なくともいずれかにおける処理内容を任意に編集可能となっている。
【００２６】
ワークフロー構成保管部１０４は、ワークフロー構成部１０３にて作成されるワークフローを構成する各アクティビティの実行順序や、アクティビティの属性に設定された値を保管する。
【００２７】
ワークフロー実行部１０５は、ワークフロー構成保管部１０４にて保管されているワークフローの構成を解釈し、アクティビティを設定された順序で実行させる。
【００２８】
アクティビティ実行条件保管部１０６は、アクティビティ保管部１０２にて保管されている各アクティビティに対応付けて、アクティビティを実行するのに必要となる実行条件を保管する。
【００２９】
アクティビティ実行可能判定部１０７は、ワークフロー実行部１０５にてワークフローを構成する各アクティビティを順に実行していく際、実行対象となる各アクティビティがアクティビティ実行条件保管部１０６にて保管されている実行条件を満たしているかどうか判定する。アクティビティ実行可能判定部１０７は、上記判定の結果、実行条件を満たしていない場合（処理を実行できないと判定される処理単位がある場合）はアクティビティの実行が不可能として、ワークフロー実行部１０５にワークフローの実行の中断を指示する。
【００３０】
ワークフロー続行可能判定部１０８は、ワークフロー実行部１０５にてアクティビティを実行させた後に、実行させたアクティビティ以降に実行されるすべてのアクティビティが実行可能かどうか、アクティビティ実行可能判定部１０７にて判定を行わせる。ワークフロー続行可能判定部１０８は、実行させたアクティビティ以降に実行されるすべてのアクティビティが実行可能でない場合に、ワークフローの中断を行わせる。
【００３１】
具体的に、ワークフロー続行可能判定部１０８（処理結果取得部）は、ワークフローを実行した場合における、複数のアクティビティの内の処理が完遂されたアクティビティについて該アクティビティで処理された処理済データに関する情報を取得する。
【００３２】
次に、ワークフロー続行可能判定部１０８（実行条件取得部）は、処理済データに関する情報が取得されたアクティビティよりも下流側に位置するアクティビティにおける処理の実行条件に関する情報を取得する。
【００３３】
そして、ワークフロー続行可能判定部１０８（実行条件取得部、実行可否判定部）は、アクティビティ実行条件保管部１０６から取得される実行条件に関する情報に基づいて、情報が取得された処理済データを、該処理済データを処理したアクティビティよりも下流側に位置するアクティビティにて処理可能であるか否か（処理を続行可能であるか否か）を判定する。
【００３４】
ワークフロー中断時対応処理部１０９（中断時対応処理部）は、ワークフロー実行部１０５にてワークフローを実行している際に、アクティビティ実行可能判定部１０７よりアクティビティの実行が不可能と判定され、ワークフローの実行が中断された際に、それに対応する処理（所定の処理）を実行する。
【００３５】
また、ワークフロー続行可能判定部１０８（実行可否判定部）は、複数のアクティビティの内、下流側のアクティビティの実行に影響を与える可能性のある所定のアクティビティについてのみ、該アクティビティにて処理された処理済データを該アクティビティよりも下流側に位置するアクティビティで処理可能であるか否かの判定を行うこともできる。
【００３６】
さらに、ワークフロー続行可能判定部１０８（実行可否判定部）は、複数のアクティビティの内、処理済データに関する情報が取得されたアクティビティよりも下流側に位置するアクティビティの内、処理の実行に関して該処理済データの内容の影響を受ける可能性がある所定のアクティビティについてのみ、該処理済データを処理可能であるか否かの判定を行うようにすることもできる。
【００３７】
図２は、本発明の第１の実施の形態によるワークフローシステム１を構成するための機器を示す図である。
【００３８】
本発明の第１の実施の形態によるワークフローシステム１は、ＭＦＰ９０１と、ワークフローサーバ９０２と、ファイルサーバ９０３と、クライアントＰＣ９０４と、ネットワーク９０５と、を備えている。ここで、ＭＦＰ９０１、ワークフローサーバ９０２、ファイルサーバ９０３およびクライアントＰＣ９０４は、それぞれが独立してＣＰＵおよびメモリを備えており、当該メモリに格納されているプログラムをＣＰＵにて実行させることにより、各機器における所望の機能を実現している。
【００３９】
ＭＦＰ９０１は、紙文書や文書データを扱うことができる多機能端末装置である。ワークフローサーバ９０２は、ワークフローに関する処理を担う。ファイルサーバ９０３は、スキャン画像などを保管できる。クライアントＰＣ９０４は、ＭＦＰ９０１、ワークフローサーバ９０２、ファイルサーバ９０３にアクセスし、各機器から提供されるサービスを利用することができる。ネットワーク９０５は、これらの機器を有線または無線によって相互通信可能に接続している。
【００４０】
さらに、ＭＦＰ９０１は、紙文書をスキャンしてスキャン画像を取得することができるスキャナ９０１ａと、文書データを印刷することができるプリンタ９０１ｂと、タッチパネル式ディスプレイにより、ユーザへの情報の掲示やユーザの操作入力の受け付けを行うコントロールパネル９０１ｃと、を備えている。
【００４１】
ワークフローシステム１では、ユーザが、所望のアクティビティを組み合わせることにより、所望の一連の処理を実行するワークフローを作成し、それを実行させることが可能である。
【００４２】
上記各アクティビティは、ＭＦＰ９０１やファイルサーバ９０３が備える、文書データ処理部１０１にて利用可能となっている。
【００４３】
ワークフローサーバ９０２に備わるアクティビティ保管部１０２にて保管されている各アクティビティには、プロパティを個別に設定することができる。たとえば、「文書データをファイルサーバに登録する」アクティビティを実行する際に必要となる「どの文書データを登録するのか」、「どこへ登録するのか」、「どのようなファイルフォーマットで登録するのか」などの情報をプロパティとして設定することができる。これらプロパティが設定された状態でアクティビティの実行指示が出されると、プロパティに設定されている情報に基づいて、各アクティビティの処理が実行される。
【００４４】
ワークフローは、アクティビティをどの順で実行するか、加えて、各アクティビティにどのようなプロパティを設定するか、という「構成情報」にて定義されている。ワークフローは、この構成情報の定義内容に従って、順にアクティビティへ実行指示を出すことで一連の処理を行う。なお、このようなワークフローの構成情報は、ワークフローサーバ９０２に備わるワークフロー構成保管部１０４にて保管されている。
【００４５】
ワークフローサーバ９０２にはワークフロー構成部１０３が備わっており、ユーザはワークフロー構成部１０３により、ワークフローを構成することができる。ワークフロー構成部１０３を利用したワークフローを構成する操作は、ワークフローサーバ９０２より提供されるＷｅｂアプリケーションを利用して行うことができる。ユーザは、クライアントＰＣ９０４にてＷｅｂブラウザ上に表示されるＧＵＩ画面を用いて、ワークフローの作成や編集を行うことが可能となっている。
【００４６】
図３は、クライアントＰＣ９０４にて画面表示されるＷｅｂブラウザに表示されるワークフローの編集画面の一例を示す図である。
【００４７】
図３では、「アクティビティ」と題された領域３０１の中に、ワークフローの処理単位であるアクティビティが、アイコン３０２からアイコン３０８のように表示されている。ここで表示されるアクティビティは、ワークフローサーバ９０２に備えられているアクティビティ保管部１０２にて保管されているものであり、これらが領域３０１に一覧表示される。ユーザはマウスなどのデバイスを用いてマウスポインタ３１７を操作することができ、ボタン３０９やボタン３１０を押下することで、領域３０１にて表示されているアクティビティのアイコンをスクロールさせたり、表示されていないアイコンを表示させたりすることができる。
【００４８】
編集の対象となるワークフローは、領域３１１に表示される。ここでは、ワークフローにて実行されるアクティビティがアイコン３１２からアイコン３１６として表示されており、アクティビティ間を矢印でつなぐことによってアクティビティからアクティビティへの処理の流れが示されている。ユーザは、例えばマウスを操作して、領域３０１内に表示されている任意のアイコンを、領域３１１に表示されているワークフローにおける実行させたい位置へドラッグ＆ドロップすることで、任意のアクティビティをワークフローに追加することができる。ユーザは、このようにしてワークフローの編集を行うことができる。
【００４９】
アイコン３１２は「スキャン」アクティビティを表すアイコンであり、同図に示すアイコン３１２が太枠線で囲まれた状態で画面表示されていることにより、アイコン３１２が選択されている状態であることがわかる。ユーザは、領域３１１に表示されるアイコンをクリックすることで、所望のアクティビティを選択することができる。このようにアクティビティが選択されると、「プロパティ」と題された領域３１８に、選択されたアクティビティの属性が表示される。ここでは、現在選択されている「スキャン」アクティビティ３０２に設定されているプロパティとして、プロパティ名「解像度」、「カラー／モノクロ」、および「用紙サイズ」と、各プロパティに設定された値とが領域３１８に一覧表示されている。
【００５０】
ユーザは、領域３１８にて表示されているテーブル内の任意の行をクリックすることでプロパティの値を編集することができ、キーボードなどのデバイスを用いて所望の文字列を設定入力することができる。またユーザは、領域３１１にて選択したアクティビティをワークフローから除外したい場合は、キーボードからＤｅｌｅｔｅキーなどを押下することで、当該アクティビティをワークフローから削除することができる。
【００５１】
ユーザは、所望の処理を行うワークフローが作成できたら、「登録」ボタン３２１をクリックすることで、作成した当該ワークフローをワークフロー構成保管部１０４に保管することができる。
【００５２】
ワークフロー構成保管部１０４には、ワークフロー構成部１０３で作成したワークフローを構成する各アクティビティの実行順序、および各アクティビティについて設定されたプロパティの設定値が保管されている。また、本実施の形態では、ワークフローの保管に際してユーザがワークフローに「旅費精算申請」などと名前をつけることができるようになっており、このようにしてワークフローに付される名前も、ワークフローの情報として保管される。作成されたワークフローには、そのワークフローを一意に識別するためのワークフローＩＤが、ワークフロー構成部１０３若しくはワークフロー構成保管部１０４にて割り当てられ、管理される。
【００５３】
ボタン３１９をクリックすると、領域３１１が初期化され、新しくワークフローを作成することができる。この状態からワークフローを作成した後、ボタン３２１をクリックすると、作成したワークフローが新たにワークフロー構成保管部１０４に登録される。
【００５４】
ボタン３２０をクリックすると、ワークフロー構成保管部１０４にて保管されているすべてのワークフローが、例えばワークフロー名の一覧で画面表示される。ユーザは、表示された一覧の中から所望のワークフローを選択すると、選択されたワークフローが領域３１１に画面表示され、当該ワークフローを編集可能な状態となる。ユーザは、ワークフローの編集を終えた後、ボタン３２１をクリックすることで登録されているワークフローの内容を編集後の内容に更新することができる。
【００５５】
図４は、”旅費精算申請”ワークフローを、ワークフロー構成部１０３を用いて作成する場合について説明するための図である。以下、この”旅費精算申請”ワークフローについて説明する。
【００５６】
ワークフロー構成保管部１０４には、複数のワークフローについての構成情報を保管することができる。各ワークフローには、それぞれを一意に識別するためのワークフローＩＤが付与されており、相互に識別可能となっている。例えば、本実施の形態では、“旅費精算申請”ワークフローには、ワークフローＩＤ４１１として「３」が設定されている。
【００５７】
次に、“旅費精算申請”ワークフローの処理内容の詳細について説明する。
【００５８】
まず、ユーザは、「スキャン」アクティビティ４０１により、スキャナ９０１ａを利用して紙文書を電子化したスキャン画像を取得する。この際、「スキャン」アクティビティ４０１では、解像度３００ｄｐｉ、カラースキャン、Ａ４の原稿、スキャン画像保存時のファイル形式はＴＩＦＦという設定内容でスキャンを行う。これら設定内容は、「スキャン」アクティビティ４０１についてのプロパティ４０６に設定されている。
【００５９】
次に、「トリミング」アクティビティ４０２によって、原稿からスキャンして得られるスキャン画像から、プロパティに設定された領域だけを切り出した画像に変更する。ここでは、プロパティに設定される”Ｌｅｆｔ”、”Ｔｏｐ”、”Ｒｉｇｈｔ”、”Ｂｏｔｔｏｍ”により規定される矩形領域がスキャン画像から切り出される。
【００６０】
次に、「画像スタンプ」アクティビティ４０３により、”種類”のプロパティで指定された画像が、”Ｘ”、”Ｙ”のプロパティで指定された位置に描画される。ここでは、「トリミング」アクティビティ４０２にて切り出された画像に対し、“種類”プロパティに指定されている自分の認印の画像を、指定した位置に描画させる。
【００６１】
次に、「承認」アクティビティ４０４により、ワークフロー内で扱っている画像の承認を得る。“承認者”プロパティに指定されている承認者へ、ワークフロー内で扱っている画像の承認依頼（例えば、Ｅメールによる通知など）が発生し、承認者が承認を行うとワークフローが次の工程に進むことが可能となる。
【００６２】
一方、承認者が承認を拒否すると、その時点でワークフローは終了となる。
【００６３】
次に、「ファイル保存」アクティビティ４０５により、ワークフロー内で扱っている画像をファイルとして保存する。具体的に、保存対象となる画像は、「ファイル保存」アクティビティ４０５のプロパティ４１０において“登録先”プロパティで指定されている場所へ、“フォーマット“プロパティで指定されているファイル形式でファイル保存される。ここでは、”フォーマット”プロパティが、“ＢＭＰ”、つまりビットマップ形式で保存するように指定されている。
【００６４】
ここでは、“旅費精算申請”ワークフローを実行し、最初に実行されるアクティビティである「スキャン」アクティビティ４０１にて、図５に示すような領収書のスキャン画像が得られる場合について説明する。このとき、図６に示すような画像処理がワークフローにて施され、ファイル保存される。まず、「スキャン」アクティビティ４０１にて紙文書をスキャンした時、図６に示す画像６０１のような画像データが得られている。次に、「トリミング」アクティビティ４０２にて、画像６０２のように、画像６０１の余白部分が切り取られた画像が得られる。次に、「画像スタンプ」アクティビティ４０３にて、認印の画像６０４が追加された画像６０３が得られる。この画像６０３が、「承認」アクティビティ４０４における承認処理の対象となり、承認されれば「ファイル保存」アクティビティ４０５にてファイル保存される。
【００６５】
次に、アクティビティ実行可能判定部１０７について具体的に説明する。アクティビティ実行可能判定部１０７は、指定されるアクティビティが実行可能であるかどうかを判定する。アクティビティ実行可能判定部１０７は、当該判定処理を実行する際に、指定されたアクティビティの実行条件を参照する。当該実行条件は、アクティビティ実行条件保管部１０６に保管されている。
【００６６】
具体的に、アクティビティ実行条件保管部１０６には、アクティビティ保管部１０２にて保管されている各アクティビティを実行するのに必要となる条件が定義されている。たとえば、「ファイル保存」アクティビティ４０５であれば、「保存しようとするファイルの容量が５ＭＢｙｔｅ以下でなければならない」という条件が定義されている。
【００６７】
アクティビティ実行可能判定部１０７は、アクティビティ実行条件保管部１０６に保管されている実行条件を参照し、その実行条件が現在満たされているかどうかを評価する。
【００６８】
評価の結果、実行条件が満たされていれば、そのアクティビティは実行可能であると判定される。逆に、実行条件が満たされていなければ、実行不可能であると判定し、ワークフロー実行部１０５にワークフローの中断を指示する。
【００６９】
次に、ワークフローシステム１でのワークフロー処理について、図７に示すフローチャートを用いて説明する。
【００７０】
まず、ＡＣＴ７０１にて、ワークフローサーバ９０２に備わるワークフロー実行部１０５により、ＭＦＰ９０１のコントロールパネル９０１ｃに、ワークフロー構成保管部１０４に保管されているワークフローの一覧が画面表示される。ユーザは、コントロールパネル９０１ｃを操作し、提示されたワークフローの一覧の中から、実行したいワークフローを選択する。ユーザがワークフローを選択すると、選択されたワークフローＩＤが決定される。
【００７１】
次に、ＡＣＴ７０２にて、ワークフロー実行部１０５は、ワークフロー構成保管部１０４を参照して、ＡＣＴ７０１で決定されたワークフローＩＤに該当するワークフローの構成情報を、ワークフロー構成保管部１０４を参照して取得し、これを解釈する。これにより、選択されたワークフローのアクティビティの実行順序、および、各アクティビティに設定されたプロパティを取得することができる。
【００７２】
次に、ＡＣＴ７０３からＡＣＴ７０８にて、ワークフロー実行部１０５により、ワークフローのアクティビティを順に実行していく。
【００７３】
ＡＣＴ７０４では、ワークフロー続行可能判定部１０８により、ワークフローが続行可能かどうかの検証を行う。ワークフロー続行可能判定部１０８の詳細については後述する。
【００７４】
ＡＣＴ７０４でワークフローが続行可能と判定された場合は、ＡＣＴ７０６に進み、アクティビティを実行する。ＡＣＴ７０４からＡＣＴ７０８の処理を繰り返し、ワークフロー中のアクティビティをすべて実行し終えたら、ワークフローの処理を終了させる。
【００７５】
一方、ＡＣＴ７０４にてワークフローの続行が不可能と判定された場合は、ＡＣＴ７０９に処理が移り、アクティビティ実行可能判定部１０７は、ワークフロー実行部１０５にワークフローを中断させる指示を出す。
【００７６】
ＡＣＴ７１０では、ワークフロー中断時対応処理部１０９により、ワークフロー中断に対応する処理を行う。具体的に、ワークフロー中断時対応処理部１０９によってワークフロー中断時に実行される処理としては、例えば、ワークフローがどこで中断したかをコントロールパネル９０１ｃに表示してユーザに知らせた後にワークフローの処理を終了させる、といった処理が挙げられる。
【００７７】
次に、ワークフロー続行可能判定部１０８について説明する。ワークフロー続行可能判定部１０８は、ワークフローにおけるアクティビティを実行する際に、アクティビティ実行可能判定部１０７を用いて、当該実行するアクティビティ以降の後段のアクティビティが実行可能であるかどうかを判定させる。
【００７８】
たとえば、図４に示される「旅費精算申請」ワークフローの第４番目のアクティビティである、「承認」アクティビティ４０４を実行する場合、「承認」アクティビティ４０４以降のすべてのアクティビティについて、アクティビティ実行可能判定部１０７により、実行可能であるかどうかを判定させる。
【００７９】
ここで、「ファイル保存」アクティビティ４０５には、「保存しようとするファイルの容量が５ＭＢ以下でなければならない」という条件が設定されている。「承認」アクティビティ４０４を実行しようとしている段階で、既に「画像スタンプ」アクティビティ４０３までが実行されており、画像６０３が得られている。
【００８０】
このとき、「承認」アクティビティ４０４以降にある「ファイル保存」アクティビティ４０５は、この画像６０３をファイルとして保存しようとしている。したがって、画像６０３を保存すると５ＭＢｙｔｅ以上のファイルになってしまうのであれば、「ファイル保存」アクティビティ４０５は実行できない。つまり、「承認」アクティビティ４０４の実行が完了しても、「ファイル保存」アクティビティ４０５の実行ができないため、このワークフローは完遂することができない。
【００８１】
このようにして、本実施の形態では、「承認」アクティビティ４０４を実行する前の段階で、完遂できないワークフローを中断させる。
【００８２】
これによって、「承認」アクティビティ４０４を実行し、「ファイル保存」アクティビティ４０５で５ＭＢ以上の容量の保存できない画像ファイルを保存しようとして失敗してから、ワークフローを中断させる、といった無駄な工程を経ることを回避することができる。
【００８３】
なお、ワークフローにおけるｎ番目の処理を行うアクティビティにおける処理結果が、ワークフロー全体としての処理の完遂に影響を与えるような性質のものではなく、ｎ＋１番目以降の後段の処理を行う特定の或いは全てのアクティビティにて入力値として利用されれない場合もあり得る。このような場合には、ワークフロー続行可能判定部１０８による判定処理の際に、上記ｎ番目のアクティビティでの処理結果に基づく処理完遂可否の判定を省略するようにしてもよい。
【００８４】
以上のように、本実施の形態の構成によれば、ワークフローの実行途中にワークフローが完遂できないと判断できる場合は、可能な限り早い段階でワークフローを中断し、実行できない処理を実行する前にワークフローを終了させることができる。これにより、完遂できないワークフローの実行に費やす時間を短縮することができ、ワークフロー管理における管理効率の向上に寄与することができる。
【００８５】
（第２の実施の形態）
続いて、本発明の 第２の実施の形態について説明する。本発明の第２の実施の形態は、上述した第１の実施の形態の変形例である。以下、本実施の形態において、第１の実施の形態においてすでに説明した部分と同様な機能を有する部分には同一符号を付し、説明は省略する。
【００８６】
図８は、本発明の第２の実施の形態によるワークフローシステム２の構成について説明するための機能ブロック図である。
【００８７】
本発明の第２の実施の形態によるワークフローシステム２は、文書データ処理部１０１、アクティビティ保管部１０２、ワークフロー構成部１０３、ワークフロー構成保管部１０４、ワークフロー実行部１０５、ワークフロー実行履歴保管部１１０（処理結果取得部、処理結果記憶部）、ワークフローバージョン保管部１１１、ワークフロー再実行指示部１１２および再実行アクティビティ特定部１１３（再実行制御部）を備えている。
【００８８】
以下、本実施の形態にて新たに加わった、ワークフロー実行履歴保管部１１０、ワークフローバージョン保管部１１１、ワークフロー再実行指示部１１２および再実行アクティビティ特定部１１３について詳細に説明する。
【００８９】
ワークフロー実行履歴保管部１１０は、ワークフロー実行部１０５にてワークフローを実行する際、実行したワークフローの識別情報やワークフローの実行開始時刻などのワークフローの実行に関する情報とともに、ワークフローを実行した際に、各アクティビティで処理の対象となったデータ（ここでは、画像データとする。）を取得し、当該取得したデータと実行したアクティビティとを関連付けて保管する。
【００９０】
ワークフローバージョン保管部１１１は、ワークフロー構成保管部１０４にて保管されているワークフローのアクティビティの実行順序やプロパティを、ワークフロー構成部１０３を用いて、再構成し、再構成したワークフローを再度ワークフロー構成保管部１０４に上書き保管する際に、再構成する前の旧バージョンのワークフローの構成を保管する。
【００９１】
ワークフロー再実行指示部１１２は、ワークフロー実行履歴保管部１１０にて保管されているワークフローの実行履歴の中から、任意のワークフローを指定し、さらに、その指定されたワークフロー中の任意のアクティビティを指定すると、指定されたアクティビティを過去に実行した際に処理の対象となった画像をワークフロー実行履歴保管部１１０から取得し、当該取得された画像を、指定されたアクティビティ以降のアクティビティによって処理するようワークフロー実行部１０５に入力する。
【００９２】
再実行アクティビティ特定部１１３は、ワークフロー実行履歴保管部１１０にて保管されている一度実行したワークフローを再度実行する際に、重複する処理をさけた処理を行うには、どのアクティビティから再開すればよいかを特定する。
【００９３】
このようなワークフローシステム２は、ワークフローシステム１と同様の機器によって構成されており（図２を参照）、その機能が実現されているものとする。
【００９４】
ワークフローシステム２では、ワークフローを実行して中断、あるいは完了した後、この実行済みのワークフローの構成をワークフロー構成部１０３により編集し、再度実行することができる。たとえば、構成したワークフローを実行してみたものの中断してしまったため、当該ワークフローの構成を中断しないように変更し、再度実行を行いたい場合がある。あるいは、ワークフローを完了することはできたものの、ワークフローによる処理結果に満足がいかないとき、構成を変更して再度実行を行いたい場合がある。
【００９５】
この場合、ワークフローでの処理対象となるデータ（例えば、スキャン画像）や既に承認された内容などのように、処理の内容に変更がないアクティビティについては、ワークフローを再度実行する際に再実行する必要がない。そのため、変更前とまったく同じ処理を実行するアクティビティを省いたアクティビティについてワークフローの再実行を行うことが、処理効率の観点では望ましい。
【００９６】
ワークフローシステム２では、上述したワークフローシステム１と同様、ワークフロー構成部１０３を用いて、図３に示したような操作画面上でワークフローの構成を行うことができる。
【００９７】
ここで、ワークフローの更新について詳細に説明する。ユーザは、ワークフローの構成画面にて領域３１８をクリックすることにより、画面表示される登録済のワークフローの設定値を編集することができる。ユーザは、ワークフローの編集を終えた後、ボタン３１９をクリックすると、ワークフロー構成保管部１０４に保管されていたワークフローの構成情報を、更新されたワークフロー構成で上書きして更新することができる。
【００９８】
ここで、ワークフロー構成保管部１０４では、保管しているワークフローのバージョン情報を格納することができ、ワークフローを上書きすると、バージョン番号が更新されるようになっている。同時に、ワークフローバージョン保管部１１１に、上書きされる前の古いバージョンのワークフローの構成情報が履歴として保管される。ワークフローバージョン保管部１１１では、ワークフローのバージョン番号とその構成が対になって保管されている。
【００９９】
ここでは、図４にて示した“旅費精算申請”ワークフローが、ワークフロー構成保管部１０４に保管されており、これをワークフロー構成部１０３により更新する場合について説明する。
【０１００】
図４に示す、ワークフロー構成保管部１０４に保管されていたワークフローでは、５番目のアクティビティである“ファイル保存”アクティビティ４０５の“フォーマット”プロパティが“ＢＭＰ”であった。ここでは、これを“Ｊｐｅｇ”に変更し、“登録先”プロパティの値も変更するものとする。
【０１０１】
図９は、更新後のワークフローの各アクティビティのプロパティ情報を示す図であり、図９は、更新前のワークフローの各アクティビティのプロパティ情報を示す図である。
【０１０２】
このようにして更新された“ファイル保存”アクティビティ４０５のプロパティ情報は、ワークフロー構成保管部１０４に保管される。このとき、図９に示すように、新しいワークフローの構成とともに、ワークフローのバージョン１３０２が保管される。ここでは、最初に保管されていたワークフローから更新されたものであるため、バージョン番号として「２」が付与されている。一方、更新前の旧いバージョン（バージョン番号「１」）のワークフローの構成は、ワークフローバージョン保管部１１１に保管されている。ワークフローバージョン保管部１１１では、図１０に示すように、更新前のワークフローの構成情報とバージョン番号１４０２も保管されている。加えて、保管されている更新前のワークフローを識別するためのワークフローＩＤ１４０１が保管されている。
【０１０３】
次に、ワークフロー構成保管部１０４に保管されているワークフローを、ワークフロー実行部１０５を用いて実行する場合について説明する。以下、ワークフローの実行について、図１１に示すフローチャートを用いて説明する。
【０１０４】
まず、ＡＣＴ９０１にて、ワークフローサーバ９０２に備わるワークフロー実行部１０５により、ＭＦＰ９０１のコントロールパネル９０１ｃに、ワークフロー構成保管部１０４に保管されているワークフローの一覧がユーザへ提示される。ユーザはコントロールパネル９０１ｃを操作し、提示されたワークフローの一覧の中から、実行したいワークフローを選択する。ユーザの操作により実行するワークフローが選択されると、選択されたワークフローのＩＤが決定される。
【０１０５】
次に、ＡＣＴ９０２にて、ワークフロー実行部１０５がワークフロー構成保管部１０４を参照し、ＡＣＴ９０１で決定されたワークフローＩＤをもとに、該当するワークフローの構成情報を取得する。これにより、選択されたワークフローのアクティビティの実行順序、および、各アクティビティに設定されたプロパティ情報を取得することができる。
【０１０６】
次に、ＡＣＴ９０３にて、実行するワークフローに関する情報、つまり、ワークフローＩＤ、ワークフローのバージョン番号、ワークフロー名、ワークフローの開始時刻を、ワークフロー実行履歴保管部１１０に保管する。また、ワークフローの実行状況もワークフロー実行履歴保管部１１０に保管する。ここでは、ワークフローが開始されたので、“進行中”という実行状況が保管される。
【０１０７】
次に、ＡＣＴ９０４からＡＣＴ９１０にて、ワークフロー実行部１０５により、ワークフローのアクティビティを順に実行していく。
【０１０８】
ＡＣＴ９０５では、実行するアクティビティが処理対象とする画像を、そのアクティビティの実行順序と関連付けてワークフロー実行履歴保管部１１０に保管する。
【０１０９】
その後、ＡＣＴ９０６にて、アクティビティを実行する。
【０１１０】
ＡＣＴ９０７で、ＡＣＴ９０６で実行したアクティビティが実行完了したかどうか判定する。実行が完了していればＡＣＴ９０９へ、実行できなかったならばＡＣＴ９０８へ進む。
【０１１１】
ＡＣＴ９０８へ進んだ場合、ワークフロー実行履歴保管部１１０に、ワークフローが中断したことを履歴情報として保管する。
【０１１２】
ＡＣＴ９０５からＡＣＴ９１０を繰り返し実行し、ワークフローの終端に達したら、ワークフローの処理を終了させる。
【０１１３】
ワークフローの終端に達し、ＡＣＴ９１１へ処理が進んだ場合、ワークフローが完了したことを、ワークフロー実行履歴保管部１１０に保管する。
【０１１４】
ここでは、図４にて示した“旅費精算申請”ワークフローをワークフローシステム２にて実行した場合について説明する。このとき、ワークフロー実行履歴保管部１１０に保管される情報を模式的に表したものを図１２に示す。１００１は、ＡＣＴ９０３にて保管される、実行したワークフローに関する情報を表している。ここでは、履歴ＩＤ、ワークフローＩＤ、ワークフロー名、ワークフロー開始時刻、ワークフロー実行状況が保管されている。
【０１１５】
ここでは、ワークフローを実行したところ、“承認”アクティビティが実行できずに処理が中断してしまったものとする。このため、ワークフローを完遂できなかったことにより、ワークフロー実行状況に“中断”という、ワークフローが中断したことを表す情報が保管されている。また、履歴ＩＤは、ワークフローの実行を一意に特定するための数値であり、ワークフローの履歴が生成されるたびに付与される。
【０１１６】
１００２から１００５は、ＡＣＴ９０５にて行われる、アクティビティにて処理の対象となる画像が、アクティビティの実行順序と関連付けられて保管されている様子を示している。
【０１１７】
１００２は、”旅費精算申請ワークフロー”の１番目に実行されるアクティビティである、”スキャン”アクティビティにて処理の対象となった画像が保管されている様子を示している。しかし、“スキャン”アクティビティでは画像を対象として処理を行うことはしないため、何も保管されていない。
【０１１８】
１００３は、２番目に実行されるアクティビティである、”トリミング”アクティビティにて処理の対象となるスキャン画像が保管されている様子を示している。
【０１１９】
１００４は、３番目に実行されるアクティビティである、”スタンプ画像”アクティビティにて処理の対象となる画像が保管されている様子を示している。２番目の”トリミング”アクティビティで特定の領域だけ切り出された画像が、”スタンプ画像”アクティビティにおける処理対象である。
【０１２０】
１００５は、４番目に実行されるアクティビティである、”承認”アクティビティにて処理の対象となる画像が保管されている様子を示している。３番目の”スタンプ画像”アクティビティで認印の画像が追加された状態の画像が、”承認”アクティビティにおける処理対象である。
【０１２１】
ここでは、“旅費精算申請”ワークフローが、“承認”アクティビティを実行する前に中断されたため、５番目に実行される“ファイル保存”アクティビティの実行履歴は保管されていない。
【０１２２】
次に、過去に実行されたワークフローの構成を更新し、再度実行させる場合の処理について説明する。
【０１２３】
ここでは、図４に示す“旅費精算申請”ワークフローを実行したものの、“承認”アクティビティでワークフロー処理が中断してしまったものとする。また、“ファイル保存”アクティビティの“フォーマット”プロパティを“ＢＭＰ”から  “Ｊｐｅｇ”に変更したものとする。
【０１２４】
このようにワークフローの構成を更新すると、更新前のワークフロー構成は図１０に示すようにワークフローバージョン保管部１１１に保管され、更新されたワークフローの構成は図９に示すようにワークフロー構成保管部１０４に保管される。
【０１２５】
次に、ワークフローを再実行する処理について、図１３のフローチャートを用いて説明する。
【０１２６】
まず、ＡＣＴ１１０１にて、ワークフロー再実行指示部１１２は、ワークフロー実行履歴保管部１１０に保管されている、既に実行したワークフローの一覧をユーザに提示する。当該ワークフローの一覧は、ワークフローサーバ９０２にて提供されるＷｅｂアプリケーションによって画面表示されるものであり、クライアントＰＣ９０４を利用してアクセスすることで、当該ワークフロー一覧の画面を閲覧することができる。もちろん、コントロールパネル９０１ｃにて、当該ワークフロー一覧を画面表示させることもできる。
【０１２７】
図１４は、実行したワークフローの一覧画面の一例を示す図である。リスト１２０１に、既に実行したワークフローが一覧となって表示される。具体的に、リスト１２０１には、実行したワークフローのＩＤ、名前、バージョン、ワークフローを実行した時刻、ワークフローの実行状況等が含まれている。ここで、リスト１２０１における任意の行をクリックすると、その行を選択することができ、１２０２に示すように、選択した行がハイライト表示される。ユーザは、リスト１２０１にて再実行したいワークフローを選択した後、ボタン１２０４を押下する。ユーザは、このような操作により、再実行するワークフローを決定する。ユーザの操作により再実行するワークフローが選択されると、選択されたワークフロー実行履歴の履歴ＩＤが決定される。この履歴ＩＤにより、ワークフロー実行履歴保管部１１０に保管されている、履歴ＩＤに該当するワークフローの実行履歴を取得することができる。
【０１２８】
なお、ユーザがボタン１２０３を押下すると、選択したワークフローの構成を、ワークフロー構成部１０３より提供される図３にて示したワークフロー編集画面にて編集することができる。
【０１２９】
ここでは、再実行を行うワークフローとして、履歴ＩＤが「０１８」である“旅費精算申請”ワークフローを選択したものとする。これにより、システムは、図１２に示すような、ワークフローの実行履歴を取得することができる。
【０１３０】
次に、ＡＣＴ１１０１でユーザが選択した再実行したいワークフローの実行状況を、ＡＣＴ１１０２にて取得する。実行状況はＡＣＴ１１０１にて取得したワークフローの実行履歴を参照することによって取得される。
【０１３１】
ここでは、図１２に示すワークフローの実行履歴から、このワークフローの実行状況が“中断”であることが分かる。
【０１３２】
次に、ＡＣＴ１１０３にて、ワークフローの履歴ＩＤを取得し、この履歴ＩＤをもとに、ワークフロー実行履歴保管部１１０を参照して、履歴ＩＤに該当する実行済みワークフローのワークフローＩＤ、および、そのバージョン番号を取得する。
【０１３３】
次にＡＣＴ１１０４にて、再実行アクティビティ特定部１１３により、再実行するワークフローをどのアクティビティから実行させるかを決定する。再実行アクティビティ特定部１１３は、実行済みのワークフローの実行状況、およびバージョンをもとにして、どのアクティビティから再実行させるかを特定する。
【０１３４】
再実行アクティビティ特定部１１３は、まず、ワークフロー実行履歴保管部１１０に保管されていた実行済みのワークフローの構成のバージョン番号と、ワークフロー構成保管部１０４に保管されている再実行しようとしているワークフローの構成のバージョン番号とを比較する。バージョン番号が同じであれば、実行済みのワークフローは、ワークフロー構成保管部１０４に保管されているワークフローの構成にしたがって実行されたものとなる。つまり、最新のワークフロー構成にしたがって実行されたものであることが分かる。
【０１３５】
一方、バージョン番号が異なるようであれば、実行済みのワークフローはワークフロー構成保管部１０４に保管されているワークフローの構成ではなく、古いワークフロー構成で実行されているものであることが分かる。すなわち、そのワークフロー構成はワークフローバージョン保管部１１１に保管されているものにしたがって実行されたものであることが分かる。
【０１３６】
次に、ワークフローの実行状況の評価が行われる。
【０１３７】
実行状況が“進行中”であるものについては、再実行することができないため、この時点でワークフローを再実行する処理は終了となる。
【０１３８】
実行状況が“完了”であるワークフローについては、実行済みのワークフローが最新のワークフロー構成で実行されたのか、古いワークフロー構成で実行されたのかによって、以降の処理が分かれる。
【０１３９】
最新のワークフロー構成にしたがって実行されたものである場合は、再実行したとしても、同じ結果となるため、再実行の必要がないと言える。したがって、再実行する処理は終了となる。一方、実行済みのワークフローが古いワークフロー構成で実行されたものである場合は、最新のワークフローで再実行すると、ワークフローが更新された部分により結果が異なる可能性があるため、ワークフロー実行部１０５により再実行される。
【０１４０】
この際、プロパティの設定内容が更新されていないアクティビティについては、結果は同じとなるため、実行する必要はない。したがって、最新のワークフローにおいて、古いワークフロー構成から更新されているアクティビティであり、且つ最初に実行されるアクティビティから再実行すればよい。このことから、再実行アクティビティ特定部１１３は、更新されたワークフローにおいて、更新されたアクティビティでの処理順序が最も若いものを、再実行の開始となるアクティビティとして決定する。
【０１４１】
実行状況が“中断”となっているものについては、実行できなかったアクティビティから再実行すればよい、と言える。どのアクティビティが実行できなかったのかについては、ワークフロー実行履歴保管部１１０に保管されているワークフローの実行履歴が参照される。ワークフローの実行履歴では、図１２に示す１００２から１００５までの履歴情報のように、実行されるアクティビティごとに処理対象とするデータが保管されているため、この履歴の末尾に保管されているアクティビティが、実行を試みて完了できなかったアクティビティである。そのため、再実行アクティビティ特定部１１３は、実行済みのアクティビティにて完了できなかったアクティビティを、再実行の開始となるアクティビティであると決定する。
【０１４２】
ただし、実行が中断されたワークフローで、ワークフロー構成を更新して再実行する場合においては、更新前と更新後のワークフロー構成を比較して、再実行を開始するアクティビティを決定する。再実行するワークフローのバージョンが、実行済みのワークフローのバージョンより更新されている場合、更新されたワークフローにおいて、更新されたアクティビティの処理順序が最も若いものを取得する。この処理順序が最も若いアクティビティと、ワークフローが中断されて実行できなかったアクティビティを比較し、処理順序が最も若いものを、再実行を開始するアクティビティとして決定する。
【０１４３】
ここでは、再実行するワークフローの実行状況が、図１４に示すように“中断”であるものとする。この場合、中断されて実行できなかった“承認”アクティビティからの再実行が考えられる。一方、図９に示すワークフロー構成保管部１０４に保管されているワークフローのバージョン番号は「２」であるのに対し、図１４に示すワークフロー実行履歴保管部１１０に保管されている、実行済みのワークフローのバージョン番号は「１」である。
【０１４４】
したがって、図１０に示す、ワークフローバージョン保管部１１１に保管されている、実行済みのワークフローの構成を取得する。再実行するワークフローの構成と、実行済みのワークフローの構成を比較し、更新されているアクティビティのうち、実行順序が最も若いものを特定する。ここでは、再実行アクティビティ特定部１１３は、５番目のアクティビティである“ファイル保存”アクティビティを再実行するアクティビティとして認識する。
【０１４５】
ここで、中断されて実行できなかった“承認”アクティビティと、更新された“ファイル保存”アクティビティを比較し、実行順序が若いアクティビティは“承認”アクティビティである、と判断できる。
【０１４６】
このことから、再実行するワークフローにおいて、１番目の“スキャン”アクティビティから３番目の“画像スタンプ”アクティビティまでは、既に実行済みであり、再実行してもまったく同じ結果になるため、再実行する必要はない。一方、４番目の“承認”アクティビティ以降は未実施であり、再実行する必要がある。以上より、再実行アクティビティ特定部１１３は、４番目の“承認”アクティビティから再実行する、ということを決定する。
【０１４７】
次に、ＡＣＴ１１０５にて、ワークフローを再実行するにあたり処理の対象とする画像を取得する。ＡＣＴ１１０４にて再実行アクティビティ特定部１１３により、再実行する際に開始するアクティビティとして決定されるアクティビティが対象とする画像が取得される。ここでは、図８に示すワークフロー実行履歴保管部１１０に保管されているスキャン画像情報が取得される。ここでは、４番目の“承認”アクティビティから再実行を開始しようとしている。“承認”アクティビティの実行時に処理対象となる画像データは、図１２にて１００５として示されている。したがって、１００５として表されている画像データを取得し、これを処理対象として、“承認”アクティビティからワークフローの再実行を開始する。
【０１４８】
このように、再実行アクティビティ特定部１１３は、ワークフロー実行履歴保管部１１０にて記憶されている処理済データに関する情報に基づいて、該処理済データを処理した処理単位よりも下流側の処理単位による処理からワークフローを再実行させる。
【０１４９】
また、再実行アクティビティ特定部１１３は、ワークフロー構成部１０３にて処理内容を編集されたアクティビティよりも１つ上流側に位置するアクティビティにおける処理済データに関する情報に基づいて、該編集されたアクティビティ以降のアクティビティによる処理を再実行させる。これにより、一度ワークフローを実行し、その際に扱った画像を対象にして、改めて再構成したワークフローを実行させるとき、重複する処理を避けて、ワークフローの途中からやりなおすことが可能となる。
【０１５０】
次に、ＡＣＴ１１０６にて、実行するワークフローに関する情報、つまり、ワークフローＩＤ、ワークフローのバージョン番号、ワークフロー名、ワークフローの開始時刻が、ワークフロー実行履歴保管部１１０に保管される。また、ワークフローの実行状況もワークフロー実行履歴保管部１１０に保管される。ここでは、ワークフローが開始されたので、“進行中”という実行状況が保管される。
【０１５１】
次に、ＡＣＴ１１０７では、ＡＣＴ１１０４にて再実行アクティビティ特定部１１３により決定されたアクティビティが、再実行する際に起点とするアクティビティとして設定される。
【０１５２】
次に、ＡＣＴ１１０８からＡＣＴ１１１３においては、図１１のＡＣＴ９０５からＡＣＴ９１０と同様、再実行アクティビティ特定部１１３により決定されたアクティビティ以降のアクティビティを、ワークフロー実行部１０５によって順に実行していく。ワークフロー実行部１０５は、アクティビティの実行がワークフローの終端に達したら、ワークフローの処理を終了させる。
【０１５３】
ワークフローの終端に達し、ＡＣＴ９１１へ処理が進んだ場合、ワークフロー実行履歴保管部１１０はワークフローが完了したことを保管する。
【０１５４】
このように、本実施の形態によれば、一度実行されたワークフローの構成を変更し、変更後のワークフローを再実行させる場合に、ワークフローの構成が更新されても変更のなかったアクティビティを重複して実行することなく、再実行する必要のあるアクティビティのみを実行することができる。これにより、ワークフローの実行可否に関する判定を効率的に行うことができ、管理効率の向上に寄与することができる。
【０１５５】
上述のワークフロー管理装置での処理における各動作は、ＭＦＰ９０１、ワークフローサーバ９０２、ファイルサーバ９０３およびクライアントＰＣ９０４にそれぞれ備わっているメモリに格納されているワークフロー管理プログラムを、上記各機器それぞれに備わるＣＰＵに実行させることにより実現されるものである。
【０１５６】
なお、上述の各実施の形態では、ワークフロー管理装置としての機能を、ＭＦＰ９０１、ワークフローサーバ９０２、ファイルサーバ９０３およびクライアントＰＣ９０４を協働させることによって、全体として実現する構成を例示したが、これに限られるものではない。例えば、ＭＦＰ９０１にワークフロー管理装置として必要な機能をすべて実装し、ＭＦＰ９０１単体でワークフロー管理装置を実現することも可能である。すなわち、ワークフロー管理システム全体として、ワークフロー管理装置としての機能が結果的に実現されていればよく、ワークフロー管理装置を構成する各機能の所在は上述した例に限定されるものではない。
【０１５７】
更に、ワークフロー管理装置を構成するコンピュータにおいて上述した各動作を実行させるプログラムを、ワークフロー管理プログラムとして提供することができる。本実施の形態では、発明を実施する機能を実現するための当該プログラムが、装置内部に設けられた記憶領域に予め記録されている場合を例示したが、これに限らず同様のプログラムをネットワークから装置にダウンロードしても良いし、同様のプログラムをコンピュータ読取可能な記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。具体的に、記録媒体としては、例えば、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、回線上の伝送媒体などが挙げられる。またこのように予めインストールやダウンロードにより得る機能は装置内部のＯＳ（オペレーティング・システム）等と共働してその機能を実現させるものであってもよい。
【０１５８】
なお、本実施の形態におけるプログラムには、実行モジュールが動的に生成されるプログラムを含むものとする。
【０１５９】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、なんら拘束されない。さらに、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、すべて本発明の範囲内のものである。
【符号の説明】
【０１６０】
１０１  文書データ処理部、１０２  アクティビティ保管部、１０３  ワークフロー構成部、１０４  ワークフロー構成保管部、１０５  ワークフロー実行部、１０６  アクティビティ実行条件保管部、１０７  アクティビティ実行可能判定部、１０８  ワークフロー続行可能判定部、１０９  ワークフロー中断時対応処理部。
【先行技術文献】
【特許文献】
【０１６１】
【特許文献１】特開２００４−２８０６６５号公報
【０１６２】
【特許文献２】特開２００４−２８９５０１号公報
【０１６３】
【特許文献３】特開２００７−１１５０４０号公報
【図１】
2010123124.tif 000003
【図２】
2010123124.tif 000004
【図３】
2010123124.tif 000005
【図４】
2010123124.tif 000006
【図５】
2010123124.tif 000007
【図６】
2010123124.tif 000008
【図７】
2010123124.tif 000009
【図８】
2010123124.tif 000010
【図９】
2010123124.tif 000011
【図１０】
2010123124.tif 000012
【図１１】
2010123124.tif 000013
【図１２】
2010123124.tif 000014
【図１３】
2010123124.tif 000015
【図１４】
2010123124.tif 000016