(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態における配信管理システムの構成例を示す図である。
図1において、配信管理システム1は、配信管理サーバ10、1以上のクライアント端末20、1以上の画像形成装置30、文書管理サーバ50、メールサーバ60、及びファイルサーバ70等を含む。各装置は、LAN(Local Area Network)又はインターネット等のネットワーク(有線又は無線の別は問わない。)を介して通信可能に接続されている。
【0010】
クライアント端末20は、配信管理サーバ10へのデータの入力(送信)や、配信管理サーバ10から出力(送信)されるデータの操作(参照又は編集等)等に利用される端末である。すなわち、本実施の形態において、クライアント端末20は、配信管理サーバ10に対するデータ入力元の一例であると共に、配信管理サーバ10によって実行されるワークフローの実行結果の出力先(配信先)の一例でもある。クライアント端末20の一例として、携帯電話、スマートフォン、タブレット型端末、及びPC(Personal Computer)等が挙げられる。
【0011】
画像形成装置30は、原稿から画像データを読み取り、当該画像データを配信管理サーバ10に入力(送信)する。また、画像形成装置30は、配信管理サーバ10から送信されるデータを印刷等する。すなわち、本実施の形態において、画像形成装置30は、配信管理サーバ10に対するデータ入力元の一例であると共に、配信管理サーバ10によって実行されるワークフローの実行結果の出力先(配信先)の一例でもある。
【0012】
配信管理サーバ10は、入力されたデータに関して、予め定義されたワークフローを実行するコンピュータである。ワークフローとは、例えば、それぞれが独立して又は単独で完結した機能を実現する一以上の処理単位(タスク)の任意な組み合わせによって実現される処理の流れ(処理フロー)をいう。本実施の形態におけるワークフローは、データの入力によって開始され、当該データをユーザが利用可能な状態で出力することによって終了する。なお、上記処理単位は、一般的なワークフローの用語における、アクティビティに当てはめられてもよい。
【0013】
文書管理サーバ50は、データを、その属性情報に関連付けて管理するデータベースを有するコンピュータである。文書管理サーバ50は、配信管理サーバ10によって実行されるワークフローの実行結果の配信先の一例である。文書管理サーバ50が配信先である場合、配信されたデータは、文書管理サーバ50のデータベースに記憶される。
【0014】
メールサーバ60は、一般的なメールサーバと同様の機能を有する。但し、本実施の形態において、メールサーバ60は、クライアント端末20より送信される、所定のメールアドレス(以下、「フローアドレス」という。)宛の電子メールをSMTP(Simple Mail Transfer Protocol)等の通信プロトコルを介して受信し、保持する。メールサーバ60は、配信管理サーバ10からの、フローアドレス宛の電子メールの取得要求に応じ、保持している電子メールを返信する。配信管理サーバ10による、メールサーバ60からの電子メールの取得には、POP(Post Office Protocol)又はIMAP(Internet Message Access Protocol)等の通信プロトコルが利用されてもよい。なお、メールサーバ60は、配信管理サーバ10によって実行されるワークフローの実行結果の配信先とされてもよい。メールサーバ60が配信先である場合、配信されたデータは、電子メールに添付されて、実行されたワークフローに設定されているメールアドレス宛に転送される。
【0015】
ファイルサーバ70は、ネットワーク上で共有されるファイルを蓄積して管理するコンピュータである。本実施の形態において、ファイルサーバ70は、配信管理サーバ10に対するデータ入力元の一例である。例えば、ファイルサーバ70の所定のフォルダに格納されたファイルは、配信管理サーバ10に送信される。なお、ファイルサーバ70は、配信管理サーバ10によって実行されるワークフローの実行結果の出力先(配信先)であってもよい。ファイルサーバ70が配信先である場合、配信されたデータは、ファイルサーバ70のフォルダ内に記憶される。
【0016】
図2は、本発明の実施の形態における配信管理サーバのハードウェア構成例を示す図である。
図2の配信管理サーバ10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
【0017】
配信管理サーバ10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0018】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って配信管理サーバ10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0019】
なお、配信管理サーバ10は、複数のコンピュータによって構成されてもよい。
【0020】
図3は、本発明の実施の形態における配信管理サーバの機能構成例を示す図である。
図3において、配信管理サーバ10は、ジョブ投入部12、フロー実行制御部13、及び処理部14等を有する。これら各部は、配信管理サーバ10にインストールされたプログラムがCPU104に実行させる処理により実現される。配信管理サーバ10は、また、ジョブキュー15、フロー定義記憶部16、フローセット定義記憶部17、及び進捗情報記憶部18等の記憶部を利用する。これら各記憶部は、補助記憶装置102、又は配信管理サーバ10にネットワークを介して接続される記憶装置等を用いて実現可能である。ジョブキュー15については、メモリ装置103が用いられてもよい。
【0021】
フロー定義記憶部16は、フロー定義データを記憶する。フロー定義データとは、ワークフローの処理の流れ等に関する定義情報が記録されたデータをいう。本実施の形態において、一つのフロー定義データは、一つのワークフローに対応する。したがって、フロー定義データは、相互に処理手順の異なるワークフローごとに作成される。
【0022】
フローセット定義記憶部17は、ワークフローセットの定義情報を記憶する。ワークフローセットとは、複数のワークフローの順序付けられた組み合わせ、又は複数のワークフローの実行順序に対する概念である。ワークフローセットの定義情報には、ワークフローセットを構成するワークフローの実行順序を示す情報が含まれる。
【0023】
進捗情報記憶部18は、ワークフローセットの実行単位(以下、「フローセットジョブ」という。)ごとに、進捗情報を記憶する。具体的には、進捗情報記憶部18は、いずれのワークフローまでが実行されたのかを示す情報を、フローセットジョブごとに記憶する。
【0024】
ジョブ投入部12は、ワークフローの実行要求及び当該ワークフローに対する入力データ等を受信し、当該ワークフローに係るジョブ情報をジョブキュー15に投入する。本実施の形態において、ジョブとは、ワークフローの実行単位をいう。例えば、同一のワークフローが複数回実行された場合、各実行時のジョブは異なる。
【0025】
ジョブキュー15は、投入されたジョブ情報を記憶する。ジョブ情報は、例えば、実行対象のワークフロー又はワークフローセットの識別情報や、ワークフローに対する入力データ等を含む情報である。
【0026】
フロー実行制御部13は、ジョブキュー15よりジョブ情報を取得し、当該ジョブ情報に対応するフロー定義データ又はフローセットの定義情報に従って、ワークフロー又はワークフローセットの実行を制御する。
【0027】
処理部14は、ワークフローを構成する処理単位(アクティビティ)ごとの処理を実行する。例えば、一つのアクティビティは、一つの処理部14によって実現される。したがって、ワークフローは、相互に処理内容の異なる1以上の処理部14による処理の接続によって実現される。
図3では、処理部A及び処理部B等が例示されている。各処理部14は、それぞれ独立したプログラムモジュールが、CPU104に実行させる処理により実現されてもよい。配信管理サーバ10(CPU104)を、処理部として機能させるプログラムモジュールを、以下、「プラグイン」という。
【0028】
本実施の形態において、配信管理サーバ10が実行するワークフローを構成する1以上の処理単位は、入力処理、中間処理、又は出力処理に大別される。入力処理は、例えば、画像形成装置30、メールサーバ60、又はファイルサーバ70等の外部装置から、ワークフローに対する入力データを入力する処理である。
【0029】
中間処理は、例えば、ワークフローの処理対象とされたデータに対する加工処理である。中間処理の一例として、ノイズ除去処理、OCR(Optical Character Recognition)処理、翻訳処理、及びデータ変換処理等が挙げられる。
【0030】
出力処理は、ワークフローからのデータをユーザが利用可能な形態で出力する処理である。利用可能な形態には、用紙への印刷等、ユーザが直接利用な形態のみならず、電子的な保存等、ユーザが、アプリケーションプログラム等を介して利用可能な形態も含まれる。出力処理の一例として、文書管理サーバ50等のフォルダへの配信処理が挙げられる。また、メールサーバ60が配信先とされてもよい。また、画像データの入力元の画像形成装置30、又は当該画像形成装置30とは別の画像形成装置30が配信先とされてもよい。この場合、配信先の画像形成装置30によって、配信されたデータの印刷が実行される。
【0031】
なお、
図3において、処理部14は、中間処理又は出力処理を実行する。一方、ジョブ投入部12は、入力処理を実行する。入力処理において、データの入力元となる外部装置は、様々である。また、外部装置ごとに、データの入力方法(配信管理サーバ10から見た場合のデータの取得方法又は受信方法)が異なる。このような状況に対して柔軟に対応可能とするため、ジョブ投入部12は、例えば、
図4に示されるような構成を有する。
【0032】
図4は、ジョブ投入部の構成例を示す図である。ジョブ投入部12において、データの入力元とのやりとりは、処理部14と同様に、プラグイン可能なプログラムモジュール(プラグイン)によって実現される。
図4では、スキャン入力プラグイン121、メール入力プラグイン122、及びフォルダ入力プラグイン123が例示されている。
【0033】
スキャン入力プラグイン121は、画像形成装置30から入力データを受信するプラグインである。すなわち、スキャン入力プラグイン121は、画像形成装置30においてスキャンされた画像データを、入力データとして画像形成装置30から受信する。画像形成装置30からは、画像データと共に、フローID又はフローセットID等が受信される。スキャン入力プラグイン121は、受信されたフローID又はフローセットID、及び画像データを、フロー実行制御部13が予定している形式に従ったジョブ情報に整形し、当該ジョブ情報をジョブキュー15に記憶する。なお、フローIDとは、ワークフローの定義ごと(すなわち、フロー定義データごと)の識別情報である。フローセットIDとは、ワークフローセットごとの識別情報である。
【0034】
メール入力プラグイン122は、フローアドレス宛の電子メールによって、ワークフローに対する入力データを受信するプラグインである。具体的には、電子メールに添付されたデータが、ワークフローに対する入力データとされる。当該入力データは、画像データであってもよいし、他の形式のデータであってもよい。メール入力プラグイン122は、電子メールに添付されているデータと、電子メールに記述されている情報とを、フロー実行制御部13が予定している形式に従ったジョブ情報に整形し、当該ジョブ情報をジョブキュー15に記憶する。電子メールに記述されている情報には、フローID若しくはフローセットID等が含まれていてもよい。または、フローID若しくはフローセットIDごとに、フローアドレスが区別されていてもよい。この場合、いずれのフローアドレス宛の電子メールであるかによって、フローID又はフローセットIDが特定される。
【0035】
フォルダ入力プラグイン123は、所定のフォルダに格納されたデータ(ファイル)を、ワークフローの入力データとして取得するプラグインである。例えば、フォルダ入力プラグイン123は、所定のフォルダをポーリングし、当該フォルダにデータ、及びフローID又はフローセットID等を格納したファイルが保存されていれば、当該データ及びファイルを取得する。フォルダ入力プラグイン123は、取得されたデータと、取得されたファイルに格納されている情報とを、フロー実行制御部13が予定している形式に従ったジョブ情報に整形し、当該ジョブ情報をジョブキュー15に記憶する。なお、フローID又はフローセットIDごとに、所定のフォルダが区別されてもよい。この場合、いずれのフォルダに保存されたデータであるかによって、フローID又はフローセットIDが特定される。また、所定のフォルダは、配信管理サーバ10の補助記憶装置102に形成されたフォルダでもよいし、配信管理サーバ10にネットワークを介して接続される記憶装置(例えば、いずれかのクライアント端末20又は文書管理サーバ50の記憶装置)に形成されたフォルダでもよい。
【0036】
なお、上記以外の方法で、入力データを入力するプラグインが追加されてもよい。例えば、Webページを介して入力データを受け付けるプラグインが追加されてもよい。
【0037】
このように、本実施の形態では、入力処理、中間処理、及び出力処理のそれぞれが、プラグインによって実現される。したがって、所望の処理を実行するプラグインを作成し、追加することによって、定義可能なワークフローのバリエーションを増加させることができる。
【0038】
続いて、本実施の形態において想定する業務フローについて説明する。本実施の形態において、業務フローとは、例えば、オフィスにおける業務における文書の流れをいう。
【0039】
図5は、本実施の形態における業務フローの例を示す図である。
図5では、何らかの申請書に関する業務フローが示されている。
【0040】
まず、申請者Aは、申請書のフォーマットを示す文書データ(以下、「申請書データ」という。)をファイルサーバ70の所定のフォルダに保存し、当該申請書データの印刷を、画像形成装置30に実行させる(S1)。その結果、画像形成装置30から、申請書用紙が出力される。
【0041】
続いて、申請者Aは、印刷された申請書用紙に対して必要事項を記入し(S2)、当該申請書用紙を、画像形成装置30にスキャンさせる(S3)。画像形成装置30は、申請書用紙からスキャンされた画像データを、配信管理サーバ10に送信する(S4)。
【0042】
配信管理サーバ10は、当該画像データに対してOCR処理を実行する(S5)。その結果、申請書用紙に対する記入事項がテキストデータとして出力される。配信管理サーバ10は、当該テキストデータが添付された電子メールを、検査者Bのメールアドレス宛に送信する(S6)。検査者Bは、当該電子メールを閲覧して、OCR結果に誤りが無いか否かを確認し、誤りが有る場合は、誤っている箇所を修正する。検査者Bは、作業が完了すると、修正が反映されたテキストデータを、所定のフローアドレス宛に、電子メールで送信する(S7)。
【0043】
配信管理サーバ10は、当該テキストデータを画像形成装置30に送信する(S8)。画像形成装置30は、当該テキストデータを印刷する(S9)。承認者Cは、印刷された申請書を参照して、承認が可能であれば、申請書に対してサインを行い、当該申請書のスキャンを、画像形成装置30に実行させる(S10)。画像形成装置30は、申請書からスキャンされた画像データを、配信管理サーバ10に送信する(S11)。配信管理サーバ10は、当該画像データを、文書管理サーバ50に配信する。その結果、当該画像データは、文書管理サーバ50に登録される。なお、配信前において、配信管理サーバ10は、当該画像データに対する所定の画像処理によって、承認者Cによるサインの正当性のチェック等を行ってもよい。
【0044】
図5に示される業務フローは、例えば、
図6に示されるような複数のワークフローの組み合わせ又は集合によって実現可能である。
【0045】
図6は、業務フローを実現するためのワークフローの組み合わせの一例を示す図である。
図6では、フローF001〜F004の四つのワークフローが示されている。各ワークフローにおいて、左端の矩形は、入力処理を示し、右端の矩形は、出力処理を示す。また、右端の矩形と左端の矩形との間の矩形は、中間処理を示す。なお、各矩形内の括弧内に記載された識別情報の意味については、後述される。
【0046】
フローF001は、配信管理サーバ10が、ファイルサーバ70の所定のフォルダに保存された申請書データを入力データとして取得し(フォルダ入力処理)、当該申請書データを画像形成装置30に配信して、当該申請書データの印刷を画像形成装置30に印刷させる(印刷配信処理)ワークフローである。
【0047】
フローF002は、配信管理サーバ10が、必要事項が記入された申請書用紙からスキャンされた画像データを受信し(スキャン入力処理)、当該画像データに対してOCR処理を実行し、OCR処理の結果として出力されるテキストデータを、検査者Bのメールアドレス宛にメール送信する(メール配信処理)ワークフローである。
【0048】
フローF003は、配信管理サーバ10が、検査者Bによる修正済みのテキストデータをメールによって受信し(メール入力処理)、当該テキストデータを画像形成装置30に配信して、当該申請書データの印刷を画像形成装置30に印刷させる(印刷配信処理)ワークフローである。
【0049】
フローF004は、配信管理サーバ10が、承認者Cによってサインされた申請書からスキャンされた画像データを受信し(スキャン入力処理)、当該画像データを、文書管理サーバ50に配信する(文書配信処理)ワークフローである。
【0050】
このように、ユーザからすれば、一つの文書(申請書)の流れが、四つのワークフローに分割される。これは、現実空間におけるユーザによる作業の介在により、ユーザから見た一つの文書の流れを、仮想空間内に閉じて実現することが困難であるためである。すなわち、
図5に示される業務フローを、一つのワークフローとして定義することが困難であるからである。
【0051】
したがって、ユーザは、一つの申請書に関して、四つのワークフローの存在を意識し、各作業に応じていずれのワークフローを実行させる必要が有るのかを意識する必要がある。そこで、本実施の形態では、斯かるユーザの作業負担を軽減するため、ワークフローセットの定義が可能とされる。
図6の例では、フローF001〜フローF004の四つのワークフローが一つのワークフローセットを構成する。
【0052】
以下、配信管理サーバ10が実行する処理手順について説明する。
図7は、配信管理サーバが実行する処理手順の一例を説明するためのフローチャートである。
【0053】
ジョブ投入部12は、入力データと、フローID又はフローセットID等とを受信すると(S101)、当該入力データ、及びフローID又はフローセットID等を含むジョブ情報を、ジョブキュー15に記憶する(S102)。一つのワークフローの実行が要求された場合、入力データと共にフローIDが受信される。一つのワークフローセットの実行が要求された場合、入力データと共にフローセットIDが受信される。
【0054】
例えば、ステップS101が、スキャン入力処理である場合、ユーザは、画像形成装置30において、実行対象とするワークフローのフローID又は実行対象とするワークフローセットのフローセットIDを入力して、申請書用紙等の原稿のスキャンを実行する。画像形成装置30は、当該フローID又はフローセットIDと、原稿からスキャンされた画像データとを、配信管理サーバ10に送信する。当該フローID又はフローセットID、及び画像データは、スキャン入力プラグイン121によって受信される。
【0055】
また、ステップS101が、フォルダ入力処理である場合、ユーザは、入力データと共に、実行対象とするワークフローのフローID又は実行対象とするワークフローセットのフローセットIDが記述されたファイルを、所定のフォルダに保存しておく。フォルダ入力プラグイン123は、入力データと、フローID又はフローセットIDとを当該フォルダから取得する。
【0056】
また、ステップS101が、メール入力処理である場合、ユーザは、入力データが添付され、実行対象とするワークフローのフローID又はワークフローセットのフローセットIDが、タイトル又は本文に所定の形式で記述された電子メールを、フローアドレス宛に送信する。メール入力プラグイン122は、メールサーバ60において保持されている、フローアドレス宛の当該電子メールを取得することにより、入力データと、フローID又はフローセットIDとを入力する。
【0057】
なお、入力データと共にフローセットIDが入力される場合であって、当該フローセットIDに係るワークフローセット(以下、「対象フローセット」という。)において、実行順が2番目以降のワークフローの実行時には、入力データと共に、フローセットジョブIDが入力される。フローセットジョブIDとは、ワークフローセットの実行単位であるフローセットジョブごとの識別情報である。換言すれば、対象フローセットにおいて、実行順が1番目のワークフローの実行時には、フローセットジョブIDは入力されない。後述より明らかなように、フローセットジョブIDは、1番目のワークフローの実行によって割り当てられるからである。
【0058】
一方、フロー実行制御部13は、例えば、定期的にジョブキュー15を参照し、ジョブキュー15にジョブ情報が記憶されていると、当該ジョブ情報をジョブキュー15より取り出す(S103)。続いて、フロー実行制御部13は、フローセットIDがジョブ情報に含まれているか否かを判定する(S104)。ジョブ情報にフローセットIDが含まれている場合(S104でYes)、フロー実行制御部13は、フローセットジョブIDがジョブ情報に含まれているか否かを判定する(S105)。すなわち、当該ジョブ情報が、対象フローセットにおいて2番目以降に実行されるワークフローに関するジョブ情報であるか否かが判定される。
【0059】
ジョブ情報にフローセットジョブIDが含まれていない場合(S105でYes)、フロー実行制御部13は、対象フローセットのフローセットジョブ(以下、「対象フローセットジョブ」という。)に対して、フローセットジョブIDを生成する(S106)。
【0060】
続いて、フロー実行制御部13は、フローセット定義記憶部17を参照して、対象フローセットジョブに対する進捗管理テーブルを生成し、当該進捗管理テーブルを進捗情報記憶部18に記憶する(S107)。
【0061】
図8は、フローセット定義記憶部の構成例を示す図である。
図8に示されるように、フローセット定義記憶部17は、フローセットIDごとに、フローセット構成を記憶する。フローセット構成は、当該フローセットIDに係るワークフローセットを構成する各ワークフローのフローIDが、その実行順に配列されたものである。
図8では、「shinseisho」というフローセットIDに係るワークフローセットは、ワークフローF001、ワークフローF002、ワークフローF003、ワークフローF004の順にワークフローが実行されるワークフローセットであることが定義されている。
【0062】
また、
図9は、一つのフローセットジョブに対する進捗管理テーブルの構成例を示す図である。
【0063】
図9に示されるように、進捗管理テーブルは、対象フローセットを構成するワークフローごとに、フローID及び状態等を記憶する。状態は、フローIDに係るワークフローの実行状態を示す情報である。例えば、状態の値としては、「未実行」、「実行中」、及び「完了」等が有る。「未実行」は、ワークフローが未だ実行されていないことを示す。「実行中」は、ワークフローが実行中であることを示す。「完了」は、ワークフローの実行が完了していることを示す。
【0064】
ステップS107では、対象フローセットのフローセットIDに対してフローセット定義記憶部17に記憶されているフローIDごとに、状態を記憶可能なレコードを含む進捗管理テーブル生成される。進捗管理テーブルにおいて、レコードの並び順は、ワークフローの実行順に従う。また、状態の初期値として、「未実行」が記憶される。なお、生成された進捗管理テーブルは、対象フローセットジョブのフローセットジョブIDに関連付けられて記憶される。
【0065】
一方、ジョブ情報に、フローセットジョブIDが含まれている場合(S105でNo)、すなわち、当該ジョブ情報が、対象フローセットにおいて2番目以降に実行されるワークフローに係るジョブ情報である場合、フロー実行制御部13は、当該フローセットジョブIDに関連付けられている進捗管理テーブルを、進捗情報記憶部18から読み出す(S108)。
【0066】
続いて、フロー実行制御部13は、ステップS107において生成された又はステップS108において読み出された進捗管理テーブルに基づいて、今回実行すべきワークフローを特定する(S109)。具体的には、進捗管理テーブルにおいて、状態の値が、「未処理」であり、実行順が最も早いワークフローのフローIDが特定される。なお、ジョブ情報にフローIDが含まれている場合(S104でNo)、当該フローIDが、実行対象のワークフローのフローIDとして特定される。
【0067】
続いて、フロー実行制御部13は、特定されたフローIDに対応するフロー定義データに従って、ワークフローの実行を制御する(S110)。なお、ワークフローの実行の開始に伴って、フロー実行制御部13は、対象フローセットジョブのフローセットジョブIDに関連付けられている進捗管理テーブル(
図9)において、実行が開始されたワークフローのフローIDに対応する状態の値を、「実行中」に更新する。
【0068】
本実施の形態において、フロー定義データは、フローテーブル、プラグインテーブル、及びデバイステーブル等を含む。
【0069】
図10は、フローテーブルの構成例を示す図である。
図10に示されるように、フローテーブルは、フローIDごとに、フロー構成を記憶する。フロー構成は、当該フローIDに係るワークフローの各処理単位を実行するプラグインの識別情報(以下、「プラグインID」という。)が、その実行順に配列されたものである。本実施の形態では、便宜上、入力処理に関するプラグインのプラグインIDは、「In」で開始されている。中間処理に関するプラグインのプラグインIDは、「Con」で開始されている。出力処理に関するプラグインのプラグインIDは、「Out」で開始されている。なお、以下においては、プラグインIDによって、プラグインそのものをも指し示す。
【0070】
なお、
図10におけるフローIDは、
図6における各ワークフローの識別番号に対応する。また、
図6における各矩形内には、
図10における各プラグインにおいて当該矩形に対応するプラグインのプラグインIDが記載されている。
【0071】
フロー実行制御部13は、特定されたフローIDに対するフロー構成が示す実行順で、各プラグインに処理を実行させる。各プラグインは、当該プラグインに係る処理の実行に際し、プラグインテーブル及びデバイステーブルを参照する。
【0072】
図11は、プラグインテーブルの構成例を示す図である。
図11に示されるように、プラグインテーブルは、プラグインごとに、プラグインID、プラグイン種別、設定情報、及びデバイスID等を記憶する。
【0073】
プラグイン種別は、プラグインが実行する処理の種別である。設定情報は、プラグインに対する設定情報である。デバイスIDは、外部装置と通信する必要の有るプラグインに関して、当該外部装置の識別情報である。各外部装置の詳細情報は、デバイステーブルに記憶されている。
【0074】
図12は、デバイステーブルの構成例を示す図である。
図12に示されるように、デバイステーブルは、デバイスIDごとに、デバイス種別及びデバイス情報等を記憶する。デバイス種別は、外部装置の種別を示す情報である。デバイス情報は、主に、プラグインが、外部装置との通信を行うために必要とされる情報である。
【0075】
フロー実行制御部13から実行を指示された各プラグインは、当該プラグインのプラグインIDに対してプラグインテーブルに記憶されている設定情報に基づいて、当該プラグインに係る処理を実行する。
【0076】
なお、プラグイン種別が「スキャン入力」であるプラグインの設定情報は、当該プラグインを含むワークフローに対してスキャン画像を入力する画像形成装置30に転送され、当該画像形成装置30において利用される。具体的には、当該画像形成装置30は、当該プラグインの設定情報に係るスキャン設定に基づいてスキャンを実行する。なお、画像形成装置30への当該プラグインの転送は、例えば、画像形成装置30の操作パネルを介して、実行対象とするワークフローのフローID又はワークフローセットのフローセットIDの入力に応じて実行される。すなわち、フローID又はフローセットIDが入力されると、画像形成装置30は、当該フローIDに係るワークフロー又はフローセットIDに係るワークフローセットにおいて実行対象とされているワークフローのスキャン入力のプラグインの設定情報の取得を配信管理サーバ10に要求する。配信管理サーバ10は、当該設定情報を、画像形成装置30に返信する。
【0077】
なお、ワークフローが、ワークフローセットの一部の処理として実行される場合、当該ワークフローの出力処理を実行するプラグインは、出力処理の形態に応じた態様で、対象フローセットジョブのフローセットジョブIDを出力する。フローセットジョブIDは、フロー実行制御部13からプラグインに通知されてもよい。
【0078】
例えば、出力形態が、印刷配信である場合、印刷用紙(例えば、申請書用紙)に、当該フローセットジョブIDが印字されてもよい。また、メール配信の場合、送信される電子メールにフローセットジョブIDが記述されてもよい。
【0079】
上記のようにして、ワークフローセットのフローセットジョブIDが、ワークフローセットを構成する各ワークフローの実行を指示するユーザに対して通知される。
【0080】
ユーザは、ワークフローセットにおいて2番目以降に実行されるワークフローに関して、例えば、次のような形態で、フローセットジョブIDを入力することができる。
【0081】
スキャン入力の場合、ユーザは、フローセットIDの入力と共に、フローセットジョブIDを入力する。この場合、画像形成装置30は、入力データ(スキャンされた画像データ)と共に、フローセットID及びフローセットジョブIDを、配信管理サーバ10に送信する。スキャン入力プラグイン121は、画像形成装置30から受信した画像データ、フローセットID、及びフローセットジョブIDを含むジョブ情報を、ジョブキュー15に記憶する。
【0082】
メール入力の場合、ユーザは、入力データが添付された電子メール内に、所定の形式でフローセットID及びフローセットジョブIDを記述する。メール入力プラグイン122は、当該電子メールからフローセットID及びフローセットジョブIDを抽出して、入力データと、当該フローセットID及びフローセットジョブIDとを含むジョブ情報を、ジョブキュー15に記憶する。
【0083】
なお、フローセットジョブIDが、複数種類のワークフローセットを跨いで一意である場合において、ワークフローに対する入力データの入力時にフローセットジョブIDが入力されるときは、フローセットIDの入力が省略されてもよい。この場合、フローセットジョブIDがジョブ情報に含まれていることをもって、ステップS104の判定が肯定されてもよい。
【0084】
一つのワークフローの実行が完了すると、フロー実行制御部13は、実行されたワークフローが、ワークフローセットを構成するワークフローであるか否かを判定する(S111)。フローセットジョブIDがジョブ情報に含まれているか、又はステップS106において、フローセットジョブIDが生成されていれば、実行されたワークフローは、ワークフローセットを構成するワークフローであると判定される。
【0085】
実行されたワークフローが、ワークフローセットを構成するワークフローである場合(S111でYes)、フロー実行制御部13は、対象フローセットジョブのフローセットジョブIDに関連付けられている進捗管理テーブル(
図9)において、実行されたワークフローのフローIDに対応する状態の値を、「完了」に更新する(S112)。
【0086】
例えば、
図6及び
図8に示されるワークフローの集合であるワークフローセット(shinseisho)の場合、申請者Aは、入力データと共に、フローセットID「shinseisha」が記述されたファイルを、所定のフォルダに保存しておく。その結果、ワークフローF001に関して、
図7の処理が実行される。この際、当該ワークフローセットのフローセットジョブに対して進捗管理テーブルが生成され、ワークフローF001に対する状態が「完了」に更新される。また、当該フローセットジョブのフローセットジョブIDが、申請書データと共に、印刷用紙に印字される。
【0087】
続いて、申請者Aが、フローセットジョブIDを画像形成装置30に入力し、画像形成装置30に申請書用紙のスキャンを実行させると、画像形成装置30は、スキャンされた画像データと共に、当該フローセットジョブIDを、配信管理サーバ10に送信する。配信管理サーバ10のフロー実行制御部13は、当該フローセットジョブIDに関連付けられている進捗管理テーブルに基づいて、ワークフローF002が実行対象であると判定する。そこで、ワークフローF002に関して、ステップS110以降が実行される。その結果、進捗管理テーブルにおいて、ワークフローF002の状態は「完了」に更新される。また、検査者Bには、当該フローセットジョブIDが、OCR結果のテキストデータと共に、電子メールによって通知される。
【0088】
続いて、検査者Bは、修正が反映されたテキストデータが添付され、フローセットジョブIDが記述された電子メールを、フローアドレス宛に送信する。配信管理サーバ10のフロー実行制御部13は、当該フローセットジョブIDに関連付けられている進捗管理テーブルに基づいて、ワークフローF003が実行対象であると判定する。そこで、ワークフローF003に関して、ステップS110以降が実行される。その結果、進捗管理テーブルにおいて、ワークフローF003の状態は「完了」に更新される。また、フローセットジョブIDと共に申請書が印刷される。承認者Cは、当該申請書を参照して、フローセットジョブIDを知ることができる。
【0089】
続いて、承認者Cは、当該フローセットジョブIDを画像形成装置30に入力し、サインが施された申請書のスキャンを、当該画像形成装置30に実行させる。画像形成装置30は、スキャンされた画像データと共に、当該フローセットジョブIDを、配信管理サーバ10に送信する。配信管理サーバ10のフロー実行制御部13は、当該フローセットジョブIDに関連付けられている進捗管理テーブルに基づいて、ワークフローF004が実行対象であると判定する。そこで、ワークフローF004に関して、ステップS110以降が実行される。その結果、進捗管理テーブルにおいて、ワークフローF004の状態は「完了」に更新される。また、申請書の画像データは、文書管理サーバ50に登録される。
【0090】
上述したように、本実施の形態によれば、現実空間における作業によって複数のワークフローに分割された、一つの業務フローを、一つのワークフローセットとして定義することができる。また、ワークフローセットを構成する各ワークフローに対して入力データを入力するユーザは、前段のワークフローによって出力されたフローセットジョブIDを入力すればく、フローIDの入力は必要とされない。したがって、各ユーザが、いずれのワークフローを実行すべきであるのかを認識する必要性を低減させることができる。その結果、文書に関する作業効率を向上させることができる。
【0091】
また、進捗管理テーブルは、フローセットジョブごとに生成されるため、同一のフローセットIDに係るフローセットジョブが並列的に実行された場合でも、配信管理サーバ10は、フローセットジョブごとに、次に実行すべきワークフローを特定することができる。
【0092】
なお、本実施の形態において、配信管理サーバ10は、データ処理装置の一例である。ジョブ投入部12は、受信部の一例である。フロー実行制御部13は、実行部の一例である。フローセット定義記憶部17は、第一の記憶部の一例である。進捗情報記憶部18は、第二の記憶部の一例である。ワークフローは、処理フローの一例である。
【0093】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。