(57)【特許請求の範囲】
【請求項１】
ネットワークに接続され、該ネットワークを介してデータを受信および送信することで複数のネットワークデバイスで実行されるワークフローの一部を構成するジョブフローを実行するネットワークデバイスであって、
特定の記憶領域へのデータの入力を検知する検知手段と、
前記検知手段により入力が検知されたデータが、ログファイルであるか否かを判断する判断手段と、
前記判断手段により前記データがログファイルでないと判断された場合に、ジョブフロー設定に基づいて前記データに対するジョブフローを実行し、ジョブフロー実行により生成されたデータを前記ジョブフロー設定に定義される出力先へ出力するジョブフロー実行手段と、
前記ジョブフロー実行手段により実行されるジョブフローが失敗した場合および前記判断手段により前記入力が検知されたデータがログファイルであると判断された場合に、前記ジョブフロー設定に定義される出力先と同一の出力先へログファイルを出力するログ出力手段と
を有することを特徴とするネットワークデバイス。
【請求項２】
前記ジョブフロー実行手段は、前記特定の記憶領域にデータが格納されたことをトリガとしてジョブフローを実行することを特徴とする請求項１に記載のネットワークデバイス。
【請求項３】
前記ジョブフロー設定は、データを送信する送信ジョブ、および該データを印刷する印刷ジョブのいずれかの設定を含むことを特徴とする請求項１又は２に記載のネットワークデバイス。
【請求項４】
請求項１乃至３のいずれか１項に記載のネットワークデバイスをネットワークで接続して構成されたワークフロー処理システム。
【請求項５】
ネットワークに接続され、該ネットワークを介してデータを受信および送信することで複数のネットワークデバイスで実行されるワークフローの一部を構成するジョブフローを実行するコンピュータを、
特定の記憶領域へのデータの入力を検知する検知手段と、
前記検知手段により入力が検知されたデータが、ログファイルであるか否かを判断する判断手段と、
前記判断手段により前記データがログファイルでないと判断された場合に、ジョブフロー設定に基づいて前記データに対するジョブフローを実行し、ジョブフロー実行により生成されたデータを前記ジョブフロー設定に定義される出力先へ出力するジョブフロー実行手段と、
前記ジョブフロー実行手段により実行されるジョブフローが失敗した場合および前記判断手段により前記入力が検知されたデータがログファイルであると判断された場合に、前記ジョブフロー設定に定義される出力先と同一の出力先へログファイルを出力するログ出力手段と
して機能させるためのプログラム。
【請求項６】
ネットワークに接続され、該ネットワークを介してデータを受信および送信することで複数のネットワークデバイスで実行されるワークフローの一部を構成するジョブフローを実行する、検知手段と判断手段とジョブフロー実行手段とログ出力手段とを有するネットワークデバイスにおいて、
前記検知手段が、特定の記憶領域へのデータの入力を検知する検知工程と、
前記判断手段が、前記検知工程により入力が検知されたデータが、ログファイルであるか否かを判断する判断工程と、
前記ジョブフロー実行手段が、前記判断工程により前記データがログファイルでないと判断された場合に、ジョブフロー設定に基づいて前記データに対するジョブフローを実行し、ジョブフロー実行により生成されたデータを前記ジョブフロー設定に定義される出力先へ出力するジョブフロー実行工程と、
前記出力手段が、前記ジョブフロー実行手段により実行されるジョブフローが失敗した場合および前記判断工程により前記入力が検知されたデータがログファイルであると判断された場合に、前記ジョブフロー設定に定義される出力先と同一の出力先へログファイルを出力するログ出力工程と
を有することを特徴とするワークフロー処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークデバイスおよびワークフロー処理システムおよびワークフロー処理方法に関し、特に、デジタル複合機などの画像形成装置を複数接続し、各画像形成装置を実行デバイスとしてワークフローを実行するワークフロー処理システムに関する。
【背景技術】
【０００２】
近年、デジタル複写機をベースにして多数の機能が付加された複合機能装置（以下デジタル複合機）が実用化されている。たとえば、デジタル複合機に元来備えられているスキャナ、プリンタを使用してファクシミリ通信を行う。また、プリンタを使用して、コンピュータから送られたコードデータをビットマップデータに展開してプリントアウトを行う。また、スキャナを使用して、スキャナから読み込んだ画像をネットワーク上に送信する、また、プリンタを使用して、ネットワーク上から配信された画像をプリントする。このような機能付加が行われている。さらに、ユーザ個人や部署ごとにデジタル複合機の記憶装置に領域を持ち、そこにプリンタ画像やスキャン画像を入れておいて好きなときに出力するボックス機能を提供するものもある。
【０００３】
こういった機能を利用して、ネットワークに接続された複数のデジタル複合機でワークフローを実現するシステムも提案されている。例えば、申請書の承認フローにおいて、まず申請者が申請書をスキャンし、承認者にデータを送る。承認者はデータを受け取ると承認処理を行い、次の承認者にデータを送る。最後の承認者は申請者に承認許可を通知するとともに申請書を指定のサーバ等へ保存するというケースが挙げられる。
【０００４】
また、各デジタル複合機で別々の機能を使って処理を実行させたいというワークフローもある。例えば、「あるデジタル複合機Ａでは文書のスキャンを実行し、次のデジタル複合機Ｂへ文書データを送信する。文書データを受信したデジタル複合機Ｃは文書データをサーバに登録し、たとえば所在情報などの登録結果を次のデジタル複合機へ送信する。その登録結果を受信したデジタル複合機は、サーバから文書データを得て紙媒体へ出力する。」というケースである。
このように複数のデジタル複合機でワークフローを実現する場合、特許文献１のようにワークフローの流れを管理するワークフロー管理サーバをおくケースがある。一方、ワークフロー管理サーバをおかない構成もある。後者の構成では、デジタル複合機内のジョブを組み合わせたジョブフローと、デジタル複合機のホットフォルダ機能を組み合わせて、ワークフローシステムを構成するということが考えられている。ホットフォルダ機能とは、ホットフォルダに対応するボックス領域に文書データが格納されると、そのホットフォルダに関連したジョブフローを実行する機能である。これらの機能を組み合わせ、デジタル複合機におけるジョブフローの最後のジョブとして、処理済みの文書データを、次の工程を実行するデジタル複合機のホットフォルダへと送信するジョブを含めておくことで、ワークフローが実現される。もっとも、ワークフローの最後の工程を実行するデジタル複合機では、受信した文書データは印刷したり、あるいは保存するというジョブが、ジョブフローの末尾の処理となる。
【特許文献１】特開２００７−３４５６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述のようなワークフロー管理サーバを持たないワークフローシステムを構築する場合、ワークフローを構成するジョブフローの途中でエラーが発生すると次のような課題があった。
【０００６】
たとえば、文書データをサーバへ登録する登録処理でエラーが発生した場合、その結果は登録処理を行ったデジタル複合機Ｂにしかわからない。そのため、そのエラーが生じると、そこでジョブフローの処理が停止する。その場合、紙媒体への出力を行うデジタル複合機Ｃではデジタル複合機Ｂからのデータや指示がないために、処理が何も行われない。その結果、ユーザは、いつまでもワークフローの出力物が印刷されない原因を知ることができない。たとえば、ユーザは、ワークフローの処理に時間がかかっているためにデジタル複合機Ｃで結果の紙が出力されないのか、それとも途中でエラーがあって紙が出力されないのかが判らないという課題がある。
【０００７】
このように、ワークフロー全体が管理されていない場合、エラーの発生の有無や、エラーが発生した場合にはエラーが生じた装置、発生したエラーの種類等、エラーに関する情報はエラーが生じた装置においてしか知り得なかった。そのため、ユーザは、エラーの可能性が疑われる場合に、全ての装置のログを参照しなければならず、エラー対応の生産性が非常に悪かった。
【０００８】
本発明は上記従来例に鑑みて成されたもので、上述した課題を解決することを目的とする。詳しくは、複数のデバイスを用いてワークフローを処理する場合に、処理途中で生じたエラーを、エラーを生じたデバイスの下流のデバイスに伝達することで、エラーの発生やエラーの内容をユーザが迅速に把握できる画像形成装置およびワークフロー処理システムおよびワークフロー処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明は以下の構成を備える。すなわち、ネットワークに接続され、該ネットワークを介してデータを受信および送信することで複数のネットワークデバイスで実行されるワークフローの一部を構成するジョブフローを実行するネットワークデバイスであって、
特定の記憶領域へのデータの入力を検知する検知手段と、
前記検知手段により入力が検知されたデータが、ログファイルであるか否かを判断する判断手段と、
前記判断手段により前記データがログファイルでないと判断された場合に、ジョブフロー設定に基づいて前記データに対するジョブフローを実行し、ジョブフロー実行により生成されたデータを前記ジョブフロー設定に定義される出力先へ出力するジョブフロー実行手段と、
前記ジョブフロー実行手段により実行されるジョブフローが失敗した場合および前記判断手段により前記入力が検知されたデータがログファイルであると判断された場合に、前記ジョブフロー設定に定義される出力先と同一の出力先へログファイルを出力するログ出力手段とを有する。
【発明の効果】
【００１０】
本発明によれば、機器間をまたがるワークフロー中の機器で発生したエラーをユーザに伝えることができる。さらに、エラーの内容をワークフローで処理される文書データと同じ径路で機器に伝播させることで、文書データの処理が正常に完了する時刻よりも早く、ワークフローの終端の機器で、ユーザにエラーを通報することができる。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明を適用可能なワークフローシステムの全体構成を示すブロック図である。図１に示すように、デジタル複合機１１０、１２０および１３０は、イーサネット(登録商標)などからなるＬＡＮ１００に接続されている。ただし、本発明におけるシステムにおいては、これらの接続数に限られることはない。また、本実施形態では接続方法としてＬＡＮを適用しているが、これに限られることはない。例えば、ＷＡＮ（公衆回線）などの任意のネットワーク、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。また、本実施形態では、デジタル複合機がジョブフローを実行するネットワークデバイスであるが、汎用コンピュータ等、これ以外のデバイスであってもよい。ただい後述の通りジョブフローを実行する機能と、ホットフォルダ機能とを有する必要がある。
【００１２】
デジタル複合機１１０、１２０および１３０は、それぞれがコピー機能、ファクシミリ機能を有する。それとともに、原稿画像を読み取り、読み取って得られた画像データ（文書データと呼ぶ場合もある）をＬＡＮ１００上の指定した装置に送信するデータ送信機能を有する。また、画像を添付ファイルとしてＥメールを作成し、メールサーバ（不図示）を利用してＥメールを送信することができる。またＰＤＬ（Page Description Language）解釈機能とレンダリング機能とを有し、ＬＡＮ１００上に接続されているコンピュータ（不図示）からＰＤＬデータを受信して印刷することが可能である。また、デジタル複合機１１０で読み取った画像データや、ＬＡＮ１００上に接続されているコンピュータから指示されたＰＤＬデータを、デジタル複合機１１０内のハードディスクの特定領域に保存することが可能である。また原稿画像を読取り、ハードディスクにデジタル画像データとして保存することも可能である。またハードディスクに保存されたデジタル画像データを画像として印刷することが可能である。
【００１３】
デジタル複合機１１０は、図２に示すように次の構成要素から構成される。画像入力デジタル複合機であるスキャナ部１１２、画像出力デジタル複合機であるプリンタ部１１３、デジタル複合機１１０の制御を司るコントローラ（Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）２００（図２）、および操作部１１１である。これはデジタル複合機１２０、１３０も同様である。
【００１４】
スキャナ部１１２は、原稿上の画像を露光走査して得られた反射光をＣＣＤに入力することで画像の情報を電気信号に変換する。さらに電気信号をＲ，Ｇ，Ｂ各色からなる輝度信号に変換し、当該輝度信号をデジタル画像データとしてコントローラ２００に対して出力する。なお原稿は原稿フィーダにセットされ、ユーザが操作部１１１から読み取り開始を指示すると、コントローラ２００からスキャナ部１１２に原稿読み取り指示が与えられる。スキャナ部１１２は、この指示を受けると原稿フィーダから原稿を１枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は原稿フィーダによる自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であってもよい。
【００１５】
プリンタ部１１３は、コントローラ２００から受取った画像データを用紙上に画像として形成する画像形成デジタル複合機である。なお、本実施形態において画像形成方式は感光体ドラムや感光体ベルトを用いた電子写真方式となっているが、これに限られることはない。例えば、微少ノズルアレイからインクを吐出して用紙上に印字するインクジェット方式などでも適用可能である。
【００１６】
コントローラ２００は操作部１１１、スキャナ部１１２、プリンタ部１１３と電気的に接続されている一方、ＬＡＮ１００にもネットワークインターフェース２０６を介して接続されている。すなわち、ＬＡＮ１００を経由して他のデジタル複合機やサーバ、クライアントＰＣなどとも接続されている。これにより画像データやデジタル複合機情報の入出力が可能となっている。
【００１７】
ＣＰＵ２０１は、ＲＯＭ２０２に記憶された制御プログラム等に基づいて接続中の各種デジタル複合機へのアクセス及び他のデジタル複合機からのアクセスを統括的に制御する。それと共に、コントローラ２００内部で行われる各種処理についても統括的に制御する。この制御には、後述の図７乃至図１０の手順を実現するためのプログラムの実行も含む。
【００１８】
ＲＯＭ２０２には装置のブートプログラムや、図７乃至図１０の手順を実現するためのプログラムなどが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するためのメモリでもある。ＲＡＭ２０３は、電源のバックアップ等により記憶した内容を装置本体の電源オフ後も保持しておく領域と、電源オフ後には記憶した内容が消去されてしまう領域により構成されている。
【００１９】
ＨＤＤ２０４はハードディスクドライブであり、システムソフトウェアや画像データを格納することが可能となっている。
【００２０】
操作部Ｉ／Ｆ２０５は、システムバス２１１と操作部１１１とを接続するためのインターフェース部である。操作部Ｉ／Ｆ２０５は、操作部１１１に表示するための画像データをシステムバス２１１から受取り操作部１１１に出力すると共に、操作部１１１から入力された情報をシステムバス２１１へと出力する。
【００２１】
ネットワークＩ／Ｆ２０６はＬＡＮ１００及びシステムバス２１１に接続し、情報の入出力を行う。モデム２０７はＷＡＮ（不図示）及びシステムバス２１１に接続しており、情報の入出力を行う。
【００２２】
スキャナＩ／Ｆ２０８は、スキャナ部１１２から受取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナＩ／Ｆ２０８は、受取った画像データがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定する機能を持つ。そして、その判定結果を画像データに付随させる。こうした付随情報を属性データと称する。
【００２３】
画像形成部２０９は画像データの方向変換、画像圧縮、伸張部などをおこなう。また、ＨＤＤ２０４に保存されている画像同士を合成して一枚の画像にすることが可能である。
【００２４】
プリンタＩ／Ｆ２１０は、画像形成部２０９から送られた画像データを受取り、この画像データに付随させられている属性データを参照しながら画像データに画像形成を施す。画像形成後の画像データは、プリンタ部１４に出力される。
【００２５】
なお、デジタル複合機１１０に対するユーザ指示やユーザへの情報提示は、例えば、操作部１１１を介して行うようにしてもよいし、ＬＡＮ１６０を介して接続されたクライアント１５０を介して行うようにしてもよい。
【００２６】
図３は、デジタル複合機の各種機能（以下ジョブ）の制御にかかわる、デジタル複合機１１０のソフトウェアモジュールの構成を示した図である。これらソフトウェアモジュールはＣＰＵ２０１により実行される。
【００２７】
ＵＩ部３０１は操作部Ｉ／Ｆ２０５を介して操作部１１１に表示を行ったり、操作部１１１からのユーザの入力を処理したりするソフトウェアモジュールである。フォルダ監視部３０２はＨＤＤ２０４内の特定の記憶領域、たとえばボックス領域のファイルを監視するためのソフトウェアモジュールである。具体的には、ホットフォルダとして指定されているフォルダにデータファイルが投入（すなわち格納）されたことを監視し、投入を検出したなら、ホットフォルダに関連づけられたジョブフローの実行を開始させる。
【００２８】
通信部３０３はネットワークＩ／Ｆ２０６やモデム２０７を操作して通信を行うソフトウェアモジュールである。
【００２９】
ジョブフロー管理部３０４は、ジョブフローの設定ファイルを解析し、それに対応した処理依頼をジョブ実行部に命令するソフトウェアモジュールである。ジョブ実行部３０５は、各種ジョブの設定情報に基づいてジョブを実行するためのソフトウェアモジュールである。なお本実施形態では、ワークフローは、連続処理されるジョブフローとして実現されるために、ワークフローに含まれるジョブフローの設定は、ワークフローの設定すなわちワークフロー設定の一部を構成する。
【００３０】
ジョブログ管理部３０６は、ジョブ実行部３０５が実行したジョブのログを管理するためのソフトウェアモジュールである。
【００３１】
各種ジョブはＵＩ部、通信部、フロー管理部からの要求により発生する。例えばＵＩ部でユーザからコピーやスキャンの指示があった場合、ＵＩ部４０１からコピーやスキャンのそれぞれのジョブ設定がジョブ実行部４０７に渡される。同様に、通信部を介して他のデジタル複合機やＰＣからジョブ設定が渡された場合も同様に処理される。なおＣＰＵ２０１により、各ソフトウェアモジュールがどのように連携してジョブフローを実行するかは後述する。
【００３２】
以下、「デジタル複合機１１０で画像のスキャンを行い、デジタル複合機１２０に送信する。」「デジタル複合機１２０のホットフォルダでデジタル複合機１１０から文書を受信し、データベースに文書を格納、格納結果をデジタル複合機１３０に送信する。」「デジタル複合機１３０のホットフォルダでデジタル複合機１２０から文書を受信し、受信した文書を印刷する。」というジョブフローの組み合わせによるワークフローを元に、エラー処理の流れを説明する。
【００３３】
＜ジョブフロー設定情報の例＞
図４はデジタル複合機１１０にあらかじめ設定してあるジョブフローの設定を記載したジョブフロー設定ファイル（設定情報）の例である。図４は「デジタル複合機１１０で画像のスキャンを行い、デジタル複合機１２０に送信する。」というジョブフローの設定例を示している。本実施形態では、ジョブフロー設定ファイルはＸＭＬ形式で記載するものとする。ただしＸＭＬ形式でなくても、独自のフォーマットを用いて記載してもよい。
【００３４】
タグ４０１はジョブフローの概要情報を示す。図４の例では、ジョブフローのＩＤ（「１２３」）、ジョブフローの名称（「購買申請１」）、コメント（未記入）、作成の日付（未記入）そしてジョブフロー中のエラーの通知を行うかどうかのフラグ（「ｔｒｕｅ」）などからなる。
【００３５】
タグ４０２は、ジョブフローに含まれる先頭のジョブとしてスキャンジョブを示している。ジョブフローに含まれる単体のジョブをジョブフローの要素ジョブと呼ぶことにする。このタグの子要素で読み取りの設定が記載するが、ここでは省略している。タグ４０３はスキャンジョブに続く要素ジョブとして送信ジョブを示している。送信ジョブの属性として、このジョブはエラー時の通知を行うジョブであることを示すフラグ（「ｎｏｔｉｆｙＬｏｇ＝“ｔｒｕｅ”」）が設定されている。また、子要素４０４で送信先としてＤｅｖｉｃｅＢすなわちデジタル複合機１２０を指定し、子要素４０５でさらにその「HotFolderB」という共有フォルダを指定している。すなわち、送信先はデジタル複合機１２０のHotFolderBというフォルダであることが定義されている。その他、送信に必要な設定が記載されている。なお、ジョブフローの設定XML内のジョブタグの出現順番は、ジョブの処理順番を示しているものとする。
【００３６】
図５はデジタル複合機１２０にあらかじめ設定してあるジョブフロー設定ファイルの例である。このジョブフロー設定ファイルは、「デジタル複合機１２０のホットフォルダでデジタル複合機１１０から文書を受信し、データベースに文書を格納、格納結果をデジタル複合機１３０に送信する」というジョブフローの設定例を示している。
【００３７】
タグ５０１はタグ４０１と同様にジョブフローの概要情報を示す。タグ５０２はホットフォルダからの入力ジョブを示している。このタグの子要素ではＰＤＦフォーマットのファイルが「HotFolderB」という名前のフォルダに入力された場合にジョブフローでの対象文書とすることを示している。
【００３８】
タグ５０３はデータベースへの保存ジョブを示している。本例では、デジタル複合機１２０のＨＤＤにデータベースが構築されているものとする。このタグの子要素では現在対象としている文書をデータベースに保管するための設定を記載している。
【００３９】
タグ５０４は文書を作成するジョブを示している。本例では、データベースへの保存結果をあらかじめボックス文書として格納されている「結果レポート」というテンプレートと合成することを示している。また、作成した文書をジョブフローでの対象文書に変更することを示している。
【００４０】
タグ５０５は送信ジョブを示している。送信ジョブの属性として、このジョブはエラー時の通知を行うジョブであることを示すフラグが設定されている。また、子要素として送信先としてＤｅｖｉｃｅＣすなわちデジタル複合機１３０の「HotFolderC」という共有フォルダを指定している。その他、送信に必要な設定が記載されている。
【００４１】
図６はデジタル複合機１３０にあらかじめ設定してあるジョブフロー設定ファイルの例である。「デジタル複合機１１０で画像のスキャンを行い、デジタル複合機１２０に送信する。」という設定を示している。本実施形態では、ジョブフロー設定ファイルはＸＭＬ形式で記載するものとする。ただしＸＭＬ形式でなくても、独自のフォーマットを用いて記載してもよい。
【００４２】
タグ６０１はタグ４０１および５０１と同様にジョブフローの概要情報を示す。タグ６０２はホットフォルダからの入力ジョブを示している。このタグの子要素ではＰＤＦフォーマットのファイルが「HotFolderC」という名前のフォルダに入力された場合にジョブフローでの対象文書とすることを示している。
【００４３】
タグ６０３は印刷ジョブを示している。子要素で印刷に必要な設定が記載されている。本例ではジョブの例としてファイル送信やサーバに格納としているが、FAX送信、Ｅメール送信といったタスクの設定も可能である。
【００４４】
以上のように、各ネットワークデバイスには、予め作成されたジョブフロー設定ファイルが保存されている。そしてジョブフロー設定ファイルには、ジョブフローのトリガとなるイベントと、ジョブフローを構成する各要素ジョブおよびその実行順序が定義されている。
【００４５】
＜ジョブフローの実行手順＞
次に、ワークフローを開始するために、デジタル複合機１１０でジョブフローを実行する手順を説明する。デジタル複合機１１０では、ＵＩ部３０１の処理により、操作部１１１にデジタル複合機１１０に設定されているジョブフローの一覧を表示する。ユーザがデジタル複合機１１０の操作部１１１にて一覧のうちジョブフローの実行を指示すると、ＵＩ部３０１からジョブフロー管理部３０４にジョブフローの実行の命令がなされる。本例では、図４で説明したジョブフローの実行を指示された場合として説明を行う。
【００４６】
図７は、デジタル複合機１１０で実行されるジョブフローの処理の流れを示すフローチャートである。ステップＳ７０１では、ジョブフロー管理部３０４はジョブフローの設定を複数の要素ジョブの設定に分割する。図４の例の場合、スキャンジョブの設定と送信ジョブの設定の２つに分割を行う。
【００４７】
ステップＳ７０２では、ジョブフローに定義されたすべての要素ジョブを終了したかどうかを判断する。すべてのジョブを終了した場合は、ジョブフローの処理を終了する。そうでない場合はステップＳ７０３に遷移する。
【００４８】
ステップＳ７０３では、ジョブフロー管理部３０４はジョブフローに設定されている順番にジョブ設定をジョブ実行部３０５に渡してジョブを実行させる。ジョブ実行部３０５はジョブの設定を元に、たとえばスキャンジョブであればスキャナ部１１２を、印刷ジョブであればプリンタ部１１３を操作するなどしてジョブを実行する。これらのジョブの実行についての詳細は省略する。ジョブが終了するとジョブの結果をジョブログ管理部３０６に通知する。
【００４９】
ステップＳ７０４では、ジョブフロー管理部３０４がジョブの結果をジョブログ管理部３０６に問い合わせて、ジョブが正常終了したかどうかを判断する。ジョブが正常終了した場合には、ステップＳ７０２に遷移して、ジョブフローを続行する。ジョブが正常終了しなかった場合には、ステップＳ７０５に遷移して、ジョブフローのエラー処理を行う。ステップＳ７０５のジョブフローのエラー処理については後述する。
【００５０】
以上の流れにより、デジタル複合機１１０により図４に示すジョブフローが実行され、デジタル複合機１２０のホットフォルダに文書が送られる。
【００５１】
ただしこれはデジタル複合機１１０により図４に示すジョブフローを実行した例であって、デジタル複合機１１０と同じ構成を有するデバイスで有れば同様の手順で図４に示すジョブフローを実行可能である。また、ジョブフローの内容も図４のものに限られない。図４のジョブフローは、ホットフォルダへのデータファイルの格納以外のイベントをトリガとして実行開始され、その最終段において、他のデジタル複合機のホットフォルダへと処理後のデータを送信する。すなわち、図４のジョブフローは、ワークフローの初期の位置を占める始端ジョブフローともいえる。
【００５２】
次に、デジタル複合機１２０での図５に示すジョブフローの実行処理を説明する。デジタル複合機１２０のフォルダ監視部３０２がフォルダの監視を実行しているものとする。
【００５３】
図８はフォルダ監視からジョブフロー実行までの流れを示すフローチャートである。ステップＳ８０１では、フォルダ監視部３０２がホットフォルダとして公開しているフォルダを監視する。ステップＳ８０２では、監視しているフォルダにファイルが増えたかどうかを判断する。ファイルが増えている場合には、ステップＳ８０３に遷移し、そうでない場合はステップＳ８０１に遷移して、フォルダの監視を続行する。
【００５４】
ステップＳ８０３では、フォルダ監視部３０２がジョブフロー管理部３０４にファイルが増えたホットフォルダに関連したジョブフローが存在するかどうかの確認を行う。フォルダに関連したジョブフローがある場合にはステップＳ８０４に遷移し、そうでない場合にはステップＳ８０１に遷移してフォルダの監視を続行する。あるホットフォルダに関連するジョブフローとは、そのホットフォルダの識別子をその要素ジョブの設定中に記述されたジョブフローである。
【００５５】
ステップＳ８０４では、増えたファイルが、ログファイルなのか否かを判断する。本例ではログファイルはあらかじめデジタル複合機共通で定められたフォーマットとする。増えたファイルがログファイルであると判断した場合は、ステップＳ８０６に遷移し、そうでない場合はステップＳ８０５に遷移する。
【００５６】
ステップＳ８０５では、フォルダ監視部３０２がジョブフロー管理部３０４にジョブフローの実行を指示する。ジョブフローの実行処理は図７のフローと同じである。図５のジョブフローの例であれば、記載の最初のジョブであるホットフォルダの入力ジョブを実行し、フォルダに増えたファイルが設定されているフォーマットであれば成功となる。そして、入力されたファイルのデータベース登録処理ジョブ、結果の文書作成ジョブ、デジタル複合機１３０への結果文書の送信ジョブが実行される。
【００５７】
ステップＳ８０６では、ホットフォルダにログが送られてきた場合の処理として、ジョブフローエラー処理を実行する。この処理は図７のステップＳ７０５の処理と同等であり、後述する。
【００５８】
以上が、デジタル複合機１２０でのホットフォルダの監視からジョブフロー実行の流れである。同様にデジタル複合機１３０での図６のジョブフローの実行も実現できる。
【００５９】
以上はデジタル複合機１２０により図５に示すジョブフローを実行した例であって、デジタル複合機１２０と同じ構成を有するデバイスで有れば同様の手順でジョブフローを実行可能である。また、ジョブフローの内容も図５や図６のものに限られない。また、ワークフローの先頭のジョブフローである図４のジョブフローと、ワークフローの末尾のジョブフローである図６のジョブフローとの間に、複数のデバイスそれぞれによって実行される複数のジョブフローが介在してもよい。
【００６０】
図５のジョブフローは、ホットフォルダへのデータファイルの格納をトリガとして実行が開始され、その最終段において、他のデジタル複合機のホットフォルダへと処理後のデータを送信することである。すなわち図５のジョブフローは、ワークフローの中間的な位置を占める中間ジョブフローともいえる。同様に図６のジョブフローは、ワークフローの終了段の位置を占める終端ジョブフローともいえる。
【００６１】
このように、本実施形態においては、ワークフローは、少なくとも始端ジョブフローと終端ジョブフローとを含み、その間に任意の数の中間ジョブフローを含む。そして各ジョブフローは、ひとつのデバイス、たとえばデジタル複合機等の画像形成装置等により実行される。
【００６２】
＜ジョブフローのエラー処理＞
次に、ジョブフローのエラー処理の説明を行う。この処理は、図７のステップＳ７０５と図８のステップＳ８０６の処理である。つまり、デジタル複合機１１０、１２０そして１３０のジョブフロー中にジョブが失敗した場合、デジタル複合機１２０、１３０のホットフォルダにログが送られてきた場合の処理に相当する。
【００６３】
図９は、ジョブフローのエラー処理を示すフローチャートである。ステップＳ９０１では、ジョブフロー管理部３０４は失敗したログのエラーログを取得する。ジョブフロー中にジョブが失敗した場合はジョブログ管理部３０６からエラーログを取得し、ホットフォルダにログファイルが増えた場合には、ホットフォルダから増えたログファイルを読み取り、エラーログを取得する。
【００６４】
ステップＳ９０２では、対象のジョブフローを解析する。図１０はジョブフロー解析の流れを示すフローチャートである。ステップＳ１００１では、対象のジョブフローに含まれるジョブを抽出する。ステップＳ１００２では、ステップＳ１００１で抽出したジョブをすべてチェックしたかどうかを判断する。すべてチェックした場合にはステップＳ１００５に遷移し、そうでない場合にはステップＳ１００３に遷移する。ステップＳ１００３では、チェック対象のジョブがログを送るべきジョブかどうかを判断する。すなわち本例では、ジョブがエラー終了し、かつジョブフロー設定ファイルにログを送るとの設定がされている場合に、ログを送ると判定される。本例では、ログの通知設定については、ジョブの設定に通知すべきかどうかのフラグがジョブフロー設定ファイルに設定されているかどうかを基に判断を行う。たとえば図４のタグ４０３に記述されたｎｏｔｉｆｙＬｏｇ要素がフラグであり、値がｔｒｕｅであれば通知し、ｆａｌｓｅであれば通知しないとの設定であると判定する。また、ジョブのエラーについては、ジョブフローに含まれるジョブの中で、正常終了したジョブかどうかを基に判断を行う。これらの判断基準はあらかじめワークフロー管理部の設定としてあらかじめ設定するように構成してもよい。この際、ジョブの種類によって設定を変更可能とするように構成してもよい。また、ジョブフローの設定としてジョブフローの定義ファイルに記載するように構成してもよい。その際、ジョブ単位で制御を可能とするように構成してもよい。
【００６５】
本例では、たとえばデジタル複合機１２０のデータベースへの保存処理でサイズオーバのエラーでジョブがエラー終了した場合、図５のジョブフローのうちタグ５０５で示される送信ジョブがログを出力するジョブであると判断することになる。これはｎｏｔｉｆｙＬｏｇ要素が含まれており、しかもその値がｔｒｕｅであるためである。また、デジタル複合機１３０のホットフォルダでログファイルを受信した場合は、図６のジョブフローのうち、タグ６０３で示される印刷ジョブがログを出力するジョブであると判断する。
【００６６】
ログを送るべきジョブであれば、ステップＳ１００４に遷移し、そうでなければステップＳ１００２に遷移し、チェックを継続する。ステップＳ１００４では、ログを送る出力先を判別（あるいは決定）する出力先判別の処理を行う。出力先はジョブの種類により異なり、送信ジョブであれば送信先を出力先とする。また、印刷ジョブであれば印刷ジョブログ（あるいは印刷デバイス（プリンタ部））を出力先とする。ジョブの種類と出力先の判断ロジックはあらかじめジョブフロー管理部に設定されているものとする。
【００６７】
ステップＳ１００５では、ログの出力方法を決定する。これもステップＳ１００４と同様にジョブの種類により異なり、送信ジョブであれば、送信に用いる送信手段を出力方法とする。また、印刷ジョブであれば印刷ジョブログフォーマットでの書き出しを出力方法とする。次に、ステップＳ１００２に遷移し、チェックを継続する。
【００６８】
ステップＳ１００６では、ログの出力先と出力方法をチェックし、同じ出力先に同じ出力方法となる場合には、１つのログにまとめる処理を行う。
【００６９】
以上が、ジョブフロー解析の流れである。この処理によりジョブフローでのエラーログの通知先が決定される。本例では送信先が１つの例であるが、送信ジョブが２つある場合は、ジョブフローの設定によって２つの通知先に通知する/どちらかの通知先に通知する/両方に通知しないといった制御が可能である。
【００７０】
ステップＳ９０３では、ステップＳ９０２で決定したログの出力先すべてに出力を行ったかどうかを判別する。すべての出力先に行った場合は処理を終了する。そうでない場合にはステップＳ９０４に遷移する。
【００７１】
ステップＳ９０４では、ログの出力先に対して出力処理（ログ出力）を行う。ログの出力先がログの送信であれば、ジョブフロー管理部３０４はジョブ実行部３０５にログファイルの送信ジョブを実行させる。ログの出力先が印刷ジョブログであればジョブフロー管理部３０４はジョブログ管理部３０６にジョブログを残すように指示を行う。
【００７２】
以上が、ジョブフローのエラー処理になる。たとえばデジタル複合機１２０のデータベースへの保存処理でサイズオーバのエラーでジョブがエラー終了した場合を想定する。この場合、ジョブログは、デジタル複合機１２０からデジタル複合機１３０に送信される。そして、デジタル複合機１３０の印刷ジョブのジョブログに、保存処理でサイズオーバのエラーがでたために印刷ができなかったということを示すログが残ることになる。またそのログは印刷物として出力される。その結果、ワークフローの最終段のデジタル複合機による出力を待つユーザは、出力物の代わりにその装置から出力されるジョブのエラーログを入手し、ワークフロー処理途中のエラーの発生を知ることができる。
【００７３】
以上の説明のように、ジョブフローをつなげたワークフローを実行し、途中の機器でエラーが発生しても、ユーザが結果を認識できる機器において、途中のエラーを知ることが可能となる。たとえば、図４から図６のジョブフローをつなげたワークフローをデジタル複合機１１０で実行し、デジタル複合機１２０でエラーが発生した場合を想定する。この場合、ユーザは正常系の場合に印刷物を見るデジタル複合機１３０において、印刷ジョブログでエラーの原因とエラーの発生場所を知ることが可能となる。しかも、ワークフローを通るデータの径路とエラーログの径路とが同一であるから、エラー出力のタイミングは、正常処理されたデータの出力時期と同じか、あるいはそれよりも早い。そのため、エラーの発生や発生箇所を知るために長時間を要することを防止できる。
【００７４】
また、本例ではすべてのジョブでエラーが発生した場合に、ジョブエラー処理を行っているが、特定のジョブでのエラーの場合には通知しないように構成することも可能である。たとえば、ジョブフローの設定ファイルにエラーを無視するという意味の属性を設定する。そしてステップＳ７０４において、その属性が有効であるジョブにエラーが生じた場合には、エラーを無視するという処理を行うことで可能である。これにより、ジョブフローの最初のスキャンジョブで失敗した場合等、ユーザがその場でエラーを知ることができる処理に関しては、最終のジョブのログにエラーを残さないようにすることが可能である。
【００７５】
本発明の目的は、上述した実施形態で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が、そのプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶した記憶媒体も本発明の一つを構成することになる。
【００７６】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７７】
またコンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づきコンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００７８】
更に、次の場合も含まれる。記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれている。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７９】
【図１】ワークフローシステムの全体構成を示す図、
【図２】デジタル複合機のハードウェア構成を示す図、
【図３】デジタル複合機のソフトウェア構成を示す図、
【図４】ジョブフロー設定の例１を示す図、
【図５】ジョブフロー設定の例２を示す図、
【図６】ジョブフロー設定の例３を示す図、
【図７】ジョブフロー実行のフローチャート、
【図８】ホットフォルダのフォルダ監視のフローチャート、
【図９】ジョブフローのエラー処理のフローチャート、
【図１０】ジョブフロー解析のフローチャート。
【図１】
0005300332.tif 000002
【図２】
0005300332.tif 000003
【図３】
0005300332.tif 000004
【図４】
0005300332.tif 000005
【図５】
0005300332.tif 000006
【図６】
0005300332.tif 000007
【図７】
0005300332.tif 000008
【図８】
0005300332.tif 000009
【図９】
0005300332.tif 000010
【図１０】
0005300332.tif 000011