(57)【特許請求の範囲】
【請求項１】
ワークフローにおける工程の内容が設定されると共に、当該工程の少なくとも１つに対して、当該工程の内容が更新された時間である工程内容更新時間が設定されたワークフロー定義ファイルに基づいて、ワークフローの各工程を実行するワークフロー実行装置であって、
前記ワークフローの工程の内容に従った処理が実行されると、当該工程の内容に従った処理が実行された時間である工程実行時間を、当該工程の内容に従った処理の実行により得られたデータに対して付加する付加手段と、
前記ワークフローの工程の内容に従った処理を実行するに際し、前記ワークフロー定義ファイルから、前記工程内容更新時間を取得する第１の取得手段と、
前記実行する工程の内容に従った処理で使用されるデータに対して前記付加手段により付加された工程実行時間を取得する第２の取得手段と、
前記第１の取得手段により取得された工程内容更新時間が、前記第２の取得手段により取得された工程実行時間よりも後であると、前記実行する工程の内容に従った処理の実行を中止する中止手段とを有することを特徴とするワークフロー実行装置。
【請求項２】
前記中止手段は、前記第１の取得手段により取得された工程内容更新時間であって、前記実行する工程よりも前の工程における工程内容更新時間が、前記第２の取得手段により取得された工程実行時間よりも後であると、前記実行する工程の内容に従った処理の実行を中止することを特徴とする請求項１に記載のワークフロー実行装置。
【請求項３】
前記ワークフロー定義ファイルには、前記実行する工程の内容に従った処理の実行の許否を示す処理可否情報が含まれており、
前記中止手段は、前記第１の取得手段により取得された工程内容更新時間が、前記第２の取得手段により取得された工程実行時間よりも後であり、且つ、前記処理可否情報により、前記実行する工程の内容に従った処理の実行が許可されていないと、前記実行する工程の内容に従った処理の実行を中止することを特徴とする請求項１又は２に記載のワークフロー実行装置。
【請求項４】
前記処理可否情報は、前記実行する工程の内容に従った処理の実行を、前記ワークフローの進度に応じて許可するか否かを示す情報であり、
前記中止手段は、前記第１の取得手段により取得された工程内容更新時間が、前記第２の取得手段により取得された工程実行時間よりも後であり、且つ、前記処理可否情報により、前記実行する工程に対して、前記実行する工程の内容に従った処理の実行が許可されていないと、前記実行する工程の内容に従った処理の実行を中止することを特徴とする請求項３に記載のワークフロー実行装置。
【請求項５】
前記中止手段により、前記実行する工程の内容に従った処理の実行が中止されると、前記実行する工程の内容に応じて、前記実行する工程の内容に従った処理の代わりとなる処理を実行する実行手段を有することを特徴とする請求項１〜４の何れか１項に記載のワークフロー実行装置。
【請求項６】
前記ワークフローを管理する管理サーバに、前記工程の内容に応じた処理の続行の可否を問い合わせる問い合わせ手段を有し、
前記問い合わせ手段による問い合わせに対する応答が前記管理サーバからないと、前記第１の取得手段は、前記ワークフロー定義ファイルから、前記工程内容更新時間を取得し、前記第２の取得手段は、前記工程実行時間を取得することを特徴とする請求項１〜５の何れか１項に記載のワークフロー実行装置。
【請求項７】
前記ワークフローの工程の内容に従った処理を実行した結果に関する実行結果情報を記憶媒体に記憶する記憶手段と、
前記問い合わせ手段による問い合わせに対する応答がなくなった後、当該応答が再開されると、前記記憶手段により記憶された実行結果情報を前記管理サーバに送信する送信手段とを有することを特徴としているとする請求項６に記載のワークフロー実行装置。
【請求項８】
前記付加手段は、前記工程の内容に従った処理の実行により得られたデータに、既に前記工程実行時間が付加されていると、当該工程実行時間を、新たな工程実行時間に更新することを特徴とする請求項１〜７の何れか１項に記載のワークフロー実行装置。
【請求項９】
ワークフローにおける工程の内容が設定されると共に、当該工程の少なくとも１つに対して、当該工程の内容が更新された時間である工程内容更新時間が設定されたワークフロー定義ファイルに基づいて、ワークフローの各工程を実行するワークフロー実行方法であって、
前記ワークフローの工程の内容に従った処理が実行されると、当該工程の内容に従った処理が実行された時間である工程実行時間を、当該工程の内容に従った処理の実行により得られたデータに対して付加する付加ステップと、
前記ワークフローの工程の内容に従った処理を実行するに際し、前記ワークフロー定義ファイルから、前記工程内容更新時間を取得する第１の取得ステップと、
前記実行する工程の内容に従った処理で使用されるデータに対して前記付加ステップにより付加された工程実行時間を取得する第２の取得ステップと、
前記第１の取得ステップにより取得された工程内容更新時間が、前記第２の取得ステップにより取得された工程実行時間よりも後であると、前記実行する工程の内容に従った処理の実行を中止する中止ステップとを有することを特徴とするワークフロー実行方法。
【請求項１０】
ワークフローにおける工程の内容が設定されると共に、当該工程の少なくとも１つに対して、当該工程の内容が更新された時間である工程内容更新時間が設定されたワークフロー定義ファイルに基づいて、ワークフローの各工程を実行することをコンピュータに実行させるためのコンピュータプログラムであって、
前記ワークフローの工程の内容に従った処理が実行されると、当該工程の内容に従った処理が実行された時間である工程実行時間を、当該工程の内容に従った処理の実行により得られたデータに対して付加する付加ステップと、
前記ワークフローの工程の内容に従った処理を実行するに際し、前記ワークフロー定義ファイルから、前記工程内容更新時間を取得する第１の取得ステップと、
前記実行する工程の内容に従った処理で使用されるデータに対して前記付加ステップにより付加された工程実行時間を取得する第２の取得ステップと、
前記第１の取得ステップにより取得された工程内容更新時間が、前記第２の取得ステップにより取得された工程実行時間よりも後であると、前記実行する工程の内容に従った処理の実行を中止する中止ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフロー実行装置、ワークフロー実行方法、及びコンピュータプログラムに関し、特に、ワークフローを実行するために用いて好適なものである。
【背景技術】
【０００２】
近年、デジタル複合機を使用して、オフィス業務等のワークフロー処理を行うことが検討・提案されてきている。例えば、デジタル複合機は、申請用紙を電子化してワークフローを管理するサーバへ送信してワークフロー処理に投入したり、ワークフローサーバから処理中のジョブを取得して印刷処理をしたりすること等が考えられている。デジタル複合機は、紙を電子化し、その紙のデータを、複数の通信プロトコルの何れかを使用して送信する機能や、データを取得して印刷を実行する機能を有する。通信プロトコルとしては、ＳＭＴＰ（Simple Mail Transfer Protocol）やＦＴＰ（File Transfer Protocol）等が挙げられる。
【０００３】
このような機能を利用することで、前述したような処理をデジタル複合機が実行することが可能である。
特許文献１では、ワークフローの中で電子文書と紙文書とを混在させることを可能にする方法等が提案されている。具体的に特許文献１では、まず、ワークフローサーバは、スキャナで読み取り可能なユニークなＩＤ情報を紙文書に付加して印刷することをデジタル複合機に指示する。デジタル複合機が備えるプリンタは、この指示に基づいて、ＩＤ情報が付加された紙文書を印刷する。そして、ＩＤ情報が付加された紙文書をデジタル複合機が備えるスキャナが読み取ると、ワークフローサーバは、そのＩＤ情報と紙文書の情報とを処理して電子文書の審査・承認フローを実行する。このようにすることによって、審査・承認フローの中での電子文書と紙文書との混在を可能としている。
【０００４】
また、特許文献２では、ワークフロー仕様の実行が可能なワークフローエンジンを備えるデジタル複合機が提案されている。特許文献２のデジタル複合機は、ワークフロー仕様の入出力インタフェースとワークフロー仕様の管理部とを備える。デジタル複合機は、インターネットを介してワークフローサーバからワークフロー仕様（処理手順）を受け取り、そのワークフロー仕様のうち、自身のワークフローエンジンで処理すべき担当箇所を判断して、当該担当箇所の処理を実行する。
このように、ワークフローサーバとデジタル複合機とを連携させてデジタル複合機でワークフロー処理を行う技術が提案されてきている。これらの技術では、全て、ワークフローサーバのような、ワークフローのジョブ状態やフロー定義を管理するサーバが存在することが前提となっている。
【０００５】
一方、デジタル複合機の機能を連携させて、簡単なワークフロー処理を実現する方法も提案されてきている。すなわち、処理を行うためのワークフロー定義ファイルをデジタル複合機内に格納し、特定のボタンがユーザによって押下された場合に、ワークフロー定義に従った一連の処理をデジタル複合機が実行するような方法が提案されている。具体的にデジタル複合機は、申請用紙を読み取り、読み取った申請用紙のデータをＰＤＦ等の電子文書に変換して特定のファイルサーバに送信（格納）して、その結果を特定のユーザにメールで通知するという一連の処理をワークフロー定義ファイルに記載しておく。そして、デジタル複合機は、ワークフロー定義ファイルに定義されている処理を実施するように指示を受けた場合に、そのワークフロー定義ファイルの内容を解釈して処理を実行する。
【０００６】
このようにした場合には、ワークフローサーバ等は特に必須ではなく、ワークフローというよりも、デジタル複合機の機能のフローをワークフロー定義ファイルに定義しておいて、簡単なフローを実現するという意味合いになる。つまり、このようにした場合、デジタル複合機の一連の機能のフローで処理が完結するために、別の処理と連携しなくてもよいので、前述したサーバのようにワークフロー（ジョブの状態）を管理する必要がない。
【０００７】
【特許文献１】特開２００４−２６５１４０号公報
【特許文献２】特開２００７−２７８６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような方法では、ワークフローサーバが存在しない場合、デジタル複合機の持つ機能を連携させる簡単な処理しか実現することができず、実現できるフローが制限されてしまう。複数の処理を連結したワークフロー処理を実行するためには、仕掛かり中のジョブをきちんと管理しないと、ワークフローの定義を更新・変更したり、削除したりした場合等に、適切に処理を行えなくなってしまうためである。
以上のように従来の技術では、ワークフローで実行されるジョブを管理するサーバがないと、複雑なワークフローを適切に実行することが困難であるという問題点があった。
【０００９】
本発明は、このような問題点に鑑みてなされたものであり、ワークフローで実行されるジョブを管理するサーバを使用せずに、ワークフローを適切に実行できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明のワークフロー実行装置は、ワークフローにおける工程の内容が設定されると共に、当該工程の少なくとも１つに対して、当該工程の内容が更新された時間である工程内容更新時間が設定されたワークフロー定義ファイルに基づいて、ワークフローの各工程を実行する画像形成装置であって、前記ワークフローの工程の内容に従った処理が実行されると、当該工程の内容に従った処理が実行された時間である工程実行時間を、当該工程の内容に従った処理の実行により得られたデータに対して付加する付加手段と、前記ワークフローの工程の内容に従った処理を実行するに際し、前記ワークフロー定義ファイルから、前記工程内容更新時間を取得する第１の取得手段と、前記実行する工程の内容に従った処理で使用されるデータに対して前記付加手段により付加された工程実行時間を取得する第２の取得手段と、前記第１の取得手段により取得された工程内容更新時間が、前記第２の取得手段により取得された工程実行時間よりも後であると、前記実行する工程の内容に従った処理の実行を中止する中止手段とを有することを特徴とする。
【００１１】
本発明のワークフロー実行方法は、ワークフローにおける工程の内容が設定されると共に、当該工程の少なくとも１つに対して、当該工程の内容が更新された時間である工程内容更新時間が設定されたワークフロー定義ファイルに基づいて、ワークフローの各工程を実行するワークフロー実行方法であって、前記ワークフローの工程の内容に従った処理が実行されると、当該工程の内容に従った処理が実行された時間である工程実行時間を、当該工程の内容に従った処理の実行により得られたデータに対して付加する付加ステップと、前記ワークフローの工程の内容に従った処理を実行するに際し、前記ワークフロー定義ファイルから、前記工程内容更新時間を取得する第１の取得ステップと、前記実行する工程の内容に従った処理で使用されるデータに対して前記付加ステップにより付加された工程実行時間を取得する第２の取得ステップと、前記第１の取得ステップにより取得された工程内容更新時間が、前記第２の取得ステップにより取得された工程実行時間よりも後であると、前記実行する工程の内容に従った処理の実行を中止する中止ステップとを有することを特徴とする。
【００１２】
本発明のコンピュータプログラムは、ワークフローにおける工程の内容が設定されると共に、当該工程の少なくとも１つに対して、当該工程の内容が更新された時間である工程内容更新時間が設定されたワークフロー定義ファイルに基づいて、ワークフローの各工程を実行することをコンピュータに実行させるためのコンピュータプログラムであって、前記ワークフローの工程の内容に従った処理が実行されると、当該工程の内容に従った処理が実行された時間である工程実行時間を、当該工程の内容に従った処理の実行により得られたデータに対して付加する付加ステップと、前記ワークフローの工程の内容に従った処理を実行するに際し、前記ワークフロー定義ファイルから、前記工程内容更新時間を取得する第１の取得ステップと、前記実行する工程の内容に従った処理で使用されるデータに対して前記付加ステップにより付加された工程実行時間を取得する第２の取得ステップと、前記第１の取得ステップにより取得された工程内容更新時間が、前記第２の取得ステップにより取得された工程実行時間よりも後であると、前記実行する工程の内容に従った処理の実行を中止する中止ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ワークフローの工程の内容に従った処理を実行するに際し、実行する工程の内容が更新された時間が、当該工程の内容に従った処理を実行した時間よりも後であると、当該実行する工程の内容に従った処理の実行を中止するようにした。したがって、ワークフローの定義を更新した場合でも、ワークフローを管理するサーバを使用せずに、ワークフローにおける工程を実行するか否かを適切に判断して処理を実行することが可能となる。
【発明を実施するための最良の形態】
【００１４】
（第１の実施形態）
以下に、図面を参照しながら、本発明の第１の実施形態について説明する。
＜システム構成＞
図１は、ワークフロー処理システムの全体構成の一例を示す図である。
図１において、ワークフロー処理システムは、画像形成装置１１０ａ、１１０ｂ、１１０ｃと、メールサーバ１２０と、ファイルサーバ１３０とを有する。画像形成装置１１０ａ、１１０ｂ、１１０ｃ、メールサーバ１２０、及びファイルサーバ１３０は、ネットワーク１００を介して相互に通信可能に接続されている。尚、図１では、ワークフロー処理システムに画像形成装置１１０を３台設けた場合を例に挙げて示しているが、画像形成装置１１０の数は、これに限定されるものではない。
【００１５】
画像形成装置１１０は、例えば、デジタル複合機（ＭＦＰ）である。画像形成装置１１０は、ワークフロー定義が記載されているワークフロー定義ファイルを保持する機能と、保持するワークフロー定義ファイルに記載されているワークフロー定義の内容を解釈する機能とを有する。更に、画像形成装置１１０は、解釈したワークフロー定義に基づき、指示されたワークフロー処理を実施する機能を有する。
この他、画像形成装置１１０は、紙原稿を読み取るスキャン機能と、データの印刷を行うプリント機能と、データの送受信を行う送受信機能（ＦＡＸ機能等）と、データの保存を行う保存機能と、データの操作を行う編集機能とを有する。
スキャン機能は、読み取った紙原稿に印字されている処理日時の情報、又は読み取った紙原稿に埋め込まれている処理日時の情報を抽出する機能を有する。プリント機能は、ワークフロー処理を実施した処理日時の情報を紙原稿に印字又は埋め込む機能を有している。更に、送受信機能、保存機能、及び編集機能は、ワークフロー処理を実施した処理日時の情報を、処理したデータに設定する機能を有している。
メールサーバ１２０及びファイルサーバ１３０は、夫々一般的な機能を有する公知のサーバである。
【００１６】
＜画像形成装置の構成＞
図２は、画像形成装置１１０の構成の一例を示すブロック図である。
コントローラユニット２００は、画像情報やデバイス情報の入出力を行うためのコントローラである。コントローラユニット２００は、画像入力デバイスであるスキャナ２４０や画像出力デバイスであるプリンタ２５０と相互に接続されている。また、コントローラユニット２００は、ＬＡＮ２２１やＷＡＮ（公衆回線）２２２にも相互に接続される。
ＣＰＵ２０１は、画像形成装置１１０のシステム全体を制御するコントローラである。ＲＡＭ２０２は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、画像データを一時的に記憶するための画像メモリでもある。ＲＯＭ２０３は、ブートＲＯＭであり、画像形成装置１１０のシステムのブートプログラムが格納されている。
【００１７】
ＨＤＤ２０４は、ハードディスクドライブであり、システムソフトウェア、画像データ、ワークフロー定義ファイル等を格納する。操作部Ｉ／Ｆ２０６は、操作部（ＵＩ）２３０とのインタフェースとなり、操作部２３０に表示する画像データを操作部２３０に対して出力する。また、操作部Ｉ／Ｆ２０６は、画像形成装置１１０のユーザが操作部２３０を操作して入力した情報を、ＣＰＵ２０１に伝える。ネットワーク処理部２０９は、ＬＡＮ２２１と相互に接続され、ＬＡＮ２２１を介して外部装置と情報の入出力を行う。モデム２１０は、ＷＡＮ２２２と相互に接続され、ＷＡＮ２２２を介して外部装置と情報の入出力を行う。以上のデバイスがシステムバス２０７上に配置される。
イメージバス（Image Bus）Ｉ／Ｆ２０５は、システムバス２０７と画像データを高速で転送する画像バス２０８とを相互に接続し、データ構造を変換するバスブリッジである。画像バス２０８は、ＰＣＩバス又はIEEE1394で構成される。画像バス２０８には、以下のデバイスが配置される。
【００１８】
ラスターイメージプロセッサ（ＲＩＰ）２１２は、ＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ２１３は、画像入出力デバイスであるスキャナ２４０やプリンタ２５０とコントローラユニット２００とを相互に接続し、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２１４は、スキャナ２４０等から入力された画像データに対し補正、加工、編集を行う。また、スキャナ画像処理部２１４は、スキャナ２４０等から入力された画像データが、カラー原稿及び白黒原稿の何れのデータであるかを、当該画像データの彩度信号等から判断し、その結果を保持する。
【００１９】
プリンタ画像処理部２１５は、プリンタ２５０等に出力する画像データに対して、補正、加工、編集を行う。画像回転部２１６は、スキャナ画像処理部２１４と連携して、スキャナ２４０から入力された画像データの読み出しと同時に当該画像データを回転してメモリに格納する。また、画像回転部２１６は、メモリにある画像を回転して当該メモリに格納したり、プリンタ画像処理部２１５と連携してメモリにある画像データを回転しながら印字出力したりすることができる。
【００２０】
解像度変換部２１８は、メモリにある画像データの解像度を変換して当該メモリに格納する。色空間変換部２１９は、マトリクス演算により、例えば、メモリにあるＹＵＶ画像をＬａｂ画像に変換して当該メモリに格納する。階調変換部２２０は、例えば、メモリにある８bit、２５６階調の画像データを、誤差拡散処理等の手法により１bit、２階調に変換して当該メモリに格納する。画像圧縮部２１７は、多値画像データを例えばJPEGに従って圧縮伸長し、２値画像データをJBIG、MMR、MR、又はMHに従って圧縮伸張する。
画像回転部２１６、解像度変換部２１８、色空間変換部２１９、階調変換部２２０、画像圧縮部２１７は、夫々連結して動作することが可能である。例えばメモリにある画像データの回転、解像度変換を行う場合には、これらの処理を、メモリを介さずに行うことができる。
【００２１】
図３は、画像形成装置１１０で実行されるワークフロー処理ソフトウェアの機能構成の一例を示すブロック図である。このワークフロー処理ソフトウェア（アプリケーションプログラム）は、ＨＤＤ２０４に格納されており、ＲＡＭ２０２に展開されてＣＰＵ２０１によって実行される。
図３において、ワークフロー処理ソフトウェア３００は、大別すると、処理部３１０と、保存情報管理部３２０とを有している。
処理部３１０は、ＵＩ処理部３１１と、制御部３１２と、処理実行部３１３と、データ解析部３１４と、データ入出力部３１５とを有している。
【００２２】
ＵＩ処理部３１１は、操作部Ｉ／Ｆ２０６を介して操作部２３０からの情報を受信する。また、ＵＩ処理部３１１は、操作部２３０へ情報を送信する。
データ入出力部３１５は、処理部３１０と保存情報管理部３２０との間で行われるデータの入出力を管理する。
データ解析部３１４は、ワークフロー定義ファイルの解析やスキャナ２４０で読み取られたデータの解析等を行う。
処理実行部３１３は、ワークフロー処理等の処理を行う。
制御部３１２は、ＵＩ処理部３１１、処理実行部３１３、データ解析部３１４、データ入出力部３１５で行われるこれらの処理を制御する。
【００２３】
保存情報管理部３２０は、ワークフロー定義ファイル情報格納部３２１と、ボックス文書情報格納部３２２とを管理する。ここで、ワークフロー定義ファイル情報格納部３２１は、ワークフロー定義ファイルの情報であるワークフロー定義ファイル情報を格納する。一方、ボックス文書情報格納部３２２は、ボックスやボックス内の文書の情報であるボックス情報を記憶媒体に格納する。これらワークフロー定義ファイル情報とボックス情報のデータの実体は、例えばＨＤＤ２０４に格納される。
【００２４】
図４は、画像形成装置１１０の操作部２３０の外観構成の一例を示す図である。尚、図４では、説明の便宜上、操作部２３０の外観構成を簡略化してしめしている。
図４において、操作部２３０は、キー入力部４００とタッチパネル部４２０とを有する。図５は、キー入力部４００（図５（ａ））とタッチパネル部４２０（図５（ｂ））の外観構成の一例を詳細に示す図である。
図５（ａ）に示すキー入力部４００は、定常的な操作設定を行うことができるキーの入力部分である。
操作部電源スイッチ４０３は、スタンバイモードとスリープモードとを切り替えるためにユーザにより操作されるスイッチである。画像形成装置１１０のシステム全体の電源供給を行う主電源スイッチがＯＮの状態で、操作部電源スイッチ４０３の操作に基づく制御を行うことができる。ここで、スタンバイモードとは、通常動作状態である。スリープモードとは、コントローラユニット２００がネットワークプリントやファクシミリ等に備えて割り込み待ちの状態であり、プログラムの実行を停止して、消費電力を抑えている状態である。
【００２５】
節電キー４０４は、スタンバイモード時の定着器の制御温度を下げるためにユーザにより操作されるキーである。節電キー４０４が操作されると、プリント可能な状態になるまでの時間は要するが、消費電力を抑えることができる。尚、節電率の設定により定着器の制御温度を下げることもできる。
スタートキー４０１は、コピーや送信等の開始を指示するためにユーザにより操作されるキーであり、ストップキー４０２は、コピーや送信等の中断を指示するためにユーザにより操作されるキーである。
【００２６】
テンキー４１０は、画像形成装置１１０の各種設定の置数を与えるためにユーザにより操作されるキーである。クリアキー４１４は、その置数を解除するためにユーザにより操作されるキーである。ＩＤキー４１３は、画像形成装置１１０のユーザを認証するために、予め設定された暗証番号をユーザに入力させるためのキーである。
リセットキー４０７は、画像形成装置１１０の各種設定を無効にし、設定をデフォルトの状態に戻すためにユーザにより操作されるキーである。ヘルプキー４０８は、ガイダンスやヘルプをタッチパネル部４２０に表示させるためにユーザにより操作されるキーである。ユーザモードキー４０９は、ユーザ毎のシステム設定画面に移行するためにユーザにより操作されるキーである。
【００２７】
カウンタ確認キー４０５は、画像形成装置１１０内に設けてあるプリント枚数等をカウントするソフトカウンタに記憶されている出力済み枚数をタッチパネル部４２０に表示させるためにユーザにより操作されるキーである。本実施形態の画像形成装置１１０では、コピー／プリント／スキャン／ファックス等の動作モード、カラー／白黒といった色モード、ラージ／スモールといった紙サイズ等に応じて、夫々の出力済み枚数をタッチパネル部４２０に表示させることができる。
画像コントラストダイヤル４０６は、タッチパネル部４２０の液晶表示のバックライトを調光する等して、画面の見易さを調整するためにユーザにより操作されるダイヤルである。
【００２８】
実行／メモリランプ４１１は、ジョブが実行中であるときや、メモリへのアクセス中であるときに点滅し、それらをユーザに知らせるためのランプである。エラーランプ４１２は、ジョブの実行ができない場合や、サービスマンコール等が発生しエラーが生じた場合や、ジャムや消耗品切れ等をユーザに知らせるオペレータコール等が発生した場合に点滅し、それらをユーザに知らせるためのランプである。
【００２９】
図５（ｂ）に示すタッチパネル部４２０は、ＬＣＤ（Liquid Crystal Display：液晶表示部）と、ＬＣＤの上に貼られた"透明電極を備えたタッチパネルディスプレイ"とを有する。ＬＣＤに表示されるキー相当の部分の透明電極をユーザが指で触れると、タッチパネル部４２０は、それを検知し、検知した内容と予めプログラムされている内容とに従って、別の操作画面を表示する等、各種の表示を行う。図５（ｂ）では、スタンバイモード時の初期画面の一例を示している。この初期画面に対するユーザの設定操作に応じて、タッチパネル部４２０は、様々な操作画面を表示することができる。
【００３０】
コピータブ５０１は、コピー動作の操作画面に遷移するためにユーザにより操作されるタブキーである。送信タブ５０２は、ファックスやＥ−ｍａｉｌ送信等、送信（Ｓｅｎｄ）動作を指示する操作画面に遷移するためにユーザにより操作されるタブキーである。ボックスタブ５０３は、ボックス（ユーザ毎にジョブを格納する記憶手段）にジョブを入出力するための画面に遷移するためにユーザにより操作されるタブキーである。オプションタブ５０４は、スキャナ設定やワークフロー処理機能等、拡張機能を追加・設定するためにユーザにより操作されるタブキーである。システムモニタキー５１９は、画像形成装置１１０の状態や状況を表示するためにユーザにより操作されるキーである。ユーザが各タブを選択することで、夫々のタブに応じた操作モードに画像形成装置１１０の操作モードを遷移させることができる。
【００３１】
色選択設定キー５１０は、カラーコピー、白黒コピー、又は自動選択かを予め選択するためにユーザにより操作されるキーである。倍率設定キー５１３は、等倍、拡大、縮小等の倍率設定を行う画面に遷移するためにユーザにより操作されるキーである。後処理設定キー５１４は、ステープルやパンチ等の後処理の有無、個数、位置等を設定する画面に遷移するためにユーザにより操作されるキーである。両面設定キー５１６は、片面印刷か両面印刷かを選択する画面に遷移するためにユーザにより操作されるキーである。紙サイズ設定キー５１７は、給紙段、紙サイズ、メディアタイプを選択する画面に遷移するためにユーザにより操作されるキーである。画像モード設定キー５２１は、文字モードや写真モード等、原稿画像に適した画像モードを選択するためにユーザにより操作されるキーである。濃度設定キー５２２は、出力画像を濃くしたり薄くしたり調整するためにユーザにより操作されるキーである。
【００３２】
ステータス表示部５１１は、スタンバイ状態、ウォームアップ中、ジャム、エラー等の簡易的な状態表示を行う表示部である。倍率表示部５１２は、倍率設定キー５１３で設定された倍率を表示する表示部である。紙サイズ表示部５１８は、紙サイズ設定キー５１７で設定された紙サイズやモードを表示する表示部である。枚数表示部５２３は、テンキー４１０で指定された枚数を表示したり、動作中に何枚目を印刷中かを表示したりする表示部である。
更に、割り込みキー５１５は、コピー動作中に別のジョブを割り込ませる場合にユーザにより操作されるキーである。応用モードキー５２０は、ページ連写、表紙・合紙設定、縮小レイアウト、画像移動等、様々な画像処理やレイアウト等の設定を行う画面に遷移するためにユーザにより操作されるキーである。
【００３３】
図６は、ワークフロー処理においてプリント処理を実行した場合の画像形成装置１１０の処理の一例を説明するフローチャートである。
まず、ステップＳ６０１において、制御部３１２及び処理実行部３１３は、処理実行時の日時（処理を実行する現在の日時）を特定する。
次に、ステップＳ６０２において、処理実行部３１３は、ステップＳ６０１で特定された日時を、プリントするプリントデータに埋め込める形式のデータに変換する。このステップＳ６０２では、例えば、ステップＳ６０１で特定された日時の情報を含む２次元バーコード等のデータに変換される。
【００３４】
次に、ステップＳ６０３において、処理実行部３１３は、ステップＳ６０２で変換されたデータを、プリントするプリントデータ内に（例えば用紙の右下部分に相当する部分に）埋め込む。ここで、プリントするプリントデータ内の該当部分に、既にデータが存在する場合、処理実行部３１３は、当該既に存在しているデータを削除してから、ステップＳ６０２で変換されたデータを埋め込む。
そして、ステップＳ６０４において、制御部３１２は、そのプリントデータを、イメージバスＩ／Ｆ２０５を通してプリンタ画像処理部２１５へ出力する。プリンタ画像処理部２１５は、必要に応じて画像回転部２１６等と連携して、そのプリントデータに対して処理を行い、処理を行ったプリントデータをデバイスＩ／Ｆ２１３を通してプリンタ２５０に出力する。そして、プリンタ２５０は、入力したプリントデータに基づいてプリントを行う。これにより、図６のフローチャートによる処理が終了する。
【００３５】
図７は、ワークフロー処理においてスキャン処理を実行した場合の画像形成装置１１０の処理の一例を説明するフローチャートである。
まず、ステップＳ７０１において、制御部３１２及び処理実行部３１３は、スキャナ２４０に、読み取る原稿が存在するか否かを判定する。この判定の結果、スキャナ２４０に原稿が存在しない場合には、図７のフローチャートによる処理を終了する。
一方、スキャナ２４０に原稿が存在する場合にはステップＳ７０２へ進む。ステップＳ７０２に進むと、スキャナ２４０は原稿を読み取る。そして、データ解析部３１４は、スキャナ２４０で読み取られた原稿のデータを解析する。
次に、ステップＳ７０３において、処理実行部３１３は、現在の日時を特定する。
次に、ステップＳ７０４において、処理実行部３１３は、ステップＳ７０３で特定された日時の情報を、ステップＳ７０２で読み取られたデータに埋め込み可能なデータ形式に変換する。
【００３６】
次に、ステップＳ７０５において、処理実行部３１３は、ステップＳ７０２で解析された結果に基づいて、ステップＳ７０２で読み取られた原稿のデータに日時の情報が埋め込まれていたか否かを判定する。この判定の結果、原稿のデータに日時の情報が埋め込まれていた場合は、後述するステップＳ７０６に進む。
一方、原稿のデータに日時の情報が埋め込まれていなかった場合には、ステップＳ７０９に進む。ステップＳ７０９に進むと、処理実行部３１３は、ステップＳ７０４で変換された日時の情報を、ステップＳ７０２で読み取られた原稿のデータに埋め込む。
次に、ステップＳ７１０において、データ入出力部３１５は、ステップＳ７０９で日時の情報が埋め込まれた原稿のデータをボックス文書情報格納部３２２に記憶する。そして、ステップＳ７０１に戻る。
【００３７】
ステップＳ７０５において、原稿のデータに日時の情報が埋め込まれていたと判定された場合には、ステップＳ７０６に進み、処理実行部３１３は、当該埋め込まれている日時の情報を抽出する。
次に、ステップＳ７０７において、処理実行部３１３は、原稿のデータに既に埋め込まれていた日時の情報を消去した後、ステップＳ７０４で変換された日時の情報を、ステップＳ７０２で読み取られた原稿のデータに埋め込む。
【００３８】
次に、ステップＳ７０８において、処理実行部３１３は、ステップＳ７０６で抽出された日時の情報と、ステップＳ７０２で読み取られた原稿のデータとを関連付ける。そして、データ入出力部３１５は、それらをボックス文書情報格納部３２２に一時的に記憶する。そして、ステップＳ７０１に戻る。
【００３９】
図８は、ワークフロー処理ソフトウェア３００を実行するためにタッチパネル部４２０に表示される画面の一例を示す図である。
図８に示す画面は、図５（ｂ）に示したオプションタブ５０４をユーザが選択すると、ワークフロー処理ソフトウェア３００のＵＩ処理部３１１が、これに対する応答を操作部２３０に返すことにより作成される。
ＵＩ処理部３１１が、表示内容の問い合わせを操作部２３０から受けると、データ入出力部３１５は、ワークフロー定義ファイル情報格納部３２１に保存されているワークフローの各ステップの情報を抽出する。そして、ＵＩ処理部３１１は、データ入出力部３１５で抽出された情報に基づいて、ワークフロー定義表示領域８００内に表示する"各ワークフローの処理を実行するためのワークフロー処理実行ボタン８１０を定義し、操作部２３０に表示データを返す。
【００４０】
図８に示す画面右上の各ボタン８０１〜８０３は、ワークフロー定義表示領域８００に表示されるワークフロー処理実行ボタン８１０の表示方法を切り替えるためのボタンである。大ボタン８０１をユーザが選択した場合は、図８に示すような大きなボタンでワークフロー処理実行ボタン８１０が表示される。小ボタン８０２をユーザが選択した場合には、図８に示すものよりも小さなボタンでワークフロー処理実行ボタン８１０が表示される。リストボタン８０３をユーザが選択した場合には、ワークフロー処理実行ボタン８１０の内容がリスト形式で表示される。
また、上下ボタン８０４をユーザが選択すると、ワークフロー定義表示領域８００内に表示される内容が上下にスクロールされる。ユーザが、ワークフロー処理実行ボタン８１０を選択した状態で詳細表示ボタン８０５を選択すると、選択されているワークフロー処理実行ボタン８１０の処理内容の詳細が画面に表示される。また、ユーザが、ワークフロー処理実行ボタン８１０を選択した状態で実行ボタン８０６を押下すると、選択されているワークフロー処理実行ボタン８１０に対応するワークフロー処理の実行が開始する。
【００４１】
本実施形態では、購買依頼申請書を課員が印刷・記入して、課長に申請を行い、課長がその申請書を承認するワークフローを例に挙げて、ワークフローの各処理の詳細を説明する。
図９は、本実施形態におけるワークフローのワークフロー定義ファイルの記載例を示す図である。このワークフロー定義ファイル９１０で定義されるワークフローは、ステップＳ１〜Ｓ４の処理（工程）でできている。図９に示すように、本実施形態では、ワークフロー定義ファイル９１０は、タグによって情報を示す構造化文書となっており、「step」タグで各ステップ（各工程）での処理内容が記載されている。そして、各ステップの処理には、「last-update」が、各ステップの最終更新日時として記載されている。尚、ワークフロー定義ファイル９１０は、例えば、外部装置で予め作成されているものである。
【００４２】
図１０は、ユーザが、ワークフロー処理実行ボタン８１０を選択して、実行ボタン８０６を選択した場合のワークフロー処理ソフトウェア３００の処理の一例を説明するフローチャートである。ユーザがワークフロー処理を指示すると、ＵＩ処理部３１１がこの指示の内容を受信する。
まず、ステップＳ１００１において、データ入出力部３１５は、ＵＩ処理部３１１で受信した"ユーザの指示の内容"を、ワークフロー定義ファイル情報格納部３２１内から検索する。そして、データ入出力部３１５は、検索した結果に基づいて、ユーザによって指示されたワークフロー処理に対応するワークフロー定義と、そのワークフローで実行されるステップの情報（図９に示した例では、ステップＳ１〜Ｓ４の何れかの情報）とを特定する。
【００４３】
次に、ステップＳ１００２において、処理実行部３１３は、ステップＳ１００１で特定されたステップの情報から、実行する処理がスキャン処理であるか否かを判定する。この判定の結果、実行する処理がスキャン処理である場合には、ステップＳ１００４に進み、図７で説明したスキャン処理の全部又は一部（例えば、ステップＳ７０１〜Ｓ７０６）を実行する。そして、後述するステップＳ１００５に進む。
一方、スキャン処理でないと判断した場合には、ステップＳ１００３に進む。ステップＳ１００３に進むと、データ入出力部３１５は、処理を実行するデータをボックス文書情報格納部３２２から検索する。そして、処理実行部３１３は、データ入出力部３１５で検索された"処理を実行するデータ"（例えば属性情報）から、その処理を実行するデータの最終処理日時を特定する。そして、ステップＳ１００５に進む。
以上のように本実施形態では、例えば、ステップＳ１００３、Ｓ１００４（Ｓ７０６）の処理を行うことにより第２の取得手段の一例が実現され、例えば、最終処理日時が、工程実行時間の一例となる。
【００４４】
ステップＳ１００５に進むと、処理実行部３１３は、ステップＳ１００１で特定されたワークフロー定義に、ステップＳ１００１で特定されたステップよりも前のステップが存在するか否かを判定する。この判定の結果、ステップＳ１００１で特定されたステップよりも前のステップがワークフロー定義に存在しない場合には、後述するステップＳ１００８に進む。
一方、ステップＳ１００１で特定されたステップよりも前のステップがワークフロー定義に存在する場合には、ステップＳ１００６に進む。ステップＳ１００６に進むと、処理実行部３１３は、ステップＳ１００１で特定されたステップよりも前の全てのステップの最終更新日時を特定する。
以上のように本実施形態では、例えば、ステップＳ１００６の処理を行うことにより第１の取得手段の一例が実現され、最終更新日時が、工程内容更新時間の一例となる。
次に、ステップＳ１００７において、処理実行部３１３は、ステップＳ１００３又はＳ１００４で特定された"処理を実行するデータの最終処理日時"と、ステップＳ１００６で特定された最終更新日時とを比較する。ここで、ステップＳ１００４においては、例えば、図７のステップＳ７０６で得られた日時の情報が最終処理日時となる。そして、処理実行部３１３は、最終処理日時よりも後の日時が最終更新日時となっているステップが、例えばステップＳ１００１で特定されたステップよりも前のステップに存在するか否かを判定する。
この判定の結果、最終処理日時よりも後の日時が最終更新日時となっているステップが存在する場合には、ステップＳ１０１０に進み、処理実行部３１３は、ステップＳ１００１で特定されたステップで実行する処理の実行をキャンセル（中止）する。そして、ＵＩ処理部３１１は、指示されたワークフロー処理で扱うデータが、現在のワークフロー定義にそぐわないために、指示されたワークフロー処理を続行することができない旨を操作部２３０に表示してユーザに通知する。そして、図１０のフローチャートによる処理を終了する。
以上のように本実施形態では、例えば、ステップＳ１００７、Ｓ１０１０の処理を行うことにより中止手段の一例が実現される。
【００４５】
一方、最終処理日時よりも後の日時が最終更新日時となっているステップが存在しない場合には、ステップＳ１００８に進む。ステップＳ１００８に進むと、処理実行部３１３は、ステップＳ１００１で特定されたワークフロー定義における"同じくステップＳ１００１で特定されたステップ"に定義されている処理内容を特定して、処理を実行する。
次に、ステップＳ１００９において、処理実行部３１３は、ステップＳ１００８で処理を実行した処理済データに対して、処理を実行した日時の情報を最終処理日時として設定する。例えば、処理済データが電子データの場合には、当該処理済データの属性として最終処理日時情報が設定される。ステップＳ１００８で実行された処理がプリント処理であれば、ステップＳ１００８とステップＳ１００９で実行される処理は、図６で説明した処理になる。尚、ステップＳ１００８で処理を実行した処理済データに対して、既に最終処理日時が設定されている場合には、その最終処理日時に対して、新たに得られた最終処理日時を上書きして最終処理日時を更新する。
以上のように本実施形態では、例えば、ステップＳ１００９の処理を行うことにより付加手段の一例が実現される。
【００４６】
以上のように本実施形態では、ワークフロー処理がスキャン処理の場合には、紙に埋め込まれた最終処理日時を抽出して、更にスキャン処理を実行した処理日時を最終処理日時として、スキャン処理で読み出した原稿のデータに埋め込む。一方、ワークフロー処理がプリント処理の場合には、出力される紙（原稿）に最終処理日時情報が２次元バーコード等を使って埋め込まれる。
【００４７】
（具体例１）
次に、図９に示したワークフローのステップＳ１からステップＳ４までの各ステップでの処理を、図１０のフローチャートを参照しながら説明する。
図９のステップＳ１の処理が課員から指示された場合、まず、ステップＳ１００１において、ワークフロー定義ファイル９１０が、ワークフロー定義ファイル情報格納部３２１内から検索される。そして、ワークフロー定義ファイル９１０で実行されるステップがステップＳ１（step no＝"1"）であることが特定される。
【００４８】
次に、ステップＳ１００２において、ワークフロー定義ファイル９１０のステップＳ１の処理がプリント処理であると判定され、ステップＳ１００３に進む。
そして、ステップＳ１００３に進むと、プリントするデータがボックス文書情報格納部３２２内から検索され、そのデータから、そのデータの最終処理日時が特定される。ステップＳ１でプリントされるのは購買申請書のテンプレートデータである。このため、最終処理日時としては、テンプレートデータの作成日時が設定されているか、特に値が設定されていないかの何れかになる。
次に、ステップＳ１００５において、ステップＳ１より前のステップが、ワークフロー定義ファイル９１０に存在しないと判定されて（Ｎｏと判定されて）ステップＳ１００８へ進む。そして、ステップＳ１００８、Ｓ１００９において、帳票ボックス内の購買申請書のデータが、ボックス文書情報格納部３２２から検索される。ここで、ステップＳ１はプリント処理であるため、図６で説明したように処理実行日時のデータは、プリントデータに埋め込める形式のデータに変換された後に、購買申請書データに埋め込まれる。そして、処理実行日時が埋め込まれた購買申請書データのプリント処理が実行される。そして、ステップＳ１の処理が終了となる。ここでは、ステップＳ１の処理実行日時を「2007/05/01 12:00」とする。
【００４９】
ユーザは、ステップＳ１の処理が実行された後、プリントされた購買申請書に申請内容の記載を行う。そして、申請内容の記載が終了した後に、ステップＳ２の処理が実行される。
ステップＳ２の処理が課員から指示された場合、まず、ステップＳ１００１において、ワークフロー定義ファイル９１０で実行されるステップがステップＳ２（step no＝"2"）であることが特定される。
【００５０】
次に、ステップＳ１００２において、ワークフロー定義ファイル９１０のステップＳ２の処理がスキャン処理であると判定され、ステップＳ１００４に進む。そして、ステップＳ１００４において、図７で説明した処理が実行される。
まず、ステップＳ７０１において、スキャナ２４０に、課員によって設置された購買申請書が存在するか否かが判定される。そして、課員によって設置された購買申請書が存在することが検知されるとステップＳ７０２へ進む。
【００５１】
ステップＳ７０２に進むと、スキャナ２４０で、課員が作成した購買申請書のデータが読み取られる。
次に、ステップＳ７０３において、現在の日時が特定され、ステップＳ７０４において、現在の日時の情報が、購買申請書のデータに埋め込み可能なデータ形式に変換される。
次に、ステップＳ７０５において、購買申請書のデータに、処理実行日時の情報が埋め込まれているか否かが判定される。ここでは、ステップＳ１の処理で埋め込まれた処理実行日時の情報が購買申請書のデータに存在する。したがって、ステップＳ７０６に進み、その処理実行日時の情報が最終処理日時の情報として抽出される。
次に、ステップＳ７０７において、ステップＳ７０４で変換された"現在の日時の情報"が、購買申請書のデータに埋め込まれる。そして、ステップＳ７０８において、ステップＳ７０２で読み取られた購買申請書のデータと、ステップ７０６で抽出された処理実行日時の情報とが相互に関連付けられてボックス文書情報格納部３２２内に一時的に保存される。
【００５２】
以上の図７に示した処理が終了すると、ステップＳ１００５に進む。ステップＳ１００５では、ステップＳ２より前のステップＳ１が、ワークフロー定義ファイル９１０に存在すると判定されて（Ｙｅｓと判定されて）ステップＳ１００６に進む。ステップＳ１００６に進むと、ステップＳ１の最終更新日時「2007/04/01 12:00」が、ワークフロー定義ファイル９１０から特定される。
次に、ステップＳ１００７において、ステップＳ１の最終処理日時「2007/05/01 12:00」よりも後の日時が最終更新日時となっているステップが存在しないと判定され、ステップＳ１００８に進む。ステップＳ１００８に進むと、スキャン処理が行われた購買申請書のデータを申請ボックスへ保存する処理と、購買の申請があったこと（購買の承認依頼）を示す電子メールの通知を課長のアドレスに送信する処理とが実行される。
次に、ステップＳ１００９において、申請ボックスに保存された購買申請書のデータに、処理実行日時の情報が、購買申請書のデータの属性として設定され、ステップＳ２の処理が終了となる。ここでは、ステップＳ２の処理実行日時を「2007/05/08 10:00」とする。
【００５３】
ステップＳ２の処理が実行され、電子メールによる通知を受けた課長が、購買の申請があったことを認識すると、購買申請書のデータの確認を行うためにステップＳ３の処理が実行される。
ステップＳ３の処理の実行が課長から指示されると、まず、ステップＳ１００１において、ワークフロー定義ファイル９１０で実行されるステップがステップＳ３（step no＝"3"）であることが特定される。
【００５４】
次に、ステップＳ１００２において、ワークフロー定義ファイル９１０のステップＳ３の処理はスキャン処理ではないと判定され、ステップＳ１００３に進む。
そして、ステップＳ１００３に進むと、ボックス文書情報格納部３２２に保存されている申請ボックス内の購買申請書のデータと、その購買申請書のデータの属性である最終処理日時情報「2007/05/08 10:00」とが特定される。
次に、ステップＳ１００５において、ステップＳ３よりも前のステップＳ１、Ｓ２が存在すると判定されて（Ｙｅｓと判定されて）ステップＳ１００６に進む。
【００５５】
ステップＳ１００６に進むと、ステップＳ１とステップＳ２の最終更新日時「2007/04/01 12:00」が、ワークフロー定義ファイル９１０から特定される。
次に、ステップＳ１００７において、ステップＳ２の最終処理日時「2007/05/08 10:00」よりも後の日時が最終更新日時となっているステップが存在しないと判定され、ステップＳ１００８に進む。ステップＳ１００８に進むと、申請ボックス内の購買申請書のデータ、ボックス文書情報格納部３２２から検索される。ここで、ステップＳ３はプリント処理であるため、プリント処理が実行される。図６で説明したように処理実行日時のデータは、プリントデータに埋め込める形式のデータに変換された後に、購買申請書データに埋め込まれる。そして、処理実行日時が埋め込まれた購買申請書データのプリント処理が実行される。ここでは、ステップＳ３の処理実行日時を「2007/05/08 14:00」とする。
尚、ステップＳ２で保存された申請ボックス内の購買申請書のデータは、プリントが完了した後に削除されても、一定時間経過後に自動的に削除されてもよい。また、ステップＳ２で保存された申請ボックス内の購買申請書のデータを削除せずに、当該購買申請書のデータにステップＳ３の処理が実行されたことを示す情報を付加し、処理済データの履歴を保存してもよい。
【００５６】
ステップＳ３の処理で申請された購買申請書を課長がチェックして、購買申請書に課長の承認印を付して、購買を行う部門へ購買申請書の書類を転送するためにステップＳ４の処理が実行される。
ステップＳ４の処理の実行が課長から指示されると、まず、ステップＳ１００１において、ワークフロー定義ファイル９１０で実行されるステップがステップＳ４（step no＝"4"）であることが特定される。
次に、ステップＳ１００２において、ワークフロー定義ファイル９１０のステップＳ２の処理がスキャン処理であると判定され、ステップＳ１００４に進む。
そして、ステップＳ１００４において、図７で説明した処理が実行される。
まず、ステップＳ７０１において、スキャナ２４０に、課長によって設置された"承認印が押印された購買申請書"が存在するか否かが判定される。そして、課長によって設置された購買申請書が存在することが検知されるとステップＳ７０２へ進む。
【００５７】
ステップＳ７０２に進むと、スキャナ２４０で、課長が作成した購買申請書のデータが読み取られる。
次に、ステップＳ７０３において、現在の日時が特定され、ステップＳ７０４において、現在の日時の情報が、購買申請書のデータに埋め込み可能なデータ形式に変換される。
次に、ステップＳ７０５において、購買申請書のデータに、前述したステップＳ３の処理で埋め込まれた処理実行日時の情報（「2007/05/08 14:00」）が存在すると判定され、ステップＳ７０６に進む。ステップＳ７０６に進むと、その処理実行日時の情報が最終処理日時の情報として抽出される。
次に、ステップＳ７０７において、ステップＳ７０４で変換された"現在の日時の情報"が、購買申請書のデータに埋め込まれる。そして、ステップＳ７０８において、ステップＳ７０２で読み取られた購買申請書のデータと、ステップ７０６で抽出された処理実行日時の情報とが相互に関連付けられてボックス文書情報格納部３２２内に一時的に保存される。
【００５８】
以上の図７に示した処理が終了すると、ステップＳ１００５に進む。ステップＳ１００５では、ステップＳ４より前のステップＳ１〜Ｓ３が、ワークフロー定義ファイル９１０に存在すると判定されて（Ｙｅｓと判定されて）ステップＳ１００６に進む。ステップＳ１００６に進むと、ステップＳ１〜Ｓ３の最終更新日時「2007/04/01 12:00」が、ワークフロー定義ファイル９１０から特定される。
次に、ステップＳ１００７において、ステップＳ７０６で抽出された最終処理日時「2007/05/08 14:00」は、ステップＳ１〜Ｓ３の最終更新日時「2007/04/01 12:00」よりも後の日時であるため、ステップＳ１００８に進む。ステップＳ１００８に進むと次の処理が行われる。すなわち、スキャン処理が行われた購買申請書のデータを、承認した日付をファイル名に付与して承認ボックスへ保存する処理と、当該購買申請書を承認したこと及び購買処理を依頼することを、総務部のアドレスに対して電子メールで通知する処理とが実行される。
次に、ステップＳ１００９において、承認ボックスに保存された購買申請書のデータに対して、処理実行日時の情報が、購買申請書のデータの属性として設定され、ワークフローの処理が終了となる。
【００５９】
（具体例２）
次に、ステップＳ１の処理で使用される購買申請書のテンプレートファイルが、変更された場合の処理を、図１０のフローチャートを参照しながら説明する。ここでは、購買申請書のテンプレートが「2007/05/05 12:00」に変更されたとする。図１１は、購買申請書のテンプレートが変更された後のワークフロー定義ファイル９１１の一例を示す図である。
ステップＳ１では、具体例１の購買申請書のデータのプリント処理が行われたとする。つまり、ステップＳ１では、変更前の購買申請書のテンプレートが用いられ、プリントされた購買申請書のデータには、具体例１で例示した処理実行日時「2007/05/01 12:00」のデータが最終処理日時のデータとして埋め込まれている。
ここで、課員が「2007/05/08 10:00」にステップＳ２の処理の実行を指示したとする。そうすると、まず、ステップＳ１００１において、ワークフロー定義ファイル９１１で実行されるステップがステップＳ２（step no＝"2"）であることが特定される。
【００６０】
次に、ステップＳ１００２において、ワークフロー定義ファイル９１１のステップＳ２の処理がスキャン処理であると判定され、ステップＳ１００４に進む。そして、ステップＳ１００４において、図７で説明した処理が実行される。
まず、ステップＳ７０１において、スキャナ２４０に、課員によって設置された購買申請書が存在するか否かが判定される。そして、課員によって設置された購買申請書が存在することが検知されるとステップＳ７０２に進む。
ステップＳ７０２に進むと、スキャナ２４０で、課員が作成した購買申請書のデータが読み取られる。
次に、ステップＳ７０３において、現在の日時が特定され、ステップＳ７０４において、現在の日時の情報が、購買申請書のデータに埋め込み可能なデータ形式に変換される。  次に、ステップＳ７０５において、購買申請書のデータに、処理実行日時の情報が埋め込まれているか否かが判定される。ここでは、ステップＳ１の処理で埋め込まれた処理実行日時の情報が購買申請書のデータに存在する。したがって、ステップＳ７０６に進み、その処理実行日時の情報が最終処理日時の情報として抽出される。
次に、ステップＳ７０７において、ステップＳ７０４で変換された"現在の日時の情報"が、購買申請書のデータに埋め込まれる。そして、ステップＳ７０８において、ステップＳ７０２で読み取られた購買申請書のデータと、ステップ７０６で抽出された処理実行日時の情報とが相互に関連付けられてボックス文書情報格納部３２２内に一時的に保存される。
【００６１】
以上の図７に示した処理が終了すると、ステップＳ１００５に進む。ステップＳ１００５では、ステップＳ２より前のステップＳ１が、ワークフロー定義ファイル９１１に存在すると判定されて（Ｙｅｓと判定されて）ステップＳ１００６に進む。ステップＳ１００６に進むと、ステップＳ１の最終更新日時「2007/05/05 12:00」が、ワークフロー定義ファイル９１１から特定される。
次に、ステップＳ１００７において、ステップＳ１の最終処理日時「2007/05/01 12:00」よりも後の日時が最終更新日時となっているステップが存在すると判定され、ステップＳ１０１０に進む。ステップＳ１０１０に進むと、これ以上処理を継続することができないため、処理をキャンセルする旨と購買申請書のテンプレートが変更された旨の通知（画像）が操作部２３０に表示される（課員に通知される）。そして、処理がキャンセルされ、続いてステップＳ１００４で読み取った購買申請書のデータが削除されて処理が終了する。
以上のように本実施形態では、購買申請書のテンプレートが変更されて、購買申請書を再度、作成しなおさなければならないような場合には、処理が継続されないように適切に処理をキャンセルすることが可能である。
【００６２】
（具体例３）
次に、ステップＳ２、Ｓ３の処理が変更・追加された場合の処理を、図１０のフローチャートを参照しながら説明する。ここでは、処理の手戻りを減らすために課長の承認の前に在庫の確認を行いたいと考え、次のような変更が行われたとする。すなわち、ステップＳ２で課長への購買申請書の申請を行った後、課長による購買申請書の確認が行われる前に、購買担当者へ在庫の確認の通知を行うステップを新規に追加する。この新規に追加されたステップで購買担当者が在庫の確認を行って、在庫の確認がとれた後に、購買申請書の承認を依頼するための電子メールの通知を課長に対して行う。
前述したステップＳ３、Ｓ４は、新規に追加されたステップによって、夫々、ステップＳ４、Ｓ５に変更される。ここでは、このようなワークフローの変更が「2007/05/08 12:00」に行われたとする。図１２は、ワークフローが変更された後のワークフロー定義ファイル９１２の一例を示す図である。
ステップＳ２では、具体例１のようにして、スキャン処理が行われた購買申請書のデータを申請ボックスへ保存する処理と、購買の申請があったことを示す電子メールの通知を課長のアドレスに送信する処理とが行われたとする。つまり、ステップＳ２では、課長のアドレスに、購買の申請があったことを示す電子メールが送信されており、購買担当者に対して在庫の確認が依頼されていない。したがって、スキャナ２４０で読み取られた購買申請書のデータには、「2007/05/08 10:00」の最終処理日時が埋め込まれている。そして、ここでは、課長は、ワークフロー定義ファイルが更新されたことに気づかずに、課員から送信された電子メールを見て、具体例１と同様に「2007/05/08 14:00」に、変更前のステップＳ３の処理の実行を指示したとする。
【００６３】
ステップＳ２の処理が実行され、電子メールによる通知を受けた課長は、ワークフロー定義ファイルの変更があったことに気づかず、購買の申請があったことを認識しているだけである。このため、課長が購買申請書のデータの確認を行うための指示を行うと、ステップＳ１００１において、ワークフロー定義ファイル９１２で実行されるステップがステップＳ４（step no＝"4"）であることが特定される。
次に、ステップＳ１００２において、ワークフロー定義ファイル９１２のステップＳ４の処理はスキャン処理ではないと判定され、ステップＳ１００３に進む。
そして、ステップＳ１００３に進むと、ボックス文書情報格納部３２２に保存されている申請ボックス内の購買申請書のデータと、その購買申請書のデータの属性である最終処理日時情報「2007/05/08 10:00」とが特定される。
次に、ステップＳ１００５において、ステップＳ４よりも前のステップＳ１〜Ｓ３が存在すると判定されて（Ｙｅｓと判定されて）ステップＳ１００６に進む。
【００６４】
ステップＳ１００６に進むと、ステップＳ２とステップＳ３の最終更新日時「2007/05/08 12:00」が、ワークフロー定義ファイル９１２から特定される。
ステップＳ２、Ｓ３の最終更新日時は「2007/05/08 12:00」である。よって、ステップＳ１００７において、ステップＳ２の最終処理日時「2007/05/08 10:00」よりも後の日時が最終更新日時となっているステップＳ２、Ｓ３が存在すると判定される。そして、ステップＳ１０１０に進み、処理がキャンセルされる。このとき、処理をキャンセルする旨と、ワークフロー定義ファイルが更新されている旨が操作部２３０を通して課長に通知される。
以上のように本実施形態では、ワークフローが変更されたり追加されたりして、途中まで処理されたジョブが、必要な処理を通っていなかった場合には、処理が継続されていないように適切に処理をキャンセルすることが可能である。
【００６５】
（具体例４）
具体例３では、ステップＳ２の処理を実行したのが「2007/05/08 10:00」である場合を示したが、ここでは、ステップＳ２の処理を実行したのが「2007/05/08 13:00」であったとする。この他の点は、具体例３と同じである。すなわち、ワークフローの変更が「2007/05/08 12:00」に行われているので、本例では、ステップＳ２の処理を実行したときには、既に新しいワークフロー定義ファイル９１２にワークフロー定義ファイルが更新されていたことになる。このような場合には、具体例３と同じようにステップが追加されてワークフロー定義ファイルが更新されているが、具体例３と同じように課長がワークフロー定義ファイルの変更を認識せずに購買申請書のチェックを行っても処理はキャンセルされずに継続される。ステップＳ１００６において、ステップＳ２、Ｓ３の最終更新日時「2007/05/08 12:00」よりも、ステップＳ２の最終処理日時「2007/05/08 13:00」の方が後であると判定されるためである。
【００６６】
ステップＳ２の処理が課員から指示されると、ワークフロー定義ファイル９１２で実行されるステップがステップＳ２（step no＝"2"）であることが特定される。すなわち、新しいステップＳ２の処理が実行され、購買担当者のアドレスに、在庫の確認を依頼することを示す電子メールが送信される。このとき、購買担当者が、ボックス文書情報格納部３２２内の購買申請書のデータにアクセスしなくてもよいように、その購買申請書のデータと同じデータが、電子メールに添付されて送信されるようにするのが好ましい。購買担当者は、電子メールを受信したら、その電子メール添付されている購買申請書のデータを印刷して、その内容を確認して在庫の確認を行う。ここでは、購買担当者が在庫の確認がとれたとして説明を行う。
【００６７】
ステップＳ３の処理が購買担当者から指示されると、ステップＳ１００１において、ワークフロー定義ファイル９１２で実行されるステップがステップＳ３（step no＝"3"）であることが特定される。次に、ステップＳ１００２において、ワークフロー定義ファイル９１２のステップＳ３の処理がスキャン処理であると判定される。そして、ステップＳ１００４に進み、図７に示したスキャン処理が実行される。このとき、ステップＳ７０６で抽出される処理実行日時の情報は、ステップＳ２のスキャン処理のときに購買申請書のデータに埋め込まれた処理実行日時の情報となる。すなわち、電子メールに添付されていた購買申請書のデータに埋め込まれている処理日時情報となる。そのため、このときに抽出される日時は「2007/05/08 13:00」となる。
【００６８】
ステップＳ１００４でスキャン処理が実行されると、ステップＳ１００５において、ステップＳ３より前のステップＳ１、Ｓ２が、ワークフロー定義ファイル９１２に存在すると判定されて（Ｙｅｓと判定されて）ステップＳ１００６に進む。ステップＳ１００６に進むと、ステップＳ１の最終更新日時「2007/04/01 12:00」とステップＳ２の採取更新日時「2007/05/08 12:00」が、ワークフロー定義ファイル９１２から特定される。そして、ステップＳ１００７において、ステップＳ２の最終処理日時「2007/05/08 13:00」よりも後の日時が最終更新日時となっているステップが存在しないと判定され、ステップＳ１００８に進む。ステップＳ１００８に進むと、購買の申請があったこと（購買の承認依頼）を示す電子メールの通知を課長のアドレスに送信する処理と、申請ボックス内の購買申請書のデータの属性である最終処理日時を更新する処理とが行われる。例えば、このステップＳ３の処理実行日時（最終処理日時）が「2007/05/09 12:00」であったとする。
【００６９】
電子メールによる通知を受けた課長が購買申請書のデータの確認を行うためにステップＳ４の処理が実行された場合、このステップＳ４で処理される購買申請書のデータの最終処理日時は「2007/05/09 12:00」である。一方、ステップＳ４よりも前のステップＳ１〜Ｓ３の最終更新日時は、夫々「2007/04/01 12:00」、「2007/05/08 12:00」、「2007/05/08 12:00」である。このため、購買申請書のデータの最終処理日時「2007/05/09 12:00」の方が、ステップＳ１〜Ｓ３の最終更新日時よりも後となる。よって、ステップＳ１００７でＹｅｓと判定され、正常に処理が継続されることになる（ステップＳ１００８、Ｓ１００９）。
以上のように本実施形態では、単にワークフロー定義ファイルが更新されたからといって、全てのジョブをキャンセルしたりせずに、そのまま継続しても問題ないステップまでのジョブであれば、適切に処理することが可能である。
【００７０】
以上のように本実施形態では、ワークフロー定義ファイル９１０〜９１２の各ステップに、更新した日時に関する最新更新日時情報を付与する。また、ワークフロー定義ファイル９１０〜９１２の各ステップを実行した際に、その実行した日時に関する処理実行日時情報を、そのステップで処理したデータに付与する。
そして、ワークフロー定義ファイル９１０〜９１２の各ステップを実行するに際し、そのステップで処理するデータに付与されている処理実行日時情報から、そのデータの最終の処理日時を特定する。次に、実行対象のステップ（ジョブ）よりも前のステップ（ジョブ）における最新更新日時情報から特定される更新日時が、実行対象のステップで処理されるデータの最終の処理日時よりも後である場合には、実行対象のステップの処理をキャンセルする。一方、実行対照のステップよりも前のステップにおける最新更新日時情報から特定される更新日時が、実行対象のステップで処理されるデータの最終の処理日時よりも後でない場合には、実行対象のステップの処理を続行する。したがって、ワークフロー定義が変更されたり追加されたりした場合に、処理途中のジョブのキャンセルと続行とを適切に判断することが、ワークフローで実行されるジョブを管理する管理サーバを使用せずに実現できる。よって、ワークフローで実行されるジョブを管理するサーバを使用せずに、ワークフローを適切に実行できる。
【００７１】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。前述した第１の実施形態では、実行対象のステップよりも前のステップにおける更新日時が、実行対象のステップで処理されるデータの最終の処理日時よりも後である場合には、実行対象のステップの処理を無条件でキャンセルするようにした。これに対し、本実施形態では、このような場合に、実行対象のステップの処理をキャンセルするか続行するかを示す情報をワークフロー定義ファイルに追加し、条件によっては処理を続行できるようにする。このように本実施形態と前述した第１の実施形態とは、ワークフロー定義ファイルの内容と、実行対象のステップよりも前のステップにおける更新日時が、実行対象のステップで処理されるデータの最終の処理日時よりも後である場合の処理とが主として異なる。したがって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図１２に付した符号と同一の符号を付すこと等により詳細な説明を省略する。
【００７２】
図１３は、ワークフロー定義ファイル９１３の一例を示す図である。
図１３に示すワークフロー定義ファイル９１３は、図１２に示したワークフロー定義ファイル９１２と同じワークフローである。このワークフロー定義ファイル９１３では、ステップＳ２、Ｓ３に対して「allow="step5"」と定義されている。このため、実行対象のステップ（ジョブ）がステップＳ５以降であれば、ステップＳ２、Ｓ３の最新更新日時が、実行対象のステップ（ジョブ）の最終処理日時よりも後であったとしても、そのステップ（ジョブ）の処理をキャンセルせずに続行を許可する。
【００７３】
課長による購買申請書の確認の処理までが「2007/05/08 10:00」までに実行されていたとする。そして、「2007/05/08 12:00」にワークフロー定義ファイルが図９に示したワークフロー定義ファイル９１０から図１３に示すワークフロー定義ファイル９１３に更新されたとする。この場合、購買申請書の確認のためにプリントした購買申請書には、最終処理日時として「2007/05/08 10:00」が埋め込まれて印刷されている。そして、購買申請書の承認を行うために、課長が、「2007/05/08 13:00」に、画像形成装置１１０の購買依頼の承認ボタンを選択し、ステップＳ５の処理の実行を指示した場合の処理を図１４と図７のフローチャートを参照しながら説明する。
【００７４】
課長から購買申請書の承認の実行が指示されると、ステップＳ１４０１において、ワークフロー定義ファイル９１３で実行されるステップがステップＳ５（step no＝"5"）であると判定される。
次に、ステップＳ１４０２において、ワークフロー定義ファイル９１３のステップＳ５の処理がスキャン処理であると判定され、ステップＳ１４０４に進む。そして、ステップＳ１４０４において、図７で説明した処理が実行される。
まず、ステップＳ７０１において、スキャナ２４０に、課長によって設置された"承認印が押印された購買申請書"が存在するか否かが判定される。そして、課長によって設置された購買申請書が存在することが検知されるとステップＳ７０２へ進む。
【００７５】
ステップＳ７０２に進むと、スキャナ２４０で、課長が作成した購買申請書のデータが読み取られる。
次に、ステップＳ７０３において、現在の日時が特定され、ステップＳ７０４において、現在の日時の情報が、購買申請書のデータに埋め込み可能なデータ形式に変換される。
次に、ステップＳ７０５において、購買申請書のデータに、ステップＳ３のプリント処理で埋め込まれた処理実行日時の情報（「2007/05/08 10:00」）が存在すると判定され、ステップＳ７０６に進む。ステップＳ７０６に進むと、その処理実行日時の情報が最終処理日時の情報として抽出される。
【００７６】
次に、ステップＳ７０７において、ステップＳ７０４で変換された"現在の日時の情報" 「2007/05/08 13:00」が、購買申請書のデータに埋め込まれる。そして、ステップＳ７０８において、ステップＳ７０２で読み取られた購買申請書のデータと、ステップ７０６で抽出された処理実行日時の情報とが相互に関連付けられてボックス文書情報格納部３２２内に一時的に保存される。
以上のように本実施形態では、例えば、ステップＳ１４０４（Ｓ７０６）の処理を行うことにより第２の取得手段の一例が実現され、例えば、最終処理日時が、工程実行時間の一例となる。
【００７７】
以上の図７に示した処理が終了すると、ステップＳ１４０５に進む。ステップＳ１４０５に進むと、ステップＳ５より前のステップＳ１〜Ｓ３が、ワークフロー定義ファイル９１３に存在すると判定されて（Ｙｅｓと判定されて）ステップＳ１４０６に進む。ステップＳ１４０６では、ステップＳ１〜Ｓ４の最終更新日時の情報と、最終更新日時よりも前の最終処理日時のステップ（ジョブ）を許可するかどうかを示す許可情報が特定される。
以上のように本実施形態では、例えば、ステップＳ１４０６の処理を行うことにより第１の取得手段の一例が実現され、最終更新日時が、工程内容更新時間の一例となり、更に、許可情報が、処理可否情報の一例となる。
次に、ステップＳ１４０７において、ステップＳ７０６で抽出された最終処理日時「2007/05/08 10:00」は、ステップＳ２、Ｓ３の最終更新日時「2007/05/08 12:00」よりも前の日時となるため、ステップＳ１４１０に進む。
【００７８】
ステップＳ１４１０に進むと、ステップＳ７０６で抽出された最終処理日時よりも最終更新日時が後であるステップＳ２、Ｓ３に許可情報が存在するか否かを、ワークフロー定義ファイル９１３から判定する。ワークフロー定義ファイル９１３のステップＳ２、Ｓ３には、「allow="step5"」という許可情報が存在するため、ステップＳ１４１１へ進む。ステップＳ１４１１に進むと、実行対象のステップであるステップＳ５の実行が許可情報によって許可されているか否かを判定する。「allow="step5"」という許可情報により、ステップＳ５の実行は許可されている。このため、ステップＳ１４０８に進む。尚、ステップＳ１４０７でＮｏと判定された場合にもステップＳ１４０８に進む。また、ステップＳ１４１０、Ｓ１４１１は、処理実行部３１３により行われる。
【００７９】
ステップＳ１４０８に進むと次の処理が行われる。すなわち、スキャン処理が行われた購買申請書のデータを承認ボックスへ承認した日付をファイル名に付与して保存する処理と、当該購買申請書を承認したことと購買処理を依頼することとを、総務部のアドレスに対して電子メールで通知する処理とが実行される。
次に、ステップＳ１４０９において、承認ボックスに保存された購買申請書のデータに対して、処理実行日時の情報が、購買申請書のデータの属性として付加されて、処理が終了する。
以上のように本実施形態では、例えば、ステップＳ１４０９の処理を行うことにより付加手段の一例が実現される。
【００８０】
次に、課員による購買申請書の申請の処理までが「2007/05/08 10:00」までに実行されていたとする。そして、「2007/05/08 12:00」にワークフロー定義ファイルが図９に示したワークフロー定義ファイル９１０から図１３に示すワークフロー定義ファイル９１３に更新されたとする。この場合、申請ボックス内の購買申請書のデータには、属性として最終処理日時「2007/05/08 10:00」が設定されている。そして、購買申請書の確認を行うために、課長が、「2007/05/08 13:00」に、画像形成装置１１０の購買依頼チェックのボタンを選択し、変更前のステップＳ３の処理の実行を指示したとする。この場合の処理を図１４のフローチャートを使用しながら説明する。
【００８１】
課長から購買申請書の確認が指示されると、ステップＳ１４０１において、ワークフロー定義ファイル９１３で実行されるステップがステップＳ４（step no＝"4"）であることが特定される
次に、ステップＳ１４０２において、ワークフロー定義ファイル９１３のステップＳ４の処理はスキャン処理ではないと判定され、ステップＳ１４０３に進む。ステップＳ１４０３に進むと、ボックス文書情報格納部３２２に保存されている申請ボックス内の購買申請書のデータと、その購買申請書のデータの属性である最終処理日時情報「2007/05/08 10:00」とが特定される。
以上のように本実施形態では、例えば、ステップＳ１４０３の処理を行うことにより第２の取得手段の一例が実現される。
次に、ステップＳ１４０５において、ステップＳ４よりも前のステップＳ１〜Ｓ３が存在すると判定されて（Ｙｅｓと判定されて）ステップＳ１４０６に進む。
【００８２】
ステップＳ１４０６に進むと、ステップＳ１〜Ｓ３の最終更新日時の情報と、最終更新日時よりも前の最終処理日時のステップ（ジョブ）を許可するかどうかを示す許可情報とが特定される。そして、ステップＳ１４０７において、ステップＳ２、Ｓ３の最終更新日時「2007/05/08 12:00」よりも、最終処理日時「2007/05/08 10:00」が前であると判定されてステップＳ１４１０に進む。
【００８３】
ステップＳ１４１０に進むと、最終処理日時よりも最終更新日時が後であるステップＳ２、Ｓ３に許可情報があるので、ステップＳ１４１１に進む。ステップＳ１４１１に進むと、実行対象のステップであるステップＳ４の実行が許可情報によって許可されているか否かを判定する。「allow="step5"」という許可情報により、ステップＳ４の実行は許可されていない。よって、ステップＳ１４１２に進み、処理がキャンセルされる。
以上のように本実施形態では、例えば、ステップＳ１４０７、Ｓ１４１０〜Ｓ１４１２の処理を行うことにより中止手段の一例が実現される。
尚、ステップＳ１４０３の処理は、図１０に示したステップＳ１１０３の処理と同じであるので、本実施形態では、その詳細な説明を省略する。
【００８４】
以上のように本実施形態では、実行対象のステップ（ジョブ）の最新更新日時よりも前の最終処理日時のステップ（ジョブ）の実行を許可するかどうかを示す許可情報を、ワークフロー定義ファイル９１３の少なくとも１つのステップに付加するようにした。したがって、第１の実施形態で説明した効果に加え、ワークフロー定義が変更されたり追加されたりしても、処理途中のジョブのキャンセルする必要がないようなジョブを処理しているかどうかを、管理サーバを用いることなく判定できるという効果が得られる。例えば、既に承認が降りてしまう段階まできているのであれば在庫の確認は行っていなくても良いが、申請書の確認が行われる段階であり、承認のための作業が行われる前であれば在庫の確認を行ったほうがよい場合等にも処理を実行するか否かを適切に判断できる。
尚、本実施形態では、許可情報が、実行するワークフローの進度に応じて各工程の実行を許可するか否かを示すものである場合を例に挙げて示したが、許可情報は、必ずしもこのようなものに限定されるものではない。例えば、許可情報は、実行の許否のみを示す情報であってもよい。
【００８５】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。本実施形態では、処理をキャンセルする際に、処理の内容に応じてキャンセルする方法を異ならせるようにする。このように本実施形態と前述した第１、第２の実施形態とは、処理をキャンセルする方法の一部が主として異なる。したがって、本実施形態の説明において、第１、第２の実施形態と同一の部分については、図１〜図１４に付した符号と同一の符号を付すこと等により詳細な説明を省略する。
【００８６】
図１５は、処理をキャンセルする際のワークフロー処理ソフトウェアの処理の一例を説明するフローチャートである。図１５のフローチャートは、例えば、図１０のステップＳ１０１０、図１４のステップＳ１４１２の代わりに実行されるものである。
まず、ステップＳ１５０１において、処理実行部３１３は、ユーザによって実行が指示されたステップ（ジョブ）の処理内容を特定する。
次に、ステップＳ１５０２において、処理実行部３１３は、ステップＳ１５０１で特定された処理内容に印刷処理があるか否かを判定する。この判定の結果、印刷処理がない場合には、ステップＳ１５０３を省略して後述するステップＳ１５０４に進む。
【００８７】
一方、印刷処理がある場合には、ステップＳ１５０３に進む。ステップＳ１５０３に進むと、処理実行部３１３は、プリントデータに処理継続無効化情報を埋め込む。処理継続無効化情報とは、本来埋め込む最終処理日時情報ではなく、スキャン処理の禁止を指示する地紋や、２次元バーコードによる情報やキャンセルされたことを意味するメッセージのスタンプ情報等である。そのため、プリントされた申請書等の用紙を用いてユーザが誤って次の処理を行おうとした場合であっても、キャンセルされていることを画像形成装置１１０が適切に判断できる。
そして、制御部３１２は、処理継続無効化情報が埋め込まれたプリントデータを、イメージバスＩ／Ｆ２０５を通してプリンタ画像処理部２１５へ出力する。プリンタ画像処理部２１５は、必要に応じて画像回転部２１６等と連携して、そのプリントデータに対して処理を行い、処理を行ったプリントデータをデバイスＩ／Ｆ２１３を通してプリンタ２５０に出力する。そして、プリンタ２５０は、入力したプリントデータに基づいてプリントを行い、ステップＳ１５０４に進む。
【００８８】
ステップＳ１５０４に進むと、処理実行部３１３は、ステップＳ１５０１で特定された処理内容に送信処理があるか否かを判定する。この判定の結果、送信処理がない場合には、ステップＳ１５０５を省略して後述するステップＳ１５０６に進む。
一方、送信処理がある場合には、ステップＳ１５０５に進む。ステップＳ１５０５に進むと、処理実行部３１３は、その送信処理をキャンセルする。これにより、次の処理がユーザに通知されない。よって、この時点で処理を止めることが可能となる。そして、ステップＳ１５０６に進む。
【００８９】
ステップＳ１５０６に進むと、処理実行部３１３は、ステップＳ１５０１で特定された処理内容に、ボックスへの保存処理があるか否かを判定する。この判定の結果、ボックスへの保存処理がない場合には、ステップＳ１５０７を省略して後述するステップＳ１５０８に進む。
一方、ボックスへの保存処理がある場合には、ステップＳ１５０７に進む。ステップＳ１５０７に進むと、データ入出力部３１５は、本来保存するボックスではなくキャンセルデータの用のボックスに、実行対象のデータを保存する。これにより、後から間違ってキャンセルされているはずのデータが処理されることを防止できる。更に、キャンセル用ボックスをタッチパネル部４２０等に表示してユーザに閲覧させるようにすることで、どのジョブがキャンセルされたのかをユーザが容易に知ることができる。尚、キャンセルデータの用のボックスは、例えば、ボックス文書情報格納部３２２に格納されている。そして、ステップＳ１５０８に進む。
【００９０】
ステップＳ１５０８に進むと、処理実行部３１３は、ステップＳ１５０１で特定された処理内容に、文書結合やページ削除等の編集処理があるか否かを判定する。この判定の結果、編集処理がない場合には、ステップＳ１５０９を省略して、図１５のフローチャートによる処理を終了する。
一方、編集処理がある場合には、ステップＳ１５０９に進む。ステップＳ１５０９に進むと、処理実行部３１３は、実行対象のデータに対して編集不可のロックをかける。これにより、別の処理でデータが誤って編集されてしまうことを防止でき、更に、データが編集されていないことを保証することもできる。
以上のように本実施形態では、例えば、図１５のフローチャートを実行することにより実行手段の一例が実現される。
【００９１】
以上のように本実施形態では、処理をキャンセルするときに、ただ処理をキャンセルするだけではなく、本来行う予定としていた処理に応じて適切なキャンセル処理を行う。したがって、第１、第２の実施形態で説明した効果に加え、ユーザの誤操作や無駄な処理を防ぐことができるという効果が得られる。
【００９２】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。前述した第１の実施形態では、管理サーバをシステムに設けない場合を例に挙げて説明した。これに対し本実施形態では、管理サーバをシステムに設け、当該管理サーバが一時的に動作不能となっている場合に、管理サーバを用いることなくワークフローを実行し、管理サーバが復旧した後にそのログ（記録）を管理サーバに伝えるようにする。このように本実施形態と前述した第１〜第３の実施形態は、管理サーバがシステムに設けられている点と、管理サーバを設けたことによる画像形成装置１１０の処理とが主として異なる。したがって、本実施形態の説明において、第１〜第３の実施形態と同一の部分については、図１〜図１５に付した符号と同一の符号を付すこと等により詳細な説明を省略する。
【００９３】
前述した第１〜第３の実施形態で説明したように、管理サーバがシステムにない状態であっても適切にワークフローを処理できる。これに対し、本実施形態では、前述したように、本来はシステムに存在してワークフローを管理できている管理サーバが、ワークフローの管理を一時的に行えなくなってしまった場合について説明する。ここでは、管理サーバが一時的にダウンしてしまったことにより、ワークフローの管理を一時的に行えなくなってしまった場合を例に挙げて処理を説明する。
【００９４】
図１６は、ワークフロー処理システムの全体構成の一例を示す図である。
図１６に示すワークフロー処理システムは、図１に示したワークフロー処理システムに対して、ワークフロー管理サーバ１４０が追加されたものとなる。このワークフロー管理サーバ１４０は、システムで処理されている全てのワークフローの情報を管理しており、どのワークフローのどのステップまで処理されているのかを管理している。各画像形成装置１１０は、ワークフローの処理の実行時に、実行するステップ（ジョブ）の情報をワークフロー管理サーバ１４０に問い合わせることで、処理を継続するかキャンセルするかを判断する。
【００９５】
図１８は、画像形成装置１１０で実行されるワークフロー処理ソフトウェアの機能構成の一例を示すブロック図である。
図１８に示すワークフロー処理ソフトウェア１８０１は、図３に示したワークフロー処理ソフトウェア３００に対し、保存情報管理部１８０２にログ情報格納部３２３が追加されたものとなる。ログ情報格納部３２３は、ワークフロー管理サーバ１４０がダウンしているときに実行したワークフローのステップ（ジョブ）の内容（記録）を記憶媒体に記憶される。
【００９６】
図１７は、画像形成装置１１０内のワークフロー処理ソフトウェア１８０１の処理の一例を説明するフローチャートである。
まず、ステップＳ１７０１において、データ入出力部３１５は、ＵＩ処理部３１１で受信した"ユーザの指示の内容"を、ワークフロー定義ファイル情報格納部３２１内から検索する。そして、データ入出力部３１５は、検索した結果に基づいて、ユーザによって指示されたワークフロー処理に対応するワークフロー定義と、そのワークフローで実行されるステップの情報とを特定する。
【００９７】
次に、ステップＳ１７０２において、処理実行部３１３は、ステップＳ１７０１で特定したステップがワークフロー定義での一連の処理において最初のステップであるか否かを判定する。この判定の結果、ステップＳ１７０１で特定したステップが最初のステップでない場合には、後述するステップＳ１７０７に進む。
一方、ステップＳ１７０１で特定したステップが最初のステップである場合には、ステップＳ１７０３に進む。ステップＳ１７０３に進むと、制御部３１２は、新規のジョブを開始するため、ワークフロー管理サーバ１４０に対して、新規ジョブＩＤの発行の要求を行う。
【００９８】
次に、ステップＳ１７０４において、制御部３１２は、ステップＳ１７０３で行った要求に対する応答としての新規ジョブＩＤが、例えば所定時間以内に、ワークフロー管理サーバ１４０から受信されたか否かを判定する。この判定の結果、新規ジョブＩＤを受信した場合には、ステップＳ１７０５に進む。ステップＳ１７０５に進むと、処理実行部３１３は、新規ジョブＩＤのデータを、処理対象のデータに埋め込むことが可能な形式のデータに変換する。そして、後述するステップＳ１７０７に進む。
一方、ワークフロー管理サーバ１４０がダウンしていて新規ジョブＩＤを画像形成装置１１０に返せない状態であり、ステップＳ１７０４で新規ジョブＩＤを受信していないと判定された場合には、ステップＳ１７０６に進む。ステップＳ１７０６に進むと、処理実行部３１３は、テンポラリのジョブＩＤをワークフロー処理ソフトウェア１８０１内で発行して、そのテンポラリジョブＩＤを、処理対象のデータに埋め込むことが可能な形式のデータに変換する。そして、ステップＳ１７０７に進む。
【００９９】
ステップＳ１７０７に進むと、処理実行部３１３は、ステップＳ１７０１で特定されたステップでの処理が、スキャン処理か否かを判定する。この判定の結果、ステップＳ１７０１で特定されたステップでの処理が、スキャン処理である場合にはステップＳ１７０９へ進み、図７で説明したスキャン処理を実行してステップＳ１７１０へ進む。
一方、ステップＳ１７０１で特定されたステップでの処理が、スキャン処理でない場合には、ステップＳ１７０８に進む。ステップＳ１７０８に進むと、処理実行部３１３は、処理を実行するするデータ（例えば属性情報）から、その処理を実行するデータの最終処理日時を特定する。そして、ステップＳ１７１０に進む。
以上のように本実施形態では、例えば、ステップＳ１７０８、Ｓ１７０９（Ｓ７０６）の処理を行うことにより第２の取得手段の一例が実現され、例えば、最終処理日時が、工程実行時間の一例となる。
【０１００】
ステップＳ１７１０に進むと、制御部３１２は、ステップＳ１７０８又はステップＳ１７０９で特定した最終処理日時と、ジョブＩＤとを用いて、ワークフロー管理サーバ１４０に、処理の実行の可否を問い合わせる。
以上のように本実施形態では、例えば、ステップＳ１７１０の処理を行うことにより問い合わせ手段の一例が実現される。
次に、ステップＳ１７１１において、制御部３１２は、ステップＳ１７１０の問い合わせに対する応答がワークフロー管理サーバ１４０から、例えば所定時間以内にあったか否かを判定する。この判定の結果、ワークフロー管理サーバ１４０から応答があった場合はステップＳ１７１２に進む。ステップＳ１７１２に進むと、処理実行部３１３は、ワークフロー管理サーバ１４０からの応答が続行を示すものであればワークフローに定義された処理を実行する。一方、ワークフロー管理サーバ１４０からの応答がキャンセルを示すものであれば、処理実行部３１３は処理をキャンセルする。
次に、ステップＳ１７１３において、データ入出力部３１５は、ステップＳ１７１２での処理結果をログとして、図１８に示すログ情報格納部３２３に記憶する。そして、制御部３１２は、そのログの情報をワークフロー管理サーバ１４０に処理結果として通知する。そして、図１７のフローチャートによる処理を終了する。
【０１０１】
ステップＳ１７１１において、ワークフロー管理サーバ１４０からの応答がなかった場合にはステップＳ１７１４に進む。ステップＳ１７１４に進むと、図１０のステップＳ１００５〜Ｓ１０１０、又は図１４のステップＳ１４０５〜Ｓ１４１２の処理を、ローカルでのジョブ続行の判断処理として実行する。
以上のように本実施形態では、例えば、ステップＳ１７１４（ステップＳ１４０６、Ｓ１４０７、Ｓ１４１０〜Ｓ１４１２）の処理を行うことにより第１の取得手段、中止手段の一例が実現され、最終更新日時が、工程内容更新時間の一例となる。
そして、ステップＳ１７１５において、データ入出力部３１５は、ステップＳ１７１４での処理結果をログとして、ログ情報格納部３２３に記憶する。このとき、データ入出力部３１５は、ワークフロー管理サーバ１４０に通知せずにローカルで実施したことを、当該ログと併せてログ情報格納部３２３に残しておく。
以上のように本実施形態では、例えば、ステップＳ１７１４の処理を行うことにより記憶手段の一例が実現され、ログが、実行結果情報の一例となる。
【０１０２】
ワークフロー管理サーバ１４０がダウンすることで、テンポラリジョブＩＤが発行されたり、ログ情報格納部３２３に記憶されているログの情報が、ワークフロー管理サーバ１４０を用いずにローカルで実施したものだけになったりしている場合、次の処理を行う。すなわち、画像形成装置１１０は、ワークフロー管理サーバ１４０からの応答の有無を定期的に確認する等して、ワークフロー管理サーバ１４０の起動を確認する。そして、ワークフロー管理サーバ１４０の動作の復帰（再開）を検知したら、画像形成装置１１０は、テンポラリジョブＩＤや、ローカルで実施したログの情報を、ワークフロー管理サーバ１４０へ送信する。このとき、画像形成装置１１０は、ワークフロー管理サーバ１４０の動作が停止してから、復帰するまでの間に得られたログの情報を選択してワークフロー管理サーバ１４０へ送信することもできる。ワークフロー管理サーバ１４０は、これらの情報を受信したら、管理しているジョブ情報のテーブルを更新して、情報を最新にする。本実施形態では、例えば、このようにして画像形成装置１１０が、テンポラリジョブＩＤや、ローカルで実施したログの情報を、ワークフロー管理サーバ１４０へ送信することにより、送信手段の一例が実現される。
【０１０３】
図１９は、ワークフロー管理サーバ１４０で管理しているジョブ情報を記憶するテーブルの一例を示す図である。
図１９に示す管理テーブル１９００では、ジョブＩＤに対応するジョブがどのワークフロー定義のジョブであり、どのステップまで進んでいており、最終のステップの処理がいつ実行されたのかの情報が管理されている。更に、ワークフロー管理サーバ１４０では、各ワークフローのワークフロー定義も管理されており、ワークフロー定義は常に最新に保たれている。そのため、画像形成装置１１０のワークフロー処理ソフトウェア１８０１から、ジョブＩＤと最終処理日時の情報を取得して、ワークフローの各ステップ（ジョブ）の続行の可否の判断の要求を受けると、ワークフロー管理サーバ１４０は、次の処理を必ず行える。すなわち、ワークフロー管理サーバ１４０は、最新のワークフロー定義を使用して、処理対象のデータの最終処理日時が、実行対象のステップにおける最終更新日時よりも前であるか否かを確実に判定することができる。
【０１０４】
以上のように本実施形態では、ワークフロー管理サーバ１４０から新規ジョブＩＤが発行されない場合、画像形成装置１１０は、テンポラリジョブＩＤを発行する。その後、画像形成装置１１０は、ワークフロー管理サーバ１４０から応答があるか否かを確認し、応答があった場合であって、テンポラリジョブＩＤを発行した場合には、そのテンポラリジョブＩＤを使って、実行対象のステップの処理を行う。そして、画像形成装置１１０は、その処理のログを、テンポラリジョブＩＤと共に、ワークフロー管理サーバ１４０に送信する。
一方、ワークフロー管理サーバ１４０から応答がなかった場合、画像形成装置１１０は、第１〜第３の実施形態で説明したようにしてローカルでワークフローの処理を実行し、その処理のログと、そのログがローカルで実行されたものであることとを記憶する。その後、ワークフロー管理サーバ１４０からの応答があった場合に、画像形成装置１１０は、それらのデータを、ワークフロー管理サーバ１４０に送信する。
そして、ワークフロー管理サーバ１４０は、以上のようにして画像形成装置１１０から得られた情報を使って、ワークフローの進捗状況を管理する管理テーブル１９００の内容を更新する。
【０１０５】
したがって、通常はワークフローを管理しているワークフロー管理サーバ１４０がダウンしてしまったりメンテナンスで一時的に止まったりした場合でも、ワークフローの処理を中断することなく、いつでも可及的に適切にワークフローの処理を続行できる。更に、ワークフロー管理サーバ１４０で管理している情報を、実際のワークフローの実行結果に整合させることも可能になる。
【０１０６】
（本発明の他の実施形態）
前述した本発明の実施形態におけるワークフロー実行装置を構成する各手段、並びにワークフロー実行方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【０１０７】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１０８】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図６、図７、図１０、図１４、図１５、図１７に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１０９】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１１０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１１１】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１１２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１１３】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１１４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１１５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１１６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１１７】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０１１８】
【図１】本発明の第１の実施形態を示し、ワークフロー処理システムの全体構成の一例を示す図である。
【図２】本発明の第１の実施形態を示し、画像形成装置の構成の一例を示すブロック図である。
【図３】本発明の第１の実施形態を示し、画像形成装置で実行されるワークフロー処理ソフトウェアの機能構成の一例を示すブロック図である。
【図４】本発明の第１の実施形態を示し、画像形成装置の操作部の外観構成の一例を示す図である。
【図５】本発明の第１の実施形態を示し、キー入力部とタッチパネル部の外観構成の一例を詳細に示す図である。
【図６】本発明の第１の実施形態を示し、ワークフロー処理においてプリント処理を実行した場合の画像形成装置の処理の一例を説明するフローチャートである。
【図７】本発明の第１の実施形態を示し、ワークフロー処理においてスキャン処理を実行した場合の画像形成装置の処理の一例を説明するフローチャートである。
【図８】本発明の第１の実施形態を示し、ワークフロー処理ソフトウェアを実行するためにタッチパネル部に表示される画面の一例を示す図である。
【図９】本発明の第１の実施形態を示し、ワークフローのワークフロー定義ファイルの記載例を示す図である。
【図１０】本発明の第１の実施形態を示し、ワークフロー処理ソフトウェアの処理の一例を説明するフローチャートである。
【図１１】本発明の第１の実施形態を示し、購買申請書のテンプレートが変更された後のワークフロー定義ファイルの一例を示す図である。
【図１２】本発明の第１の実施形態を示し、ワークフローが変更された後のワークフロー定義ファイルの一例を示す図である。
【図１３】本発明の第２の実施形態を示し、ワークフロー定義ファイルの一例を示す図である。
【図１４】本発明の第２の実施形態を示し、ワークフロー処理ソフトウェアの処理の一例を説明するフローチャートである。
【図１５】本発明の第３の実施形態を示し、ワークフロー処理ソフトウェアの処理の一例を説明するフローチャートである。
【図１６】本発明の第３の実施形態を示し、ワークフロー処理システムの全体構成の一例を示す図である。
【図１７】本発明の第３の実施形態を示し、ワークフロー処理ソフトウェアの処理の一例を説明するフローチャートである。
【図１８】本発明の第３の実施形態を示し、画像形成装置で実行されるワークフロー処理ソフトウェアの機能構成の一例を示すブロック図である。
【図１９】本発明の第３の実施形態を示し、ワークフロー管理サーバで管理しているジョブ情報を記憶するテーブルの一例を示す図である。
【符号の説明】
【０１１９】
１００  ネットワーク
１１０  画像形成装置
１２０  メールサーバ
１３０  ファイルサーバ
１４０  ワークフロー管理サーバ
３００、１８０１  ワークフロー処理ソフトウェア
３１０  処理部
３１１  ＵＩ制御部
３１２  制御部
３１３  処理実行部
３１４  データ解析部
３１５  データ入出力部
３２０、１８０２  保存情報管理部
３２１  ワークフロー定義ファイル情報格納部
３２２  ボックス文書情報格納部
３２３  ログ情報格納部
【図１】
0005178293.tif 000002
【図２】
0005178293.tif 000003
【図３】
0005178293.tif 000004
【図４】
0005178293.tif 000005
【図５】
0005178293.tif 000006
【図６】
0005178293.tif 000007
【図７】
0005178293.tif 000008
【図８】
0005178293.tif 000009
【図９】
0005178293.tif 000010
【図１０】
0005178293.tif 000011
【図１１】
0005178293.tif 000012
【図１２】
0005178293.tif 000013
【図１３】
0005178293.tif 000014
【図１４】
0005178293.tif 000015
【図１５】
0005178293.tif 000016
【図１６】
0005178293.tif 000017
【図１７】
0005178293.tif 000018
【図１８】
0005178293.tif 000019
【図１９】
0005178293.tif 000020