説明

ワークフロー実行装置及びワークフロー実行方法

【課題】ワークフローの処理中にエラーが発生したとき、各機器への負荷を分散しながらジョブの処理の適切な中断を行う。
【解決手段】複数の処理工程を、処理順序を定義したワークフロー設定情報に従って複数の機器によって処理するとき、第1の機器にエラーが発生したとき、実行中の処理工程を中断する工程と、エラーが発生した第1の機器での処理工程を含むワークフロー設定情報を検索する工程S1002と、検索されたワークフロー設定情報の処理順序に基づいて、前の処理工程が実行された第2の機器を特定する工程S1004と、第1の機器にエラーが発生した旨の通知を第2の機器に通知する工程S1005とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の処理工程から構成されるジョブをワークフロー設定情報に従って処理するワークフロー実行装置およびワークフロー実行方法に関するものである。
【背景技術】
【0002】
従来、デジタル複写機にプリンタ、スキャナ、ファクシミリ等の機能を付加した複合機能装置(デジタル複合機)が実用化されている。従来のデジタル複合機は、本来備えているスキャナ及びプリンタを使用してファクシミリ通信を行う。また、プリンタを使用して、コンピュータから送られたコードデータをビットマップデータに展開して印刷を行う。また、スキャナを使用して、スキャナから読み込んだ画像をネットワークにより送信する。また、プリンタを使用して、ネットワークを通じて配信された画像を印刷する。
【0003】
従来のデジタル複合機は、その記憶装置内にユーザ個人や部署ごとに記録領域を割り当て、ユーザはその記録領域に画像データを格納しておき、適宜出力する、いわゆるボックス機能を有しているものもある。
【0004】
従来、ネットワークに接続された複数のデジタル複合機でワークフローを実現するワークフロー実行装置が提案されている。従来のワークフロー実行装置では、例えば申請書の承認フローにおいて、申請者は申請書データを承認者のボックスへ送信する。承認者はデータを受け取ると承認処理を行い、次の承認者にデータを送信する。最後の承認者は申請者に承認許可を通知するとともに、申請書を指定のサーバに保存する。
【0005】
従来のワークフロー実行装置は、ネットワークに接続された各機器で別々の機能を使って処理を実行することも可能である。例えば、第1の機器ではスキャンを実行し、第2の機器へスキャンデータを送信する。スキャンデータを受信した第2の機器はOCR等の画像解析処理を実行し、第3の機器へその結果を送信する。その結果を受信した第3の機器は、紙媒体への出力やサーバへの登録処理を行う。
【0006】
従来のワークフロー実行装置では、ワークフローを集中管理するサーバを設け、そこで処理を実行する各機器及びジョブの状態を管理するものが一般的に知られている。いずれかの機器でエラーが発生した場合は、サーバがジョブの一時保存を行い、ステータス監視を行うことによって、各機器への負荷を低減させている(特許文献1参照)。
【0007】
従来のワークフロー実行装置では、また、ワークフローの処理においてエラーが発生した場合、代替機器に処理を代替することでワークフローを継続するものが提案されている(特許文献2参照)。
【特許文献1】特開2004−280665号公報
【特許文献2】特開2006−338544号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、従来のワークフロー実行装置では、ワークフローを処理するいずれかの機器にエラーが発生したとき、ワークフローの処理が止まってしまう。申請書の承認フローにおいては、エラーとは、例えば、使用者を認証するための認証サーバの停止、ネットワークの障害による申請書の送信不能、又は記憶装置の使用量が予め設定された閾値を越えたことによる記録容量不足等である。各機器が異なる機能を使って処理を実行するワークフローにおいては、エラーとは、例えば、適切な用紙が用意されていなかったことによる印刷不能、トナー不足による印刷不能等である。
【0009】
機器にエラーが生じた場合、エラーが復旧するまでワークフローのジョブを待機状態にし、復旧時にジョブを再開することも考えられる。しかし、他のワークフローの処理がエラーの復旧を待たずに次々と実行された場合、エラーが発生した機器に大量のジョブが蓄積され、負荷がかかるという第1の問題があった。
【0010】
各機器への付加を軽減するためにワークフローを集中管理するサーバを設けた従来のワークフロー実行装置においても、サーバを別途設ける必要があるために、システムの構築及びメンテナンスが煩雑となるという第2の問題があった。
【0011】
エラーが発生した後もワークフローの処理を継続できる従来のワークフロー実行装置においても、別途に代替機器を設ける必要であり、その構築に煩雑な作業を要し、且つ代替機器はエラーが発生した機器と同じ構成でなければ、完全に同じ処理を実行できないという第3の問題があった。
【0012】
本発明の課題は、ワークフローの処理中にエラーが発生した場合であっても、各機器への負荷を分散しながらジョブの処理の適切な中断を行うことができるワークフロー実行装置およびワークフロー実行方法を提供することである。
【課題を解決するための手段】
【0013】
上記課題を解決するため、本発明に係るワークフロー実行装置は、複数の処理工程を、処理順序を定義したワークフロー設定情報に従って処理するものであって、前記複数の処理工程のいずれかにエラーが発生したときエラーが発生した処理工程を含むワークフロー設定情報を検索する検索手段と、検索されたワークフロー設定情報の処理順序に基づいて、前の処理工程が実行された他の機器を特定する機器特定手段と、エラーが発生した旨の通知を他の機器に通知するエラー発生通知手段とを備えることを特徴とする。
【0014】
本発明に係るワークフロー実行装置は、さらに、エラーが発生している旨の通知を受け取る通知受信手段と、検索手段によって検索されたワークフロー設定情報に含まれる処理工程が実行中であるか否かを判別する判別手段とを備え、通知受信手段が通知を受け取ったとき、判別手段によって実行中と判別された処理工程を処理中断手段が中断することを特徴とする。
【発明の効果】
【0015】
本発明によれば、ワークフローの処理中のある機器エラーが発生した場合、ある機器から他の機器にエラーが発生した旨の通知が送信されるため、他の機器におけるジョブの処理を中断することによって、エラーによって生じるシステム全体にかかる負荷を軽減することができる。
【発明を実施するための最良の形態】
【0016】
以下、本発明に係るワークフロー実行装置およびワークフロー実行方法を実施するための最良の形態について図面等を参照して説明する。
<第1実施形態>
図1は、本発明の第1実施形態に係るワークフローシステム100の全体の構成を示す。ワークフローシステム100は、複数のデジタル複合機130と、複数のデジタル複合機130を接続するネットワーク140で構成される。
【0017】
図2は、本発明に係るワークフロー実行装置であるデジタル複合機130の構成を示すブロック図である。デジタル複合機130は、複数の処理工程から構成されるジョブを、その処理順序を定義したワークフロー設定情報に従って処理する。デジタル複合機130は、操作部134と、コントローラ133と、画像を入力するためのスキャナ部131と、画像を出力するためのプリンタ部132とから構成されている。
【0018】
コントローラ133は、スキャナ部131及びプリンタ部132に接続されると共に、ネットワーク(LAN)140及び公衆回線(WAN)150に接続されている。コントローラ133は、画像情報やデバイス情報の入出力の制御を行う。
【0019】
コントローラ133は、CPU200と、RAM201と、ROM202と、ハードディスクドライブ(以下、HDD)203とを備えている。CPU200はシステム全体を制御する。RAM201は、CPU200が動作するためのシステムワークメモリであり、入力された画像データを一時的に記憶するための画像メモリ(バッファメモリ)である。ROM202はブートROMであり、システムのブートプログラムが格納されている。HDD203は、システムソフトウェア、画像データ、ワークフロー設定情報を格納する。
【0020】
コントローラ133は、さらに、操作部I/F204と、ネットワーク部205と、モデム206と、システムバス207とを備えている。操作部I/F204は、操作部134とのインターフェース部であり、操作部134に表示する画像データや画像データの情報を操作部134に対して出力する。操作部I/F204は、操作部134からオペレータが入力した情報を、CPU200に伝達する。ネットワーク部205は、ネットワーク(LAN)140に接続されて、情報の入出力を行う。モデム206は、公衆回線(WAN)150に接続され、画像情報の入出力を行う。システムバス207は、CPU200と、RAM201と、ROM202と、HDD203と、操作部I/F204と、ネットワーク部205と、モデム206とを接続している。
【0021】
コントローラ133は、さらに、イメージバス(Image Bus)I/F208と、画像バス209と、RIP(ラスタイメージプロセッサ)210と、デバイスI/F211と、スキャナ画像処理部214と、プリンタ画像処理部215とを備えている。イメージバスI/F208は、システムバス207と画像データを高速で転送する画像バス209とを接続し、データ構造を変換するバスブリッジである。画像バス209は、PCIバスまたはIEEE1394で構成される。
【0022】
ラスタイメージプロセッサ(RIP)210は、PDLコードをビットマップイメージに展開する。デバイスI/F211は、スキャナ部131とプリンタ部132とコントローラ133を画像入力部インタフェース212及び印刷部インタフェース213を介して接続し、画像データの同期系/ 非同期系の変換を行う。スキャナ画像処理部214は、入力画像データに対し補正,加工,編集を行う。スキャナ画像処理部214は、入力された画像がカラー原稿又は白黒原稿であるかを画像の彩度信号から判断し、その結果を保持する。プリンタ画像処理部215は、出力画像データに対し補正,加工,編集を行う。
【0023】
コントローラ133は、さらに、画像回転部216と、画像圧縮部217と、解像度変換部218と、色空間変換219と、階調変換部220とを備える。画像回転部216は、スキャナ画像処理部214と連携して、スキャナ部131からの画像読み込みと同時に画像を回転しメモリに格納する。画像回転部216は、また、メモリに格納された画像を回転して格納する。画像回転部216は、また、メモリに格納された画像をプリンタ画像処理部215と連携して、画像を回転させて印刷する。
【0024】
画像圧縮部217は、多値画像データに対してJPEG、2値画像画像データに対してJBIG、MMR、MR、MHの圧縮伸長処理を行う。解像度変換部218は、メモリに格納された画像の解像度を変換し、メモリに格納する。色空間変換部219は、マトリクス演算により、例えばメモリに格納されたYUV画像をLab画像に変換し、メモリに格納する。階調変換部220は、例えばメモリに格納されている8bit、256階調の画像を誤差拡散法等の手法により1bit、2階調に変換し、メモリに格納する。
【0025】
画像回転部216、画像圧縮部217、解像度変換部218、色空間変換部219及び階調変換部220は、それぞれ連動することが可能で、例えばメモリに格納された画像を画像回転及び解像度変換する場合は、両処理をメモリを介することなしに行うことができる。
【0026】
画像バス209は、イメージバス(Image Bus)I/F208と、画像バス209と、RIP(ラスタイメージプロセッサ)210と、デバイスI/F211と、スキャナ画像処理部214と、プリンタ画像処理部215と、画像回転部216と、画像圧縮部217と、解像度変換部218と、色空間変換219と、階調変換部220とを接続している。
【0027】
図3は、図2に示したデジタル複合機のコントローラ133における、システムソフトウェアの機能構成を示すブロック図である。システムソフトウェアは、図2におけるHDD203に格納されている。CPU200がシステムソフトウェアをHDD203からRAM201にロードし、実行する。
【0028】
ユーザインタフェース部(UI部)300は、ユーザの入力された情報をアプリケーション部301に供給し、その処理結果をアプリケーション部301から受け取り、操作部134に表示する画面を生成する。
【0029】
アプリケーション部301は、ユーザインタフェース部300からの要求に従って処理を行う。ユーザインタフェース部300からスキャンや印刷が要求された場合には、アプリケーション部301は、ジョブコントロールドメイン部302に、指定された設定とともにジョブを投入し、機器の状態やジョブの状態などの情報をジョブコントロールドメイン部302から受け取る。また、蓄積文書の参照・編集などが要求された場合には、アプリケーション部301は、文書管理部305に情報を取得するための指示又は変更をするための指示を行い、文書のリストや属性等の情報を文書管理部305から受け取る。
【0030】
ジョブコントロールドメイン部402は、スキャンジョブ、コピージョブ、プリントジョブ、FAXジョブ等のジョブの処理を制御する。文書管理部305は、画像データを文書として管理する。
【0031】
図2において、HDD203には、システムソフトウェア、画像データ及びワークフローの設定情報を格納すると共に、画像管理のためのデータ等の一般的なデータファイルを格納する、いわゆるボックス機能を備える。
【0032】
HDD203には、フォルダを作成することができ、その中に画像データファイルや一般データファイルを格納することが可能である。フォルダは、ワークフローシステム100が内部的にしかアクセスできない領域と、ユーザがアクセス可能な領域とからなる。ユーザは、アクセス可能な第1の領域のフォルダに対して、画像データなどを格納し、また、格納した画像を参照、編集、削除又は出力することができる。
【0033】
図4は、ユーザがアクセス可能な領域のフォルダの一例を示す。図4に示すフォルダは、デジタル複合機130のHDD203に作成されている。この領域は、フォルダ401と、フォルダ402と、フォルダ403とを含む。フォルダ401は2個のデータを格納し、フォルダ402は3個のデータを格納し、フォルダ403は1個のデータを格納している。なお、フォルダの数はこれら3個に限定されるものではなく、またフォルダが階層構造を有していても構わない。
【0034】
フォルダ401〜403へのデータの格納は以下のように行う。例えば、スキャナ部131が画像を読み込み、得られた画像データをフォルダに格納する。また、ワークフローシステム100に接続された他のクライアント側のコンピュータがプリンタドライバを用いてアプリケーション文書から画像データを生成して、この画像データがフォルダに格納される。また、FTP、SMB又はWebDAV等のプロトコルを用いて、クライアント側のコンピュータが直接フォルダにアクセスを行って、データを格納する。
【0035】
ユーザは、操作部134によって、フォルダ及び格納した画像データを参照することができる。画像データはシステムソフトウェアの管理に従い、文書として扱われる。複数のフォルダ又は複数の文書がある場合には、操作部134はフォルダのリスト及び文書のリストを表示する。ユーザは、文書リストから文書を選択して この文書に対する操作が実行できる。ユーザは、例えば、プレビュー表示、プロパティ表示、ページ挿入、他フォルダへの移動/コピー、文書削除、印刷等の処理を実行することができる。
【0036】
第1実施形態のワークフロー実行装置における、申請ワークフローについて説明する。申請ワークフローは、デジタル複合機に予め設定されたワークフロー設定情報に従って遂行される。すなわち、ワークフロー設定情報は、複数の処理工程から構成されるジョブを、その処理工程の処理順序を定義している。図5A及び図5Bは、ワークフロー設定情報の一例を示す。ワークフロー設定情報500a、500bは、ワークフローを識別するための情報、処理順序、文書の送信宛先等が記録されている。ワークフロー設定情報はHDD203に格納される。
【0037】
ワークフロー設定情報500aは、以下の情報を含んでいる。WORKFLOWは、ワークフロー設定情報であることを示す。FLOWIDはワークフローを識別するためのIDを示す。TOTALは、このワークフロー設定情報500aに記述された工程数を示し、500aにおいては3つの処理工程からなることを示している。続いて、PROCESS1、PROCESS2、PROCESS3のタグに続いてそれぞれの処理工程に関する情報が記述される。
PROCESS1は、以下の情報を含んでいる。NAMEは、ワークフロー処理を行う主体である名称を示す。DEST_DEVICEは、送信先の機器を示す。DEST_ADDRESSは、送信先のIPアドレスを示す。DEST_PATHは、送信先のフォルダを示す。PROCESS2、PROCESS3についても同様である。
すなわち、PROCESS1の情報は、主体AAAの処理のために、所定のIPアドレスを有するDeviceAのフォルダ00にジョブを送信し、DeviceAがPROCESS1の処理を実行することを記述している。
より具体的には、ワークフロー設定情報500aによれば、申請者が申請処理を実行すると、NAMEによって指定された承認者AAAの承認処理のために、機器A(DEST_DEVICEによって指定されたDeviceA)のDEST_PATHによって指定されたフォルダ「BOX00」文書を送信する。承認者AAAは機器Aの「BOX00」に格納された文書を参照し、PROCESS1に該当する承認処理を行う。ワークフロー設定情報により、承認処理が行われた文書は、PROCESS2のNAMEに指定された承認者BBBの承認処理のために、機器Bの「BOX05」というフォルダに文書を送信する。承認者BBBは機器Bの「BOX05」に格納された文書を参照し、PROCESS2に相当する承認処理を行う。以降、順次、承認処理が行われていく。
【0038】
図5bに示すワークフロー情報500bの情報も、500aと同様のタグ情報によって記述されている。
500bにおいて、申請者は申請処理を実行すると、NAMEによって指定された承認者DDDの承認処理のために、DEST_DEVICEによって指定された機器D(DeviceD)のDEST_PATHによって指定された「BOX02」というフォルダに文書を送信する。承認者DDDは機器Dの「BOX02」に格納された文書を参照し、PROCESS1に相当する承認処理を行う。ワークフロー設定情報により、承認処理が行われた文書は、PROCESS2のNAMEによって指定された承認者BBBの承認処理のために、機器Bの「BOX05」というフォルダに文書を送信する。承認者BBBは機器Bの「BOX05」に格納された文書を参照し、PROCESS2に相当する承認処理を行う。以降、順次、承認処理が行われていく。
【0039】
図6は、HDD203に保存されている文書管理テーブル600の定義例を示す。管理テーブルは、文書を識別するための文書IDと、文書名と、画像の保存場所である画像パスと、その文書が格納されている親フォルダIDとから構成される。
【0040】
図7は、HDD203に保存されるジョブテーブル700の定義例を示す。ジョブテーブルは、ジョブを識別するジョブIDと、ジョブの対象となる文書の文書IDと、そのジョブが該当するワークフローIDと、ジョブの状態を示すステータスとから構成される。
【0041】
上述したワークフロー設定情報は一例であり、複数の処理工程から構成されるジョブの処理順序を定義してあればよく、他の記載方法であっても構わないし、他の記録フォーマットであってもよい。また、HDD203が異なる設定を持つ複数のワークフロー設定情報を持つこともできる。
【0042】
図8は、本発明に係るワークフローシステム100における申請ワークフローの基本的な工程を説明するフローチャートである。このフローチャートにおける工程の処理は、ワークフローシステム100に含まれる各デジタル複合機ごとに行われる。図8のフローチャートの処理は、図2に示すCPU200が、HDD203に格納されているシステムソフトウェアをRAM201にロードして実行することによって実現される。
【0043】
まず、デジタル複合機は、ワークフローを実行すべき文書を受け付ける(S801)。文書とは、このデジタル複合機が申請者が直接操作するデジタル複合機であれば、操作部134からの申請開始指示により受け付けた文書である。また、この文書は、このデジタル複合機が承認者が操作するデジタル複合機であれば、申請者又は前の承認者から送信された文書である。
【0044】
デジタル複合機130のシステムソフトウェアは、文書を受信すると、以下のワークフロー処理を実行する(S802)。処理とは、例えば、承認者が機器に対して認証を行い、申請書を承認し、次の承認者へ申請書を送信する処理をいう。このとき該当するジョブのジョブテーブルのステータスは「処理中」(すなわち、ジョブの実行中)となる。続いて、ワークフロー設定情報に基づいて、次のワークフロー処理が予定されているか否かが判断される(S803)。次のワークフロー処理が予定されている場合は、次のワークフロー処理を実行するデジタル複合機へ指示を行う(S804)。次のワークフロー処理が予定されていない場合は処理を終了する。処理終了時、該当するジョブのジョブテーブルのステータスは「処理完了」となる。
【0045】
図9は、第1実施形態における、ワークフローの実行中にデジタル複合機130にエラーが発生した場合の工程を説明するフローチャートの一例である。
図2に示すCPU200が、HDD203に格納されているシステムソフトウェアをRAM201にロードして以下の処理を実行する。
【0046】
ワークフロー処理が実行され(S901)、実行中にエラーが検知されない場合は処理を終了する(S902:No)。エラーが検知された場合は、実行中のジョブを保存する(S903:Yes)。ステップS903におけるCPU200は、エラーが発生したとき、実行中の処理工程を中断する処理中断手段として機能する。ステップS903におけるCPU200は、また、中断された処理工程をジョブとして保存するジョブ保存手段として機能する。
【0047】
ジョブ保存手段によるジョブの保存は、処理の対象である文書をHDD203の特定の領域に保存し、ジョブテーブルにジョブID、文書ID及びワークフローIDを記録するとともに、ステータスを「中断中」の状態に変更する。その後、それより以前にワークフロー処理を実行した機器への通知(図10)を行う。なお、第1実施形態では、ユーザへのエラー発生通知は行っていないが、エラー発生通知を行うことも可能である。
【0048】
<中断処理>
第1実施形態であるワークフローシステム100では、ワークフロー処理の中断は、第1の機器におけるエラー発生通知を行う処理(図10)と、エラー発生通知を受信した第2の機器における処理(図11)とから構成される。
【0049】
図10は、第1実施形態におけるワークフロー処理のエラーが発生した旨を通知する工程を説明するフローチャートである。図2に示すCPU200が、HDD203に格納されているシステムソフトウェアをRAM201にロードして以下の処理を実行する。
まず、HDD203に保存されたワークフロー設定情報を参照する(S1001)。参照されたワークフロー設定情報が、エラーが発生した機器での処理を含むワークフロー設定情報であるか否かを判定する(S1002)。例えば、DeviceCにエラーが発生した場合、図5Aに示すワークフロー設定情報500aにおいてPROCESS3のDEST_DEVICEによってDeviceCが指定されているので、500aが存在すると判定される。ステップS1002におけるCPU200は、エラーが発生した処理工程を含むワークフロー設定情報を検索する検索手段として機能する。
ステップS1002における検索手段による検索の結果、エラーが発生した機器での処理が含まれないワークフロー設定情報である場合はS1006の処理に移行する。エラーが発生した機器での処理が含まれるワークフロー設定情報である場合は、さらにワークフロー設定情報を参照し、そのジョブが他の機器から受信したものであるか否かを判定する(S1003)。例えば、DeviceCにエラーが発生した場合、図5Aに示すワークフロー設定情報500aにおいてPROCESS2のDEST_DEVICEによってDeviceBが記述されているので、500aがDeviceBから受信したものであることが判定される。
【0050】
そのジョブが他の機器から受信されたものでない場合は処理を終了する(S1003:No)。そのジョブが他の機器から受信されたものである場合は、そのジョブを送信した機器を特定する(S1004)。例えば、DeviceCにエラーが発生した場合、図5Aに示すワークフロー設定情報500aにおいて、PROCESS2のDEST_DEVICEによってDeviceBが記述されているので、DeviceBがそのジョブを送信した機器であると特定される。ステップS1004におけるCPU200は、前の処理工程が実行された他の機器を特定する機器特定手段として機能する。機器特定手段により特定された機器に対してエラー発生通知を送信する(S1005)。ワークフロー設定情報500aによれば、DeviceCにエラーが発生した場合には、DeviceCはDeviceBにエラー発生通知を送信する。ステップS1005におけるCPU200は、エラー発生通知を他の機器に通知するエラー発生通知手段として機能する。
【0051】
エラー発生通知手段によるエラー発生通知には、ワークフローID及び機器を特定する情報、例えば、IPアドレス、機器ID等を含む。続いて、送信先である機器に関する情報を記録する(S1006)。ステップS1006におけるCPU200は、エラー発生通知を送信した先の他の機器を記憶する記憶手段として機能する。
記憶手段による記憶に続いて、機器内に他のワークフロー設定情報が保存されているか否かを判定する(S1007)。他のワークフロー設定情報がある場合(S1007:Yes)、次のワークフロー設定情報を参照し(S1008)、S1002の処理に移行する。例えば、図5Bに示すワークフロー設定情報500bについても、ステップ1002以降の処理が行われる。500bは、PROCESS3においてDeviceCの処理を含んでいる。このジョブを送信した機器がDeviceBであると特定され、DeviceCはDeviceBにエラー発生通知を送信する。他のワークフロー設定情報がない場合は処理を終了する(S1007:No)。なお、エラー発生通知を受け取ったDeviceBは同様の処理を実行する。DeviceBは、ワークフロー設定情報500bにしたがい、PROCESS1のDEST_DEVICEに指定されたDeviceDにエラー発生通知を送信する。このように、複数の機器間でエラー発生通知が中継されながら伝達されていく。
【0052】
図11は、第1実施形態におけるワークフロー処理のエラー発生通知を受信した第2の機器の工程を示すフローチャートである。
図2に示すCPU200が、HDD203に格納されているシステムソフトウェアをRAM201にロードして以下の処理を実行する。
【0053】
まず、デジタル複合機130は他の機器からエラー発生通知を受信する(S1101)。ステップS1101におけるCPU200は、エラーが発生している旨の通知を受け取る通知受信手段として機能する。通知受信手段による受信の後、HDD203に保存されたワークフロー設定情報を参照する(S1102)。参照したワークフロー設定情報が、エラーが発生した機器での処理を含むワークフロー設定情報であるか否かを判定する(S1103)。
【0054】
エラーが発生した機器の処理が含まれないワークフロー設定情報である場合はS1107の処理に移行する。エラーが発生した機器での処理が含まれるワークフロー設定情報である場合は、そのワークフロー設定情報に基づくジョブが現在その機器で実行中であるか否かを判別する(S1104)。ステップS1104におけるCPU200は、その処理工程が実行中か否かを判別する判別手段として機能する。
【0055】
すなわち、判別手段であるステップS1104では、ジョブテーブルからステータスが「処理中」のジョブを特定し、そのジョブが現在参照しているワークフロー設定情報に従って処理されているか否かをワークフローIDに基づいて判定する。実行中のジョブがない場合はステップS1107に移行する(S1104:No)。処理中のジョブがある場合は、ジョブの処理を中断する(S1105)。ステップS1105におけるCPU200は、実行中の処理工程を中断する処理中断手段として機能する。
【0056】
続いて、処理中のジョブをHDD203保存する(S1106)。ステップS1106におけるCPU200は、中断された処理工程をジョブとして保存するジョブ保存手段として機能する。ジョブ保存手段によるジョブの保存は、処理する文書をHDD203の特定の領域に保存するとともに、ジョブテーブルのステータスを「中断中」の状態に変更する。ステップS1106におけるCPU200は、エラーが発生したとき、実行中の処理工程を中断する処理中断手段として機能する。
【0057】
続いて、他のワークフロー設定情報が保存されているか否かを判定する(S1107)。他のワークフロー設定情報がある場合(ステップ1107:Yes)、次のワークフロー設定情報を参照する。他のワークフロー設定情報がない場合(ステップ1107:No)、処理を終了する。
【0058】
その後、それより以前にワークフロー処理を実行した機器への通知も行う。この通知の動作は、図10のフローチャートで説明した内容と同様であるため、その詳細な説明を省略する。
以上述べたように、図10に示すエラー発生通知を行う処理と、図11に示すエラー発生通知を受信した機器における処理によって、ワークフロー処理が中断される。
【0059】
図12は、第1実施形態における、ワークフロー処理の中断の動作を示す説明図である。
【0060】
機器B(図5A中のDeviceB)には、2つのワークフロー設定情報500a及び500bが設定されている。機器C(図5A中のDeviceC、例えば、第1の機器)の処理中にHDD203の残容量が少なくなり、エラーが発生した場合、PROCESS3のDEST_DEVICEによって指定された機器CはPROCESS2のDEST_DEVICEである機器B(例えば、第2の機器)にエラー発生通知送信する。機器Bは、エラー発生通知を受信すると、保存しているワークフロー設定情報を参照し、エラーが発生した機器(すなわち、機器C)での処理を含むワークフロー設定情報を特定する。
【0061】
500aと500bはそれぞれ機器Cでの処理を含むワークフローであるため、500a又は500bの処理が機器Bで実行中の場合は、例えばワークフロー処理を次の機器へ送信せず、そのジョブを中断状態として保存する。ワークフロー設定情報500a及び500bが前に処理された機器は、ワークフロー設定情報500aのPROCESS1のDEST_DEVICEである機器A、ワークフロー設定情報500bのPROCESS1のDEST_DEVICEである機器D(図5B中のDeviceD)である。したがって、機器Cは、機器Aおよび機器Dに対してエラー発生通知を送信する。
【0062】
<復旧処理>
第1実施形態であるワークフローシステム100では、ワークフロー処理の復旧は、中断されたジョブの処理の再開を行う処理(図13)と、復旧通知を送信する処理(図14)と、復旧通知を受信した機器における処理(図15)とから構成される。
【0063】
図13は、第1実施形態における、エラーが復旧したときのジョブの処理再開手段を含む工程を示すフローチャートである。図2に示すCPU200が、HDD203に格納されているシステムソフトウェアをRAM201にロードして以下の処理を実行する。
【0064】
機器がエラーから復旧した旨が検知されると(S1301)、ジョブテーブルからステータスが「中断中」のジョブがあるか否かを判定する(S1302)。中断中のジョブがない場合(ステップS1302:No)、ステップS1304の処理に移行する。中断中のジョブがある場合(ステップS1302:Yes)、そのジョブの処理を再開する(S1303)。ステップS1303におけるCPU200は、エラーから復旧したとき、中断された処理工程を再開する処理再開手段として機能する。
【0065】
処理再開手段による再開の後、他に中断中のジョブが残っているか否かを判定する(S1304)。中断中のジョブが残っている場合(S1304:Yes)、次のジョブを指定し(S1305)、そのジョブに対して処理を再開する。ジョブが残っていない場合(S1304:No)、処理を終了する。続いて、図14に述べるように、前にそのワークフロー処理を実行した機器に、復旧通知手段による復旧通知をネットワーク部205を介して送信する。
【0066】
図14に、第1実施形態における、エラーから復旧した場合の復旧通知の工程を説明するフローチャートである。CPU200が、HDD203に格納されているシステムソフトウェアをRAM201にロードして以下の処理を実行する。
【0067】
まず、エラー発生通知を送信した機器があるか否かを判定し(S1401)、送信した機器が存在しない場合は処理を終了する。送信した機器が存在する場合(S1401:Yes)、送信先を特定し(S1402)、その機器に対して復旧通知を送信する(S1403)。ステップS1403におけるCPU200は、復旧した旨を他の機器に通知する復旧通知手段として機能する。具体的には、ワークフロー設定情報500aに従い、DeviceCが復旧した場合には、DeviceCはPROCESS2のDEST_DEVICEによって指定されたDeviceBに復旧通知を送信する。また、DeviceBは、ワークフロー設定情報500bにしたがい、PROCESS1のDEST_DEVICEに指定されたDeviceDに復旧通知を送信する。このように、複数の機器間で次々と復旧通知が中継されながら伝達されていく。
【0068】
復旧通知手段による通知に続いて、他の送信先が存在するか否かを判定し(S1404)、他の送信先がある場合は、次の送信先を参照し(S1405)、S1402の処理に移行する。他の送信先がない場合(S1401:No)、処理を終了する。
【0069】
図15は、第1実施形態における、復旧通知を受信した機器の工程を示すフローチャートである。CPU200が、HDD203に格納されているシステムソフトウェアをRAM201にロードして以下の処理を実行する。
【0070】
他の機器から復旧通知を受信すると(S1501)、ジョブテーブルからステータスが「中断中」のジョブがあるか否かを判定する(S1502)。中断中のジョブがない場合は、S1504の処理に移行する。中断中のジョブがある場合は、そのジョブの処理を再開する(S1503)。ステップS1503は、中断された処理工程を再開する処理再開手段として機能する。
【0071】
続いて、他に中断中のジョブが残っているか否かを判定し(S1504)、ジョブが残っている場合は、次のジョブを指定し(S1505)そのジョブに対しても処理を再開する。ジョブが残っていない場合は処理を終了する。続いて、それより前にワークフロー処理を実行した機器への通知を行う。この処理は、図14のフローチャートに示した内容と同様であるため、その詳細な説明を省略する。
【0072】
第1実施形態によれば以下の効果を奏する。
(1)ワークフローの処理中に第1の機器にエラーが発生した場合であっても、第1の機器から第2の機器に対してエラー発生通知が送信され、第2の機器におけるジョブの処理を中断することによって、エラーによって生じるシステム全体にかかる負荷を軽減することができる。また、エラー発生通知を受け取った第2の機器は、さらに他の機器にエラー発生通知を送信するので、システム全体の負荷を軽減することができる。
【0073】
(2)中断された処理工程がジョブとして保存されることによって、第1の機器が復旧したら速やかにジョブの処理の再開をすることができ、ワークフローシステムの効率的な運用が可能になる。
【0074】
(3)エラーが発生した場合に、速やかにジョブの処理を中断し、エラーが発生した旨の通知を他の機器に送信するため、新たなジョブの投入が防止され、ワークフローシステムがその後も円滑に運用される。
【0075】
<第2実施形態>
本発明の第2実施形態は、ワークフローの中断処理において、エラー発生通知の送信先及び中断するジョブの特定を、エラー発生時のワークフローIDによって行うものである。第2実施形態に係るワークフローシステム及びワークフロー実行装置の構成は、第1実施形態における図1から図7と同様であるため、その詳細な説明を省略する。
第2実施形態において、ワークフローの基本的な処理、エラー発生時の処理及びエラー復旧時の処理については、図8、図9、図13〜図15と同様であるため、その詳細な説明を省略する。なお、ワークフロー設定情報は、複数の処理工程から構成されるジョブの処理順序を定義したものである点で、第1実施形態と同様である。
【0076】
図16は、第2実施形態であるワークフロー実行装置およびワークフロー実行方法におけるワークフロー処理において、エラー発生通知の処理の工程を説明するフローチャートである。CPU200が、HDD203に格納されているシステムソフトウェアをRAM201にロードして以下の処理を実行する。
【0077】
まず、ワークフロー設定情報を参照し(S1601)、そのワークフローが実行中であるか否かを判断する(S1602)。ステップS1601及びS1602は、エラーが発生した処理工程を含むワークフロー設定情報を検索する検索手段として機能する。検索手段による検索の結果、処理中のワークフローではない場合、S1606の処理に移行する。処理中のワークフローである場合は、ワークフロー設定情報を参照し、そのジョブが他の機器から受信したものであるか否かを判定する(S1603)。
【0078】
ステップS1603において、そのジョブが他の機器から受信したものでない場合は処理を終了する。そのジョブが他の機器から受信したものである場合は、ジョブを送信した機器を特定する(S1604)。ステップS1605は、前の処理工程が実行された他の機器を特定する機器特定手段として機能する。続いて、機器特定手段により特定された機器に対してエラー発生通知を送信する(S1605)。ステップS1605におけるCPU200は、エラー発生通知を他の機器に通知するエラー発生手段として機能する。エラー発生通知には、ワークフローID及び機器を特定する情報、例えば、IPアドレス、機器ID等を含む。
【0079】
エラー発生通知手段がエラー発生通知を送信するとき、送信先の機器の情報を記録する(S1606)。ステップS1606は、エラー発生通知を送信した先の他の機器を記憶する記憶手段として機能する。
記憶手段による記憶に続いて、機器内に他のワークフロー設定情報が保存されているか否かを判定する(S1607)。他のワークフロー設定情報がある場合は、次のワークフロー設定情報を参照し(S1608)、S1602の処理に移行する。他のワークフロー設定情報がない場合は、処理を終了する。
【0080】
図17は、第2実施形態におけるワークフロー処理のエラー発生通知を受信した機器の処理の工程を示すフローチャートである。CPU200が、HDD203に格納されているシステムソフトウェアをRAM201にロードして以下の処理を実行する。
【0081】
まず、他の機器からエラー発生通知を受信する(S1701)。ステップS1701におけるCPU200は、エラーが発生している旨の通知を受け取る通知受信手段として機能する。通知受信手段による受信の後、エラー発生通知に含まれているワークフローIDによって指定されたワークフローのジョブが実行中か否かをジョブテーブルによって判別する(S1702)。具体的には、ワークフロー設定情報500aの場合、ワークフローIDは0001に設定されている。このワークフローIDである0001を図7に示すジョブテーブルから検索する。ジョブテーブルで0001が存在していた場合、そのステータスが実行中であるかを判別する。ステップS1702におけるCPU200は、処理工程が実行中であるか否かを判別する判別手段として機能する。
【0082】
判別手段による判別の結果、そのワークフローが実行中でない場合は処理を終了し、そのワークフローが実行中である場合は、処理を中断する(S1703)。ステップS1703は、実行中の処理工程を中断する処理中断手段として機能する。
続いて、実行中のジョブを保存する(S1704)。ステップS1704は、中断された処理工程をジョブとして保存するジョブ保存手段として機能する。ジョブの保存は、処理する文書をHDD203の特定の領域に保存し、ジョブテーブルのステータスを「中断中」の状態に変更する。ステップS1704は、エラーが発生したとき実行中の処理工程を中断する処理中断手段として機能する。
【0083】
続いて、他に同じワークフローで処理中のジョブがあるか否かを判定し(S1705)、処理中のジョブがある場合は、次のジョブを参照し(S1706)、S1703の処理に移行する。処理中のジョブがない場合は、処理を終了する。その後、前にワークフロー処理を実行した機器への通知も行う。この通知の処理は、図16に示すフローと同様であるため、その詳細な説明を省略する。
【0084】
第2実施形態によれば、第1実施例と同様の効果を奏する他、ワークフローIDに基づいて処理中のジョブを判定するため、エラー発生時に処理中断手段により効率的にジョブの処理の中断を行うことができる。
【0085】
<変形形態>
(1)上述した実施形態では、エラーが発生した第1の機器と、エラー発生通知を受け取る第2の機器を別々のワークフロー実行装置として説明したが、エラーが発生してエラー発生通知を送信する第1の機器としての機能とエラー発生通知を受けて処理を中断する第2の機器としての機能を同一のワークフロー実行装置が備えていてもよい。
【0086】
(2)ワークフロー実行装置またはワークフロー実行方法を実現するコンピュータプログラムをコンピュータによる読み取り可能な記録媒体に記録し、この記録媒体に記録されたコンピュータプログラムをコンピュータのそれぞれに読み込ませ、実行することによって本発明のワークフロー実行装置またはワークフロー実行方法を実現することができる。すなわち、本発明の機能処理を実現するためのコンピュータプログラム
自体も本発明に含まれる。
【0087】
(3)プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、MO、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−R、DVD−RW等が考えられる。また、コンピュータプログラムを、有線/無線通信を用いて供給する場合も、本発明に含まれる。
【0088】
(4)具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【0089】
【図1】本発明の第1実施形態であるワークフローシステムの構成を説明する図である。
【図2】本発明の第1実施形態におけるデジタル複合機の構成を説明するブロック図である。
【図3】本発明の第1実施形態におけるワークフロー実行装置であるデジタル複合機のシステムソフトウェアの機能構成を示すブロック図である。
【図4】本発明の第1実施形態におけるユーザがアクセス可能な領域のフォルダの一例である。
【図5A】本発明の第1実施形態におけるワークフロー設定情報の一例である。
【図5B】本発明の第1実施形態におけるワークフロー設定情報の一例である。
【図6】本発明の第1実施形態における文書管理テーブルのテーブル定義例である。
【図7】本発明の第1実施形態におけるジョブテーブルのテーブル定義例である。
【図8】本発明の第1実施形態における申請ワークフローの基本的な処理を説明するフローチャートである。
【図9】本発明の第1実施形態におけるワークフロー処理中にエラーが発生した場合の処理を説明するフローチャートである。
【図10】本発明の第1実施形態におけるワークフロー処理のエラー発生通知の処理を説明するフローチャートである。
【図11】本発明の第1実施形態におけるエラー発生通知を受信した機器の処理を示すフローチャートである。
【図12】本発明の第1実施形態における複数のデジタル複合機の中断処理の一例を示す説明図である。
【図13】本発明の第1実施形態における復旧時の処理再開を説明するフローチャートである。
【図14】本発明の第1実施形態における復旧通知の処理を説明するフローチャートである。
【図15】本発明の第1実施形態における復旧通知を受信したワークフロー実行装置の処理を示すフローチャートである。
【図16】本発明の第2実施形態におけるワークフロー処理のエラー発生通知の処理を説明するフローチャートである。
【図17】本発明の第2実施形態におけるエラー発生通知を受信した情報処理の処理を示すフローチャートである。
【符号の説明】
【0090】
100 ワークフローシステム
130 デジタル複合機(ワークフロー実行装置)
140 ネットワーク
131 スキャナ部
132 プリンタ部
133 コントローラ
134 操作部
300 ユーザインターフェース(UI)部
301 アプリケーション部
302 ジョブコントロールドメイン部
305 文書管理部
401,402,403 フォルダ
500a、500b ワークフロー設定情報
600 文書管理テーブル
700 ジョブテーブル

【特許請求の範囲】
【請求項1】
複数の処理工程を、処理順序を定義したワークフロー設定情報に従って処理するワークフロー実行装置であって、
前記処理工程のいずれかにエラーが発生したとき、前記エラーが発生した前記処理工程を含む前記ワークフロー設定情報を検索する検索手段と、
検索された前記ワークフロー設定情報に含まれている他の処理工程が実行された他の機器を特定する機器特定手段と、
前記エラーが発生した旨の通知を前記他の機器に通知するエラー発生通知手段と
を備えることを特徴とするワークフロー実行装置。
【請求項2】
前記エラーが発生している旨の通知を受け取る通知受信手段と、
前記検索手段によって検索された前記ワークフロー設定情報に含まれる前記処理工程が実行中であるか否かを判別する判別手段とを備え、
前記通知受信手段が前記通知を受け取ったとき、前記判別手段によって実行中と判別された前記処理工程を前記処理中断手段が中断することを特徴とする請求項1記載のワークフロー実行装置。
【請求項3】
前記処理工程のいずれかにエラーが発生したとき、実行中の前記処理工程を中断する処理中断手段と、
前記処理中断手段により中断された前記処理工程をジョブとして保存するジョブ保存手段を備えていることを特徴とする請求項1又は2に記載のワークフロー実行装置。
【請求項4】
前記エラーから復旧したとき、中断された前記処理工程を再開する処理再開手段と、
復旧した旨を前記他の機器に通知する復旧通知手段と
を備えることを特徴とする請求項1から3に記載のワークフロー実行装置。
【請求項5】
前記通知受信手段が前記他の機器が復旧した旨の通知を受け取ったとき、前記処理再開手段が中断された前記処理工程を再開することを特徴とする請求項4に記載のワークフロー実行装置。
【請求項6】
前記エラーが発生した旨をユーザに通知することを特徴とする請求項1から5のいずれかに記載のワークフロー実行装置。
【請求項7】
前記エラー発生通知手段は、前記エラーが発生した旨の通知を送信した先の前記他の機器を記憶する記憶手段を有することを特徴とする請求項1から6に記載のワークフロー実行装置。
【請求項8】
コンピュータを、請求項1から7のいずれかに記載のワークフロー実行装置として機能させるためのコンピュータプログラム。
【請求項9】
請求項8に記載のコンピュータプログラムを格納したコンピュータで読み取り可能な記憶媒体。
【請求項10】
複数の処理工程を、処理順序を定義したワークフロー設定情報に従って複数の機器によって処理するワークフロー実行方法であって、
第1の機器にエラーが発生したとき、実行中の前記処理工程を中断する工程と、
前記エラーが発生した前記第1の機器での前記処理工程を含む前記ワークフロー設定情報を検索する工程と、
検索された前記ワークフロー設定情報に含まれている他の処理工程が実行された第2の機器を特定する工程と、
前記第1の機器に前記エラーが発生した旨の通知を前記第2の機器に通知する工程と
を備えることを特徴とするワークフロー実行方法。
【請求項11】
第2の機器が前記通知を受け取る工程と、
前記第1の機器での前記処理工程を含む前記ワークフロー設定情報を前記第2の機器が検索する工程と、
前記第2の機器によって検索された前記ワークフロー設定情報に含まれる前記処理工程が実行中であるか否かを判別する工程と、
前記第2の機器が前記通知を受け取ったとき、実行中と判別された前記処理工程を中断する工程と
を備えることを特徴とする請求項10記載のワークフロー実行方法。
【請求項12】
前記第1の機器において中断された前記処理工程をジョブとして保存する工程を備えていることを特徴とする請求項10記載のワークフロー実行方法。
【請求項13】
前記第2の機器において中断された前記処理工程をジョブとして保存するジョブ保存手段を備えていることを特徴とする請求項11記載のワークフロー実行方法。
【請求項14】
前記第1の機器が復旧したとき、中断された前記処理工程を再開する工程と、
前記第1の機器が復旧した旨を前記第2の機器に通知する工程と
を備えることを特徴とする請求項10から13に記載のワークフロー実行方法。
【請求項15】
前記第2の機器が前記第1の機器が復旧した旨の通知を受け取ったとき、中断された前記処理工程を再開する工程を備えていることを特徴とする請求項14に記載のワークフロー実行方法。
【請求項16】
前記第1の機器に前記エラーが発生した旨をユーザに通知する工程を備えていることを特徴とする請求項10から15のいずれかに記載のワークフロー実行方法。
【請求項17】
前記エラー発生通知を送信した先である前記第2の機器を記憶する工程を備えていることを特徴とする請求項10から16に記載のワークフロー実行方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2010−18004(P2010−18004A)
【公開日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願番号】特願2008−182837(P2008−182837)
【出願日】平成20年7月14日(2008.7.14)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】