JP2017126155A - 情報処理装置、システム、情報処理方法及びプログラム - Google Patents
情報処理装置、システム、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2017126155A JP2017126155A JP2016004403A JP2016004403A JP2017126155A JP 2017126155 A JP2017126155 A JP 2017126155A JP 2016004403 A JP2016004403 A JP 2016004403A JP 2016004403 A JP2016004403 A JP 2016004403A JP 2017126155 A JP2017126155 A JP 2017126155A
- Authority
- JP
- Japan
- Prior art keywords
- operation instruction
- workflow
- document
- processing apparatus
- engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】ワークフローに関する操作指示オブジェクトの選択に関する操作性を向上させると共に、操作指示オブジェクトの押し間違い等を軽減させる技術を提供することを目的とする。
【解決手段】ワークフローに関する複数のドキュメントのテキスト情報を取得する取得手段と、取得手段により取得された複数のテキスト情報の差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する決定手段と、決定手段により決定された操作指示オブジェクトに表示させるテキスト情報を指定し、操作指示オブジェクトの生成を画像処理装置に指示する生成指示手段と、を有することによって課題を解決する。
【選択図】図6
【解決手段】ワークフローに関する複数のドキュメントのテキスト情報を取得する取得手段と、取得手段により取得された複数のテキスト情報の差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する決定手段と、決定手段により決定された操作指示オブジェクトに表示させるテキスト情報を指定し、操作指示オブジェクトの生成を画像処理装置に指示する生成指示手段と、を有することによって課題を解決する。
【選択図】図6
Description
本発明は、ワークフローに関する情報処理装置、システム、情報処理方法及びプログラムに関する。
現在、ドキュメントを扱う定型的な業務の効率化のために、ワークフローエンジンを使用したドキュメント業務フローの自動実行が注目されている。
ワークフローエンジンは、サーバー上で動作し、予め決められたワークフロー手順に従って、サーバー上のドキュメントファイルをプリンタでプリントする、作業者にメールを通知する、等のタスクを実行していく。また、ワークフローエンジンは、サーバーとネットワーク接続されたPC等の機器に対し、ドキュメントファイルの保存や移動、編集等の処理を実行させることができる。更に、ワークフローエンジンは、ワークフローにおけるタスクとして、サーバーとネットワーク接続されたMFP等の機器に対し、ドキュメントファイルのプリント、保存された電子データの送信、等の処理を実行させることができる。
しかし、スキャンして電子データを送信するといった、紙文書のスキャンを伴う処理は、物理的な紙文書をスキャナにセットする必要があるため、ワークフローエンジン単体で自動的に実行することができない。このため、ワークフロー手順で決められているスキャンを実行するための操作指示ボタンをMFP上の操作部に予め生成しておき、ユーザーが手作業で紙文書をスキャナにセットし、操作指示ボタンを選択することでスキャン処理を実行させる必要がある。通常、この操作指示ボタンは、管理者やワークフローの生成者が、MFPの操作部上に予め生成しておく。
特許文献1では、ワークフローの開始時にワークフロー実行システムがMFP上にスキャン実行指示ボタンを生成する技術が開示されている。
また、同じ書式だが記載されている内容が異なるドキュメントを、同じワークフローによって並列に実行処理することがある。例えば、購入する物品が異なる複数の物品購入申請書を同じワークフローで処理する場合や、外出する訪問先や日時が異なる外出申請届を同じワークフローで処理する場合等である。この場合、MFP上には、同じワークフローを処理するスキャン実行指示ボタンが、処理するドキュメントごとに複数生成される。
ワークフローエンジンは、サーバー上で動作し、予め決められたワークフロー手順に従って、サーバー上のドキュメントファイルをプリンタでプリントする、作業者にメールを通知する、等のタスクを実行していく。また、ワークフローエンジンは、サーバーとネットワーク接続されたPC等の機器に対し、ドキュメントファイルの保存や移動、編集等の処理を実行させることができる。更に、ワークフローエンジンは、ワークフローにおけるタスクとして、サーバーとネットワーク接続されたMFP等の機器に対し、ドキュメントファイルのプリント、保存された電子データの送信、等の処理を実行させることができる。
しかし、スキャンして電子データを送信するといった、紙文書のスキャンを伴う処理は、物理的な紙文書をスキャナにセットする必要があるため、ワークフローエンジン単体で自動的に実行することができない。このため、ワークフロー手順で決められているスキャンを実行するための操作指示ボタンをMFP上の操作部に予め生成しておき、ユーザーが手作業で紙文書をスキャナにセットし、操作指示ボタンを選択することでスキャン処理を実行させる必要がある。通常、この操作指示ボタンは、管理者やワークフローの生成者が、MFPの操作部上に予め生成しておく。
特許文献1では、ワークフローの開始時にワークフロー実行システムがMFP上にスキャン実行指示ボタンを生成する技術が開示されている。
また、同じ書式だが記載されている内容が異なるドキュメントを、同じワークフローによって並列に実行処理することがある。例えば、購入する物品が異なる複数の物品購入申請書を同じワークフローで処理する場合や、外出する訪問先や日時が異なる外出申請届を同じワークフローで処理する場合等である。この場合、MFP上には、同じワークフローを処理するスキャン実行指示ボタンが、処理するドキュメントごとに複数生成される。
内容が異なる複数のドキュメントを同じワークフローによって同時に実行処理している場合、MFP上には、ワークフローエンジンによってスキャンを実行するボタンが、ドキュメントごとに複数生成される。ここで、ドキュメントの内容により、それらはスキャンした後のファイルの保存先やファイル名等を変更する設定がされている。そのため、どのドキュメントに対してどのスキャン実行ボタンを指示するかをユーザーに明確に区別させる必要がある。
しかし、スキャン実行ボタンが複数ある場合、ユーザーがそれらの違いを正確に把握してボタンを選択指示することは難しい。このため、ユーザーがスキャンするそれぞれのドキュメントに対して誤ったスキャン実行ボタンを指示してしまう可能性がある。
しかし、スキャン実行ボタンが複数ある場合、ユーザーがそれらの違いを正確に把握してボタンを選択指示することは難しい。このため、ユーザーがスキャンするそれぞれのドキュメントに対して誤ったスキャン実行ボタンを指示してしまう可能性がある。
本発明の情報処理装置は、ワークフローに関する複数のドキュメントのテキスト情報を取得する取得手段と、前記取得手段により取得された複数のテキスト情報の差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する決定手段と、前記決定手段により決定された操作指示オブジェクトに表示させるテキスト情報を指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示手段と、を有する。
本発明によれば、ワークフローに関する操作指示オブジェクトの選択に関する操作性を向上させると共に、操作指示オブジェクトの押し間違い等を軽減させる技術を提供することができる。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
図1は、ワークフローシステムのシステム構成の一例を示す図である。
ワークフローシステムは、MFP101と、ワークフローエンジンが搭載されたサーバー(以下、WFサーバー)102と、PC103と、がLAN104で構成されたネットワークによって接続されている。MFP101は、画像処理装置の一例である。WFサーバー102は、情報処理装置の一例である。
MFP101は、紙媒体をスキャンし、スキャンデータを基に用紙に画像を形成して印刷するコピー機能や、スキャンデータを電子的なデータとしてWFサーバー102やPC103にネットワーク経由で送信するスキャン送信といった機能を持つ。更に、MFP101は、WFサーバー102等、ネットワーク接続された外部機器からの要求により、送信された画像データをプリントアウトしたり、スキャン送信したりする機能も持つ。このとき、プリントやコピー、スキャン送信機能における設定値は、処理実行の要求元であるWFサーバー102が実行要求時に指定する。
WFサーバー102は、予め指定された処理順に従って順番に処理を実行するワークフローエンジン(以下、WFエンジン)の機能を搭載している。WFエンジンは、予め指示された処理順が記述されているワークフロー定義に従い、WFサーバー102やPC103におけるファイル操作、メールサーバーへのメール送信、MFP101に対する処理実行要求等の処理を自動的に行う。
図1は、ワークフローシステムのシステム構成の一例を示す図である。
ワークフローシステムは、MFP101と、ワークフローエンジンが搭載されたサーバー(以下、WFサーバー)102と、PC103と、がLAN104で構成されたネットワークによって接続されている。MFP101は、画像処理装置の一例である。WFサーバー102は、情報処理装置の一例である。
MFP101は、紙媒体をスキャンし、スキャンデータを基に用紙に画像を形成して印刷するコピー機能や、スキャンデータを電子的なデータとしてWFサーバー102やPC103にネットワーク経由で送信するスキャン送信といった機能を持つ。更に、MFP101は、WFサーバー102等、ネットワーク接続された外部機器からの要求により、送信された画像データをプリントアウトしたり、スキャン送信したりする機能も持つ。このとき、プリントやコピー、スキャン送信機能における設定値は、処理実行の要求元であるWFサーバー102が実行要求時に指定する。
WFサーバー102は、予め指定された処理順に従って順番に処理を実行するワークフローエンジン(以下、WFエンジン)の機能を搭載している。WFエンジンは、予め指示された処理順が記述されているワークフロー定義に従い、WFサーバー102やPC103におけるファイル操作、メールサーバーへのメール送信、MFP101に対する処理実行要求等の処理を自動的に行う。
図2は、MFP101のハードウェア構成の一例を示す図である。
MFP101は、スキャナ213及びプリンタ214を接続すると共に、操作表示部211、操作入力部212、及びLAN104を接続することが可能なコントローラユニット200を備える。
コントローラユニット200は、各種制御プログラムを実行するCPU201を有する。
CPU201は、ROM203に格納されているブートプログラムに基づきMFP101を起動する。また、このCPU201は、HDD204に格納されている制御プログラムを読み出し、RAM202をワークエリアとして所定の処理を実行する。
HDD204には、コピーやスキャン送信の機能を含む各種制御プログラムが格納されており、スキャナ213から読み込んだスキャンデータが格納される。
操作部出力I/F205は、操作表示部211へのデータ出力通信制御を行う。
操作部入力I/F206は、操作入力部212からのデータ入力通信制御を行う。
ネットワークI/F207は、LAN104に接続され、LAN104を介した情報の入出力制御を行う。
スキャナI/F208は、スキャナ213から画像データを入力すると共に、スキャナ制御データの入出力を行う。
プリンタI/F209は、プリンタ214へ出力画像データを出力すると共に、プリンタ制御データの入出力を行う。
以上、デバイス201から209までがシステムバス210上に配置される。
MFP101は、スキャナ213及びプリンタ214を接続すると共に、操作表示部211、操作入力部212、及びLAN104を接続することが可能なコントローラユニット200を備える。
コントローラユニット200は、各種制御プログラムを実行するCPU201を有する。
CPU201は、ROM203に格納されているブートプログラムに基づきMFP101を起動する。また、このCPU201は、HDD204に格納されている制御プログラムを読み出し、RAM202をワークエリアとして所定の処理を実行する。
HDD204には、コピーやスキャン送信の機能を含む各種制御プログラムが格納されており、スキャナ213から読み込んだスキャンデータが格納される。
操作部出力I/F205は、操作表示部211へのデータ出力通信制御を行う。
操作部入力I/F206は、操作入力部212からのデータ入力通信制御を行う。
ネットワークI/F207は、LAN104に接続され、LAN104を介した情報の入出力制御を行う。
スキャナI/F208は、スキャナ213から画像データを入力すると共に、スキャナ制御データの入出力を行う。
プリンタI/F209は、プリンタ214へ出力画像データを出力すると共に、プリンタ制御データの入出力を行う。
以上、デバイス201から209までがシステムバス210上に配置される。
操作入力部212は、タッチパネルやハードキー等の入力装置を備えた、ユーザーからの指示入力インターフェースである。ハードキーには、紙文書のスキャン実行開始を指示するためのスタートボタン等が存在する。
操作表示部211は、LCDやLED等の表示装置を備えた、ユーザーへの表示インターフェースである。
スキャナ213は、CCD等の光学的な読み取り装置を備え、紙媒体を光学的に走査して、電子的な画像データとして読み取る機能を持つ。
プリンタ214は、電子的な画像データを、用紙等の記録媒体上に画像として形成する機能を持つ。
また、MFP101は、ネットワークI/F207を介して、装置外の機器からプリント処理等の実行要求を受け付けることができる。処理の実行要求は、実行処理の種別や実行時の設定値情報等と共に、外部機器から依頼され、HDD204やRAM202等に一時保存された後、CPU201によって実行される。
更に、MFP101は、実行要求処理がスキャン送信等のスキャンを伴う処理の場合、操作表示部211に処理実行を開始する指示ボタン等を表示することができる。この場合、ユーザーがスキャナ213に原稿をセットし、操作入力部212を介して開始指示ボタンを指示することで、MFP101は、外部からの要求で指定された設定値に従ってスキャン処理を実行する。
CPU201がROM203又はHDD204等に記憶されているプログラムに基づき処理を実行することによって、MFP101の機能が実現される。
操作表示部211は、LCDやLED等の表示装置を備えた、ユーザーへの表示インターフェースである。
スキャナ213は、CCD等の光学的な読み取り装置を備え、紙媒体を光学的に走査して、電子的な画像データとして読み取る機能を持つ。
プリンタ214は、電子的な画像データを、用紙等の記録媒体上に画像として形成する機能を持つ。
また、MFP101は、ネットワークI/F207を介して、装置外の機器からプリント処理等の実行要求を受け付けることができる。処理の実行要求は、実行処理の種別や実行時の設定値情報等と共に、外部機器から依頼され、HDD204やRAM202等に一時保存された後、CPU201によって実行される。
更に、MFP101は、実行要求処理がスキャン送信等のスキャンを伴う処理の場合、操作表示部211に処理実行を開始する指示ボタン等を表示することができる。この場合、ユーザーがスキャナ213に原稿をセットし、操作入力部212を介して開始指示ボタンを指示することで、MFP101は、外部からの要求で指定された設定値に従ってスキャン処理を実行する。
CPU201がROM203又はHDD204等に記憶されているプログラムに基づき処理を実行することによって、MFP101の機能が実現される。
図3は、WFサーバー102のハードウェア構成の一例を示す図である。
WFサーバー102は、LAN104に接続可能な制御部300を持つ。
制御部300は、各種制御プログラムを実行するCPU301を有し、WFサーバー102の全体の動作を制御する。
CPU301は、ROM303やHDD304に格納されている制御プログラムを読み出し、RAM302をワークエリアとして所定の処理を実行する。HDD304には、WFエンジンやWEBサーバー、及びワークフローエディタ等の機能を含む各種制御プログラムが格納されている。また、HDD304には、WFエンジンが実行するワークフロー定義も格納されている。
ネットワークI/F305は、LAN104を介した情報の入出力制御を行う。
操作部出力I/F306は、操作表示部308へのデータ出力通信制御を行う。
操作部入力I/F307は、操作入力部309からのデータ入力通信制御を行う。
以上、デバイス301から307までが、システムバス310上に配置される。
WFサーバー102は、LAN104に接続可能な制御部300を持つ。
制御部300は、各種制御プログラムを実行するCPU301を有し、WFサーバー102の全体の動作を制御する。
CPU301は、ROM303やHDD304に格納されている制御プログラムを読み出し、RAM302をワークエリアとして所定の処理を実行する。HDD304には、WFエンジンやWEBサーバー、及びワークフローエディタ等の機能を含む各種制御プログラムが格納されている。また、HDD304には、WFエンジンが実行するワークフロー定義も格納されている。
ネットワークI/F305は、LAN104を介した情報の入出力制御を行う。
操作部出力I/F306は、操作表示部308へのデータ出力通信制御を行う。
操作部入力I/F307は、操作入力部309からのデータ入力通信制御を行う。
以上、デバイス301から307までが、システムバス310上に配置される。
操作表示部308は、LCDやLED等の表示装置を備えた、ユーザーへの表示インターフェースである。
操作入力部309は、キーボードやマウス等の入力装置を備えた、ユーザーからの指示入力インターフェースである。
また、WFサーバー102では、WEBサーバーが動作している。WFエンジンは、WEBサーバーを利用してHTMLコンテンツを提供することができる。WFエンジンは、CGI(Common Gateway Interface)等によって動的にコンテンツを生成することができ、ワークフロー実行のための操作画面を提供することができる。CPU301がROM303又はHDD304等に記憶されているプログラムに基づき処理を実行することによって、以下の機能や処理等が実現される。即ち、WFサーバー102の機能、WFエンジンやWEBサーバー後述するワークフローエディタ等、が実現される。また、後述する図5、図6、図8、図11、図14のフローチャートの処理等が実現される。
なお、PC103もWFサーバー102と同様のハードウェア構成を持つ。PC103のCPUやPC103のROM又はHDDに記憶されたプログラムに基づき処理を実行することによって、PC103の機能が実現される。
操作入力部309は、キーボードやマウス等の入力装置を備えた、ユーザーからの指示入力インターフェースである。
また、WFサーバー102では、WEBサーバーが動作している。WFエンジンは、WEBサーバーを利用してHTMLコンテンツを提供することができる。WFエンジンは、CGI(Common Gateway Interface)等によって動的にコンテンツを生成することができ、ワークフロー実行のための操作画面を提供することができる。CPU301がROM303又はHDD304等に記憶されているプログラムに基づき処理を実行することによって、以下の機能や処理等が実現される。即ち、WFサーバー102の機能、WFエンジンやWEBサーバー後述するワークフローエディタ等、が実現される。また、後述する図5、図6、図8、図11、図14のフローチャートの処理等が実現される。
なお、PC103もWFサーバー102と同様のハードウェア構成を持つ。PC103のCPUやPC103のROM又はHDDに記憶されたプログラムに基づき処理を実行することによって、PC103の機能が実現される。
図4は、ワークフローの例を模式的に示す図である。
フロー処理401から404は、WFエンジンによって実行されるワークフローのそれぞれの処理を表す。フロー処理401から404までが示すワークフローは、ドキュメントを処理するワークフローである。図4の例では、フロー処理401から404までが連続的に実行されることを示している。WFエンジンは、ワークフローの開始時に指定された電子データのドキュメントについて、これらの処理を連続的に実行させるよう制御する。
フロー処理401は、承認処理である。承認処理とは、例えばドキュメントを指定してワークフローの開始を指示したユーザーの上長に対して、ドキュメントに記載された内容について承認をもらうための処理である。より具体的には、WFエンジンは、ディレクトリサービスやデータベースから、ワークフローを開始したユーザーの上長のメールアドレスを取得し、承認の依頼とWFエンジンが提供するWEB画面での入力指示とをメールで送信する。WFエンジンが提供するWEB画面において上長が許可する旨の承認結果を入力すると、WFエンジンは、次のフロー処理402を実行する。ここで、上長が却下等、許可以外を入力した場合については、説明の簡略化のため省略する。
フロー処理402は、ドキュメントをMFP101によってプリントする処理である。より具体的には、WFエンジンは、WEB画面に印刷に関する指示画面を表示し、ユーザーが印刷を指示したら、MFP101に対してドキュメントを送信し、プリントを指示する。ドキュメントのプリントはプリントされた紙の取得を伴うため、WFエンジンが自動的にプリントするのではなく、ユーザーにプリントを指示させることでプリントを実行させる。このとき、プリント可能なMFPが複数台存在するのであれば、WFエンジンは、どのMFPにプリントをするかをユーザーに指示させることもできる。
フロー処理401から404は、WFエンジンによって実行されるワークフローのそれぞれの処理を表す。フロー処理401から404までが示すワークフローは、ドキュメントを処理するワークフローである。図4の例では、フロー処理401から404までが連続的に実行されることを示している。WFエンジンは、ワークフローの開始時に指定された電子データのドキュメントについて、これらの処理を連続的に実行させるよう制御する。
フロー処理401は、承認処理である。承認処理とは、例えばドキュメントを指定してワークフローの開始を指示したユーザーの上長に対して、ドキュメントに記載された内容について承認をもらうための処理である。より具体的には、WFエンジンは、ディレクトリサービスやデータベースから、ワークフローを開始したユーザーの上長のメールアドレスを取得し、承認の依頼とWFエンジンが提供するWEB画面での入力指示とをメールで送信する。WFエンジンが提供するWEB画面において上長が許可する旨の承認結果を入力すると、WFエンジンは、次のフロー処理402を実行する。ここで、上長が却下等、許可以外を入力した場合については、説明の簡略化のため省略する。
フロー処理402は、ドキュメントをMFP101によってプリントする処理である。より具体的には、WFエンジンは、WEB画面に印刷に関する指示画面を表示し、ユーザーが印刷を指示したら、MFP101に対してドキュメントを送信し、プリントを指示する。ドキュメントのプリントはプリントされた紙の取得を伴うため、WFエンジンが自動的にプリントするのではなく、ユーザーにプリントを指示させることでプリントを実行させる。このとき、プリント可能なMFPが複数台存在するのであれば、WFエンジンは、どのMFPにプリントをするかをユーザーに指示させることもできる。
フロー処理402でプリントが実行されると、WFエンジンは、次のフロー処理403を実行する。フロー処理403は、MFP101に対して紙文書をスキャンし、スキャンした電子データをWFサーバー102に送信させる処理である。より具体的には、まず、WFエンジンは、MFP101に対してスキャン送信を実行する指示ボタンの生成を指示する。ここで、WFエンジンは、ボタンを指示した際に実行されるスキャン送信の設定値を、指示ボタンに関連付けて指定する。更に、WFエンジンは、MFP101に対してスキャン送信開始指示ボタンを生成したことを、ワークフローを開始したユーザーに対してメールで通知する。ユーザーが、MFP101においてスキャン送信開始指示ボタンを指定し、スキャン送信を実行すると、WFエンジンが指定した送信先設定にスキャンによって読み取られた電子データが送信される。WFエンジンは、この電子データの受信を監視し、電子データを受信したことを確認すると、次のフロー処理404を実行する。
フロー処理404は、電子データをPCやファイルサーバー等のファイルシステムに、ファイルとして保存する処理である。より具体的には、WFエンジンは、受信した電子データを、所定のファイル形式に変換したり、ファイル名を変更したりした後、ファイルシステムの指定された場所にファイルを移動する。
フロー処理404において、ファイルの移動を完了すると、WFエンジンは、ワークフローの処理をすべて実行した旨のメールをユーザーに送信し、ワークフローの実行を完了する。
フロー処理404は、電子データをPCやファイルサーバー等のファイルシステムに、ファイルとして保存する処理である。より具体的には、WFエンジンは、受信した電子データを、所定のファイル形式に変換したり、ファイル名を変更したりした後、ファイルシステムの指定された場所にファイルを移動する。
フロー処理404において、ファイルの移動を完了すると、WFエンジンは、ワークフローの処理をすべて実行した旨のメールをユーザーに送信し、ワークフローの実行を完了する。
フロー処理401から404までのワークフローでは、以下の処理を順に行っている。即ち、電子データとして生成した申請書に対して、上長による確認と承認、プリント、プリントした紙文書への捺印やサイン、捺印後の紙文書の電子データとしての保存と紙文書の提出、という処理を順番に行っている。
これは、一般的なオフィスで処理されている申請書処理フローに基づく例である。
図4に示したワークフローは、以降の実施形態の説明において、WFエンジンが実行するワークフローの例として使用する。また、ワークフローにおけるフロー処理401から404までは、上述したようにいくつかの細かい処理に細分することができる。
フロー処理401から404のような、ある程度の詳細処理をまとめたワークフローの実行単位を、便宜上タスクと呼ぶ。また、各タスクにおける、メールの送信やファイル名の変更等の詳細な処理実行単位を、便宜上アクションと呼ぶ。例えば、フロー処理401は一つのタスクと表現することができる。
更に、フロー処理401から404までにおける一連のワークフローは、同一のユーザーによって同時に複数実行することがある。購入する物品が異なる複数の物品購入申請書を同じワークフローで処理する場合や、外出する訪問先や日時が異なる外出申請届を同じワークフローで処理する場合等である。
このように、同一のワークフローによって実際に処理する申請書が複数存在し、それらが同時にWFエンジンによって処理されている場合、それぞれのワークフローの処理を、便宜上ワークフローのインスタンスと呼ぶ。WFエンジンがワークフローを実行する場合、ワークフローのインスタンスを生成し、そのインスタンスにおいてワークフローのタスクやアクションを実行していく。同一のワークフローが複数同時に実行されている場合でも、各インスタンスによってそれぞれのドキュメントが別々に処理されている。
本実施形態では特に同一ユーザーによる同一ワークフローのインスタンス処理を同時に実行している場合について説明する。
これは、一般的なオフィスで処理されている申請書処理フローに基づく例である。
図4に示したワークフローは、以降の実施形態の説明において、WFエンジンが実行するワークフローの例として使用する。また、ワークフローにおけるフロー処理401から404までは、上述したようにいくつかの細かい処理に細分することができる。
フロー処理401から404のような、ある程度の詳細処理をまとめたワークフローの実行単位を、便宜上タスクと呼ぶ。また、各タスクにおける、メールの送信やファイル名の変更等の詳細な処理実行単位を、便宜上アクションと呼ぶ。例えば、フロー処理401は一つのタスクと表現することができる。
更に、フロー処理401から404までにおける一連のワークフローは、同一のユーザーによって同時に複数実行することがある。購入する物品が異なる複数の物品購入申請書を同じワークフローで処理する場合や、外出する訪問先や日時が異なる外出申請届を同じワークフローで処理する場合等である。
このように、同一のワークフローによって実際に処理する申請書が複数存在し、それらが同時にWFエンジンによって処理されている場合、それぞれのワークフローの処理を、便宜上ワークフローのインスタンスと呼ぶ。WFエンジンがワークフローを実行する場合、ワークフローのインスタンスを生成し、そのインスタンスにおいてワークフローのタスクやアクションを実行していく。同一のワークフローが複数同時に実行されている場合でも、各インスタンスによってそれぞれのドキュメントが別々に処理されている。
本実施形態では特に同一ユーザーによる同一ワークフローのインスタンス処理を同時に実行している場合について説明する。
図5は、WFエンジンによるインスタンス管理の処理の流れを説明するフローチャートである。
図5で説明するフローは、WFエンジンが実行するメインの処理であり、ワークフロー実行要求に応じてワークフローのインスタンスを生成し、管理する処理である。実際のワークフローのタスクやアクションに関する処理を行うインスタンスの処理については後述する。
まず、S501において、WFエンジンは、ワークフロー実行に関するイベントを受信待機する。ワークフロー実行に関するイベントは、ユーザーからのワークフロー開始指示、ワークフロー実行によるMFPからのプリント実行通知、スキャン送信実行通知、WFサーバーやPCからのファイル受信通知等である。
次に、S502において、WFエンジンは、ワークフロー実行に関するイベントを受信したかを判断する。イベントを受信していない場合(S502においてNO)、WFエンジンは、S501の処理に戻る。一方、ワークフロー実行に関するイベントを受信したと判断した場合(S502においてYES)、WFエンジンは、S503に進む。S503において、WFエンジンは、受信したイベントがワークフローの開始指示であるかどうかを判断する。
ワークフローの実行指示であると判断した場合(S503においてYES)、WFエンジンは、S507に進む。S507において、WFエンジンは、ワークフローのインスタンスを生成し、実行する。各インスタンスは、WFエンジンによって実行されるが、WFエンジンのインスタンス管理フローとは別のプロセスとして実行される。
インスタンスを生成、実行したWFエンジンは、S501の処理に戻る。
図5で説明するフローは、WFエンジンが実行するメインの処理であり、ワークフロー実行要求に応じてワークフローのインスタンスを生成し、管理する処理である。実際のワークフローのタスクやアクションに関する処理を行うインスタンスの処理については後述する。
まず、S501において、WFエンジンは、ワークフロー実行に関するイベントを受信待機する。ワークフロー実行に関するイベントは、ユーザーからのワークフロー開始指示、ワークフロー実行によるMFPからのプリント実行通知、スキャン送信実行通知、WFサーバーやPCからのファイル受信通知等である。
次に、S502において、WFエンジンは、ワークフロー実行に関するイベントを受信したかを判断する。イベントを受信していない場合(S502においてNO)、WFエンジンは、S501の処理に戻る。一方、ワークフロー実行に関するイベントを受信したと判断した場合(S502においてYES)、WFエンジンは、S503に進む。S503において、WFエンジンは、受信したイベントがワークフローの開始指示であるかどうかを判断する。
ワークフローの実行指示であると判断した場合(S503においてYES)、WFエンジンは、S507に進む。S507において、WFエンジンは、ワークフローのインスタンスを生成し、実行する。各インスタンスは、WFエンジンによって実行されるが、WFエンジンのインスタンス管理フローとは別のプロセスとして実行される。
インスタンスを生成、実行したWFエンジンは、S501の処理に戻る。
一方、ワークフローの開始指示ではないと判断した場合(S503においてNO)、WFエンジンは、S504に進む。S504において、WFエンジンは、受信したイベントがインスタンスからの終了通知かどうかを判断する。各インスタンスにおいては、インスタンスにおける処理が終了した場合に、WFエンジンのインスタンス管理に対して終了イベントを通知する。
インスタンスの終了通知ではないと判断した場合(S504においてNO)、WFエンジンは、S506に進む。S506において、WFエンジンは、イベントをインスタンスに通知する。ここで、WFエンジンは、受信したイベントがどのインスタンスで処理されるイベントであるかを判断して、然るべきインスタンスにイベントを通知する。一方、インスタンスからの終了通知であると判断した場合(S504においてYES)、WFエンジンは、S505に進む。S505において、WFエンジンは、WFエンジンのインスタンス管理が生成した全てのインスタンスが終了したかどうかを判断する。まだ終了していていないインスタンスが存在する場合(S505においてNO)、WFエンジンは、S501の処理に戻る。全てのインスタンスが終了した場合(S505においてYES)、WFエンジンは、図5に示すフローチャートの処理を完了する。
このように、WFエンジンは、ワークフローインスタンスの生成、管理を行う。
インスタンスの終了通知ではないと判断した場合(S504においてNO)、WFエンジンは、S506に進む。S506において、WFエンジンは、イベントをインスタンスに通知する。ここで、WFエンジンは、受信したイベントがどのインスタンスで処理されるイベントであるかを判断して、然るべきインスタンスにイベントを通知する。一方、インスタンスからの終了通知であると判断した場合(S504においてYES)、WFエンジンは、S505に進む。S505において、WFエンジンは、WFエンジンのインスタンス管理が生成した全てのインスタンスが終了したかどうかを判断する。まだ終了していていないインスタンスが存在する場合(S505においてNO)、WFエンジンは、S501の処理に戻る。全てのインスタンスが終了した場合(S505においてYES)、WFエンジンは、図5に示すフローチャートの処理を完了する。
このように、WFエンジンは、ワークフローインスタンスの生成、管理を行う。
図6は、ワークフローインスタンスの処理の流れを説明するフローチャートである。上述したように、各インスタンスは、WFエンジンによって実行されるが、WFエンジンのインスタンス管理フローとは別のプロセスとして実行される。
まず、S601において、WFエンジンは、ワークフローの開始を受け付ける。これは、図5のS507において、別プロセスとして実行を指示された際に通知された、ユーザーのワークフロー指示の受付とワークフローにおいて処理するドキュメントの受信とを行う。
次に、S602において、WFエンジンは、指示されたワークフローのワークフロー定義をHDD304から読み込む。
更に、S603において、WFエンジンは、読み込んだワークフローの定義に従い、ワークフローのタスク及びそれらに含まれるアクションを読み込んで順番に実行していく。
まず、S604において、WFエンジンは、読み込んだアクションにおいて、そのアクションがMFP101に対してスキャン実行ボタンの生成を指示するアクションであるかどうかを判断する。スキャン実行ボタンの生成を指示するアクションであると判断した場合(S604においてYES)、WFエンジンは、S605に進む。
S605において、WFエンジンは、現在実行しているインスタンスが複数存在するかどうかを判断する。ワークフローを実行しているインスタンスが自身のインスタンスだけであると判断した場合(S605においてNO)、WFエンジンは、S609に進む。
まず、S601において、WFエンジンは、ワークフローの開始を受け付ける。これは、図5のS507において、別プロセスとして実行を指示された際に通知された、ユーザーのワークフロー指示の受付とワークフローにおいて処理するドキュメントの受信とを行う。
次に、S602において、WFエンジンは、指示されたワークフローのワークフロー定義をHDD304から読み込む。
更に、S603において、WFエンジンは、読み込んだワークフローの定義に従い、ワークフローのタスク及びそれらに含まれるアクションを読み込んで順番に実行していく。
まず、S604において、WFエンジンは、読み込んだアクションにおいて、そのアクションがMFP101に対してスキャン実行ボタンの生成を指示するアクションであるかどうかを判断する。スキャン実行ボタンの生成を指示するアクションであると判断した場合(S604においてYES)、WFエンジンは、S605に進む。
S605において、WFエンジンは、現在実行しているインスタンスが複数存在するかどうかを判断する。ワークフローを実行しているインスタンスが自身のインスタンスだけであると判断した場合(S605においてNO)、WFエンジンは、S609に進む。
一方、ワークフローを実行しているインスタンスが複数存在すると判断した場合(S605においてYES)、WFエンジンは、S606に進む。S606において、WFエンジンは、各インスタンスにおいて処理しているドキュメントのテキスト情報を取得する。S606の処理は、ドキュメント内から文字コードとして表現されるテキスト情報を抽出する処理である。S606の処理は、単純にファイル内からテキスト情報を抽出する方法や、OCR等によってテキスト情報を抽出する方法でもよい。
次に、S607において、WFエンジンは、それぞれのインスタンスにおけるドキュメントから抽出したテキスト情報を比較し、差分のテキスト情報を取得する。S607の処理は、単純な文字列比較であってもよいし、フォントサイズやレイアウト情報等を考慮した比較でもよい。
各インスタンスにおけるドキュメントについて、差分となるテキスト情報を取得した場合、S608において、WFエンジンは、それぞれのインスタンスにおいて、MFPで生成させるスキャン実行ボタンのボタン表示名に、差分となるテキスト情報を付加する。付加するテキスト情報としては、差分となるテキスト情報が複数存在する場合、WFエンジンは、その何れを選択してもよい。本実施形態では、WFエンジンは、差分となる連続文字数が最も大きいものを選択するものとする。
次に、S607において、WFエンジンは、それぞれのインスタンスにおけるドキュメントから抽出したテキスト情報を比較し、差分のテキスト情報を取得する。S607の処理は、単純な文字列比較であってもよいし、フォントサイズやレイアウト情報等を考慮した比較でもよい。
各インスタンスにおけるドキュメントについて、差分となるテキスト情報を取得した場合、S608において、WFエンジンは、それぞれのインスタンスにおいて、MFPで生成させるスキャン実行ボタンのボタン表示名に、差分となるテキスト情報を付加する。付加するテキスト情報としては、差分となるテキスト情報が複数存在する場合、WFエンジンは、その何れを選択してもよい。本実施形態では、WFエンジンは、差分となる連続文字数が最も大きいものを選択するものとする。
例として、2つのワークフローインスタンスが存在し、それぞれが処理するドキュメントから抽出したテキスト情報が以下のようなものだったとする。
インスタンス1:
「購買依頼申請書 2015年7月10日 開発部 鈴木 一郎 品名:USBメモリ 単価:2000円 数量:1個 金額:2000円 備考:」
インスタンス2:
「購買依頼申請書 2015年7月11日 開発部 鈴木 一郎 品名:セキュリティソフト 単価:10000円 数量:1個 金額:10000円 備考:」
WFエンジンは、ここから、両テキスト情報の最小編集距離等を求めることで、テキスト情報の差分を得ることができる。ここで、編集距離とは、2つの文字列がどの程度異なっているかを示す値である。編集距離は、ある文字列にどれだけ挿入、置換、削除等の編集を加えれば別の文字列になるかに基づいて求められる。編集距離が最小になるときの、それぞれの文字列に対する挿入、置換、削除の編集操作を行った部分が、両文字列のテキスト情報の差分として求められる。例えば、インスタンス1とインスタンス2とにおけるテキスト情報の最小編集距離を求める場合、テキスト情報の前方から編集箇所を求めると、「7月10日」と「7月11日」の「0」を「1」に置換する箇所が最初に求められる。したがって、この「0」と「1」とがテキスト情報の差分の候補として求められる。WFエンジンは、これをテキスト情報の後方まで繰り返し、編集操作回数が最小となるときのテキスト情報の差分を抽出する。このように、WFエンジンが両テキスト情報の最小編集距離を求めることにより、以下のようにテキスト情報の差分が求められたとする。
インスタンス1:
「0」、「USBメモリ」、「2」、「2」
インスタンス2:
「1」、「セキュリティソフト」、「10」、「10」
このうち、最も文字数の多いものとして、インスタンス1のフローにおけるスキャン実行ボタンには「USBメモリ」、インスタンス2のフローにおけるスキャン実行ボタンには「セキュリティソフト」という文字列が付加されることになる。その他にも、WFエンジンは、テキスト情報のレイアウト情報や修飾情報を利用して、フォントサイズが最も大きいもの、ドキュメントの中央部に位置しているもの、を選択するようにしてもよい。S608の処理は、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する処理の一例である。
次に、S609において、WFエンジンは、S608で決定したテキスト情報と共に、MFP101に対してスキャン実行ボタンの生成を指示する。
インスタンス1:
「購買依頼申請書 2015年7月10日 開発部 鈴木 一郎 品名:USBメモリ 単価:2000円 数量:1個 金額:2000円 備考:」
インスタンス2:
「購買依頼申請書 2015年7月11日 開発部 鈴木 一郎 品名:セキュリティソフト 単価:10000円 数量:1個 金額:10000円 備考:」
WFエンジンは、ここから、両テキスト情報の最小編集距離等を求めることで、テキスト情報の差分を得ることができる。ここで、編集距離とは、2つの文字列がどの程度異なっているかを示す値である。編集距離は、ある文字列にどれだけ挿入、置換、削除等の編集を加えれば別の文字列になるかに基づいて求められる。編集距離が最小になるときの、それぞれの文字列に対する挿入、置換、削除の編集操作を行った部分が、両文字列のテキスト情報の差分として求められる。例えば、インスタンス1とインスタンス2とにおけるテキスト情報の最小編集距離を求める場合、テキスト情報の前方から編集箇所を求めると、「7月10日」と「7月11日」の「0」を「1」に置換する箇所が最初に求められる。したがって、この「0」と「1」とがテキスト情報の差分の候補として求められる。WFエンジンは、これをテキスト情報の後方まで繰り返し、編集操作回数が最小となるときのテキスト情報の差分を抽出する。このように、WFエンジンが両テキスト情報の最小編集距離を求めることにより、以下のようにテキスト情報の差分が求められたとする。
インスタンス1:
「0」、「USBメモリ」、「2」、「2」
インスタンス2:
「1」、「セキュリティソフト」、「10」、「10」
このうち、最も文字数の多いものとして、インスタンス1のフローにおけるスキャン実行ボタンには「USBメモリ」、インスタンス2のフローにおけるスキャン実行ボタンには「セキュリティソフト」という文字列が付加されることになる。その他にも、WFエンジンは、テキスト情報のレイアウト情報や修飾情報を利用して、フォントサイズが最も大きいもの、ドキュメントの中央部に位置しているもの、を選択するようにしてもよい。S608の処理は、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する処理の一例である。
次に、S609において、WFエンジンは、S608で決定したテキスト情報と共に、MFP101に対してスキャン実行ボタンの生成を指示する。
図7は、S609において、MFP101の操作表示部211に表示される操作画面の一例を示す図である。
画面701は、ユーザーが予め処理内容や設定値を設定しておき、その処理を実行するボタンを生成、表示する画面である。通常はユーザーがMFP101の操作部画面から設定してボタンを生成するが、MFP101の外部からボタン生成のための設定値データを指示することで、同様に画面701上に処理実行ボタンを生成することもできる。
ボタン702、703は、S609におけるWFエンジンのスキャン実行ボタン生成指示によって、MFP101が操作表示部211の画面上に生成したボタンである。
ここで、ボタン702はインスタンス1のワークフローの実行において生成されたボタンである。ボタン703はインスタンス2のワークフローの実行において生成されたボタンである。
テキスト情報704及び705は、先ほど求めた、異なるインスタンスにおいて処理されているドキュメントのテキスト情報の差分情報である。このように、それぞれのインスタンスにおけるスキャン実行ボタン上に両者のインスタンスが処理するドキュメントのテキスト情報の差分情報がテキスト情報として表示されている。このボタン上に表示されているテキスト情報は、これからスキャンするドキュメント内のテキスト情報から取得しているため、ドキュメントを見ればボタン上に表示されているテキスト情報が何れかに記載されている。これにより、ユーザーは、ドキュメントとボタンとを簡単に対応づけることができ、同じワークフローのインスタンスを複数実行している場合でも、あるドキュメントに対してどのボタンを押下してスキャンすればよいか容易に認識できる。
画面701は、ユーザーが予め処理内容や設定値を設定しておき、その処理を実行するボタンを生成、表示する画面である。通常はユーザーがMFP101の操作部画面から設定してボタンを生成するが、MFP101の外部からボタン生成のための設定値データを指示することで、同様に画面701上に処理実行ボタンを生成することもできる。
ボタン702、703は、S609におけるWFエンジンのスキャン実行ボタン生成指示によって、MFP101が操作表示部211の画面上に生成したボタンである。
ここで、ボタン702はインスタンス1のワークフローの実行において生成されたボタンである。ボタン703はインスタンス2のワークフローの実行において生成されたボタンである。
テキスト情報704及び705は、先ほど求めた、異なるインスタンスにおいて処理されているドキュメントのテキスト情報の差分情報である。このように、それぞれのインスタンスにおけるスキャン実行ボタン上に両者のインスタンスが処理するドキュメントのテキスト情報の差分情報がテキスト情報として表示されている。このボタン上に表示されているテキスト情報は、これからスキャンするドキュメント内のテキスト情報から取得しているため、ドキュメントを見ればボタン上に表示されているテキスト情報が何れかに記載されている。これにより、ユーザーは、ドキュメントとボタンとを簡単に対応づけることができ、同じワークフローのインスタンスを複数実行している場合でも、あるドキュメントに対してどのボタンを押下してスキャンすればよいか容易に認識できる。
S609でスキャン実行ボタンを生成した後、S610において、WFエンジンは、MFP101でスキャン送信の実行を促す旨のメッセージを記載したメールを、ユーザーに対して通知する。このとき、WFエンジンは、ワークフローインスタンスで処理しているドキュメントと、スキャン実行指示ボタン上に表示したテキスト情報とをメールに添付する。これにより、メールを受信したユーザーは、メールの添付内容を確認することで、どのドキュメントに対してどのボタンを押下してスキャン送信を実行すればよいのかが分かる。
その後、S611において、WFエンジンは、次のアクションの読み込みを行う。
次に、S612において、WFエンジンは、読み込んだアクションがワークフローの終了を示すアクションであるかを判断する。ワークフローの終了を示すアクションではないと判断した場合(S612においてNO)、WFエンジンは、S604の処理に戻る。ワークフロー終了のアクションであると判断した場合(S612においてYES)、WFエンジンは、S613に進む。
S613において、WFエンジンは、ワークフローインスタンス終了のイベント通知を行い、図6に示すフローチャートの処理を終了する。
その後、S611において、WFエンジンは、次のアクションの読み込みを行う。
次に、S612において、WFエンジンは、読み込んだアクションがワークフローの終了を示すアクションであるかを判断する。ワークフローの終了を示すアクションではないと判断した場合(S612においてNO)、WFエンジンは、S604の処理に戻る。ワークフロー終了のアクションであると判断した場合(S612においてYES)、WFエンジンは、S613に進む。
S613において、WFエンジンは、ワークフローインスタンス終了のイベント通知を行い、図6に示すフローチャートの処理を終了する。
一方、スキャン実行ボタンの生成を指示するアクションではないと判断した場合(S604においてNO)、WFエンジンは、S614に進む。S614において、WFエンジンは、ユーザーのスキャン実行を待機するアクションであるかどうかを判断する。スキャン実行待機アクションであると判断した場合(S614においてYES)、WFエンジンは、S615に進む。S615において、WFエンジンは、スキャン送信によって送信されたファイルの受信を確認する。S615の処理は、スキャン送信の送信先として設定されたフォルダにおいて、予め設定したファイルが生成されたかどうかを確認する処理である。その他にも、WFエンジンは、MFP101に対して、WFエンジンが生成指示したボタンの押下によるジョブが実行されたかどうかを問い合わせ、問い合わせの結果に基づきジョブが実行されたかどうかを判断するようにしてもよい。
ファイルの受信を確認しない場合(S615においてNO)、WFエンジンは、S615の処理を繰り返す。ファイルの受信を確認した場合(S615においてYES)、WFエンジンは、S616に進む。S616において、WFエンジンは、MFP101に対してスキャン実行ボタンの削除を指示する。WFエンジンは、S609におけるスキャン実行ボタン生成時に、ボタンを一意に特定可能なID等を設定値の一部として渡しておき、削除指示においてそのIDを指示することで、該当するボタンを削除させる。
その後、WFエンジンは、S611の処理を行う。
一方、スキャン実行待機アクションではないと判断した場合(S614においてNO)、WFエンジンは、S617に進む。S617において、WFエンジンは、アクションに関する処理を実際に実行する。アクションに関する処理には、MFP101へのプリント処理や上司ユーザーによる承認処理等が含まれるが、詳細な説明は省略する。
その後、WFエンジンは、先ほどと同様にS611の処理を行う。
ファイルの受信を確認しない場合(S615においてNO)、WFエンジンは、S615の処理を繰り返す。ファイルの受信を確認した場合(S615においてYES)、WFエンジンは、S616に進む。S616において、WFエンジンは、MFP101に対してスキャン実行ボタンの削除を指示する。WFエンジンは、S609におけるスキャン実行ボタン生成時に、ボタンを一意に特定可能なID等を設定値の一部として渡しておき、削除指示においてそのIDを指示することで、該当するボタンを削除させる。
その後、WFエンジンは、S611の処理を行う。
一方、スキャン実行待機アクションではないと判断した場合(S614においてNO)、WFエンジンは、S617に進む。S617において、WFエンジンは、アクションに関する処理を実際に実行する。アクションに関する処理には、MFP101へのプリント処理や上司ユーザーによる承認処理等が含まれるが、詳細な説明は省略する。
その後、WFエンジンは、先ほどと同様にS611の処理を行う。
以上の処理によれば、複数のワークフローインスタンスが同時に実行されている場合、MFP上にはそれぞれのワークフローインスタンスを区別することが可能なテキスト情報が表示されたスキャン実行ボタンが自動的に生成される。それぞれのボタン上に表示されるテキスト情報は、それぞれのインスタンスが処理するドキュメント内のテキスト情報から抽出した差分テキスト情報である。そのため、ユーザーはスキャン実行ボタンとそれを押下して処理するべきドキュメントとを容易に紐づけることができる。また、ドキュメントとそれを処理するスキャン実行ボタンに記載されたテキスト情報との組み合わせは、処理を実行する前にユーザーにメール等によって通知されるため、ユーザーは処理実行前にそれらの組み合わせを知ることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するMFPでの操作性を向上させることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するMFPでの操作性を向上させることができる。
(変形例1)
また、WFエンジンは、複数のワークフローインスタンスが実行されている場合に、それぞれのドキュメントを画像データに変換し、画像データの差分を取得した後、その差分画像データをMFPのスキャン実行ボタン上に表示させるようにしてもよい。
図8は、ワークフローインスタンスの処理の流れを説明するフローチャートである。ここで、S801からS805までの処理は、図6におけるS601からS605までの処理と同等である。
ワークフローを実行しているインスタンスが複数存在すると判断した場合(S805においてYES)、WFエンジンは、S806に進む。S806において、WFエンジンは、各インスタンスにおいて処理しているドキュメントを画像データに変換する。画像データへの変換は、プリンタドライバを利用して印刷用のラスタデータに変換する方法等がある。その他にもドキュメントのフォーマットに対応した表示アプリケーションによってディスプレイ表示用の画像データ生成し、その画像をキャプチャする方法等があるが、WFエンジンは、何れの方法で画像データを変換してもよい。
次に、S807において、WFエンジンは、それぞれのワークフローインスタンスにおけるドキュメントから生成した画像データを比較し、画像データの差分情報を取得する。画像データの差分情報の取得についてはいくつか方法がある。WFエンジンは、ノイズ等を取り除いた上で単純に画素単位のデータ比較を行う方法や、四分木によって再帰的に領域を分割しながら差異となる画像データの領域を特定する方法等、何れの方法で差分情報を取得してもよい。
また、WFエンジンは、複数のワークフローインスタンスが実行されている場合に、それぞれのドキュメントを画像データに変換し、画像データの差分を取得した後、その差分画像データをMFPのスキャン実行ボタン上に表示させるようにしてもよい。
図8は、ワークフローインスタンスの処理の流れを説明するフローチャートである。ここで、S801からS805までの処理は、図6におけるS601からS605までの処理と同等である。
ワークフローを実行しているインスタンスが複数存在すると判断した場合(S805においてYES)、WFエンジンは、S806に進む。S806において、WFエンジンは、各インスタンスにおいて処理しているドキュメントを画像データに変換する。画像データへの変換は、プリンタドライバを利用して印刷用のラスタデータに変換する方法等がある。その他にもドキュメントのフォーマットに対応した表示アプリケーションによってディスプレイ表示用の画像データ生成し、その画像をキャプチャする方法等があるが、WFエンジンは、何れの方法で画像データを変換してもよい。
次に、S807において、WFエンジンは、それぞれのワークフローインスタンスにおけるドキュメントから生成した画像データを比較し、画像データの差分情報を取得する。画像データの差分情報の取得についてはいくつか方法がある。WFエンジンは、ノイズ等を取り除いた上で単純に画素単位のデータ比較を行う方法や、四分木によって再帰的に領域を分割しながら差異となる画像データの領域を特定する方法等、何れの方法で差分情報を取得してもよい。
図9は、S806によって画像データに変換されたドキュメントの一例を示す図である。
図9(A)の画像データ901と画像データ902とは、それぞれ異なるワークフローインスタンスによって処理されているドキュメントを画像データに変換したものである。更に、WFエンジンが、この2つの画像データをS807においてデータ比較し、画像の差分情報を画像データ上に反映したものが図9(B)の画像データ911と画像データ912とである。図9の例では、WFエンジンは、検出した画像差分における領域の背景色を元画像と変更することで、画像データの差分を表現している。画像データ911における画像データ912との差分領域は、領域913、領域915である。また、画像データ912における画像データ911との差分領域は、領域914、領域916である。領域913と領域914、領域915と領域916がそれぞれ対応する画像差分として検出された差分領域である。
S808において、WFエンジンは、S807で検出した画像データの差分データ又はその画像データの一部を、MFPにて生成するスキャン実行ボタンに表示する画像データとして付加する。
更に、S809において、WFエンジンは、S808で付加した画像データと共に、MFP101に対してスキャン実行ボタンの生成を指示する。
図9(A)の画像データ901と画像データ902とは、それぞれ異なるワークフローインスタンスによって処理されているドキュメントを画像データに変換したものである。更に、WFエンジンが、この2つの画像データをS807においてデータ比較し、画像の差分情報を画像データ上に反映したものが図9(B)の画像データ911と画像データ912とである。図9の例では、WFエンジンは、検出した画像差分における領域の背景色を元画像と変更することで、画像データの差分を表現している。画像データ911における画像データ912との差分領域は、領域913、領域915である。また、画像データ912における画像データ911との差分領域は、領域914、領域916である。領域913と領域914、領域915と領域916がそれぞれ対応する画像差分として検出された差分領域である。
S808において、WFエンジンは、S807で検出した画像データの差分データ又はその画像データの一部を、MFPにて生成するスキャン実行ボタンに表示する画像データとして付加する。
更に、S809において、WFエンジンは、S808で付加した画像データと共に、MFP101に対してスキャン実行ボタンの生成を指示する。
図10は、S809において、MFP101の操作表示部211に表示される操作画面の一例を示す図である。
画面1001は、図7の画面701と同様に、ユーザーが予め処理内容や設定値を設定しておき、その処理を実行するボタンを生成、表示する画面である。
図10(A)のスキャン実行ボタン1002、1003は、S809におけるWFエンジンのスキャン実行ボタン生成指示によって、MFP101が操作表示部211の画面上に生成したボタンである。このように、両ボタン上には、インスタンスが処理するドキュメントの差分画像データ1004、1005が表示されている。
差分画像データ1004は、S807における画像差分データ抽出によって検出された画像差分の領域915のデータの一部である。差分画像データ1004は、画像データ901で示されるドキュメントを処理するワークフローインスタンスにおけるスキャン実行ボタン上に表示される。
同じく、差分画像データ1005は、S807における画像差分データ抽出によって検出された画像差分の領域916のデータの一部である。差分画像データ1005は、画像データ902で示されるドキュメントを処理するワークフローインスタンスにおけるスキャン実行ボタン上に表示される。
このように、実行しているワークフローのインスタンスにおいてスキャン実行ボタン上に、処理するドキュメントを識別可能な画像データの一部が表示される。
これにより、ユーザーは、スキャン処理を行うドキュメントとスキャン実行ボタン上に表示された画像とを見比べれば、どのボタンがどのドキュメントに対応しているかを容易に確認できる。
画面1001は、図7の画面701と同様に、ユーザーが予め処理内容や設定値を設定しておき、その処理を実行するボタンを生成、表示する画面である。
図10(A)のスキャン実行ボタン1002、1003は、S809におけるWFエンジンのスキャン実行ボタン生成指示によって、MFP101が操作表示部211の画面上に生成したボタンである。このように、両ボタン上には、インスタンスが処理するドキュメントの差分画像データ1004、1005が表示されている。
差分画像データ1004は、S807における画像差分データ抽出によって検出された画像差分の領域915のデータの一部である。差分画像データ1004は、画像データ901で示されるドキュメントを処理するワークフローインスタンスにおけるスキャン実行ボタン上に表示される。
同じく、差分画像データ1005は、S807における画像差分データ抽出によって検出された画像差分の領域916のデータの一部である。差分画像データ1005は、画像データ902で示されるドキュメントを処理するワークフローインスタンスにおけるスキャン実行ボタン上に表示される。
このように、実行しているワークフローのインスタンスにおいてスキャン実行ボタン上に、処理するドキュメントを識別可能な画像データの一部が表示される。
これにより、ユーザーは、スキャン処理を行うドキュメントとスキャン実行ボタン上に表示された画像とを見比べれば、どのボタンがどのドキュメントに対応しているかを容易に確認できる。
図10(B)は、図10(A)において、スキャン実行ボタン1002が押下されたときに表示される操作画面である。
スキャン実行ボタン1002が押下さると、ダイアログ1011が画面上に表示される。ダイアログ1011の中には、スキャン実行ボタン1002に関するワークフローインスタンスが処理するドキュメント画像1012が表示される。このドキュメント画像1012は、S806で生成された画像データであり、S809のスキャン実行ボタン生成指示と共にMFPに送信される。
ドキュメント画像1012では、S807において画像データの比較を行った際に検出された画像差分1013、1014が、背景色を変える等して強調表示されている。これにより、スキャン実行ボタン上に表示されたドキュメントの差分画像が小さく、ユーザーが判別しにくい場合でも、実際にそのボタンで処理するドキュメントの全体画像を操作表示部の画面全体に表示させることができる。このため、ユーザーはドキュメントとそれをスキャン処理するボタンとの対応を判別しやすくなる。
また、ドキュメント画像の差分が強調表示されているため、ドキュメントのどの部分に注目して判別すればよいかが分かり、ユーザーは容易にボタンとドキュメントとの対応を識別することができる。ここで、ドキュメント内に差分画像データが複数存在した場合、WFエンジンは、スキャン実行ボタン上に表示する差分画像データとして、何れの差分画像データを表示させるようにしてもよい。例えば、WFエンジンは、複数ある差分画像データのうち、一番領域が広い差分画像データを選択したり、ドキュメントの中央部に近い差分画像データを選択したりして、スキャン実行ボタン上に表示させるようにしてもよい。
更に、WFエンジンは、ドキュメント全体を画像データに変更しなくとも、その一部のみを画像データに変更してその画像データの差分を比較してもよい。
また、WFエンジンは、ドキュメント自体に画像データが含まれる場合、その画像データそのものを比較してもよい。但し、WFエンジンは、比較するドキュメントのフォーマットが同一であり、ドキュメントに対する画像データの位置や領域が同じである場合に、ドキュメントに含まれる画像データ同士を比較するようにする。
スキャン実行ボタン1002が押下さると、ダイアログ1011が画面上に表示される。ダイアログ1011の中には、スキャン実行ボタン1002に関するワークフローインスタンスが処理するドキュメント画像1012が表示される。このドキュメント画像1012は、S806で生成された画像データであり、S809のスキャン実行ボタン生成指示と共にMFPに送信される。
ドキュメント画像1012では、S807において画像データの比較を行った際に検出された画像差分1013、1014が、背景色を変える等して強調表示されている。これにより、スキャン実行ボタン上に表示されたドキュメントの差分画像が小さく、ユーザーが判別しにくい場合でも、実際にそのボタンで処理するドキュメントの全体画像を操作表示部の画面全体に表示させることができる。このため、ユーザーはドキュメントとそれをスキャン処理するボタンとの対応を判別しやすくなる。
また、ドキュメント画像の差分が強調表示されているため、ドキュメントのどの部分に注目して判別すればよいかが分かり、ユーザーは容易にボタンとドキュメントとの対応を識別することができる。ここで、ドキュメント内に差分画像データが複数存在した場合、WFエンジンは、スキャン実行ボタン上に表示する差分画像データとして、何れの差分画像データを表示させるようにしてもよい。例えば、WFエンジンは、複数ある差分画像データのうち、一番領域が広い差分画像データを選択したり、ドキュメントの中央部に近い差分画像データを選択したりして、スキャン実行ボタン上に表示させるようにしてもよい。
更に、WFエンジンは、ドキュメント全体を画像データに変更しなくとも、その一部のみを画像データに変更してその画像データの差分を比較してもよい。
また、WFエンジンは、ドキュメント自体に画像データが含まれる場合、その画像データそのものを比較してもよい。但し、WFエンジンは、比較するドキュメントのフォーマットが同一であり、ドキュメントに対する画像データの位置や領域が同じである場合に、ドキュメントに含まれる画像データ同士を比較するようにする。
S809で、スキャン実行を指示するボタンを生成した後、S810において、WFエンジンは、MFP101においてスキャン送信の実行を促す旨のメールを、ユーザーに対して通知する。このとき、WFエンジンは、ワークフローインスタンスで処理しているドキュメントと、スキャン実行指示ボタン上に表示する差分画像データとをメールに添付する。これにより、メールを受信したユーザーは、メールの添付内容を確認することで、どのドキュメントに対してどのボタンを押下してスキャンを実行すればよいのかが分かる。
その後のS811からS817までの処理は、S611からS617までの処理と同様のため、説明を省略する。
その後のS811からS817までの処理は、S611からS617までの処理と同様のため、説明を省略する。
このように、複数のワークフローインスタンスが同時に実行されている場合、MFP上にはそれぞれのワークフローインスタンスを区別することが可能な画像データが表示されたスキャン実行ボタンが自動的に生成される。
また、WFエンジンは、それぞれのインスタンスが処理するドキュメントを画像データに変換してその差分を比較している。このため、ドキュメントが文字コード等のテキスト情報を持たない場合でも、ユーザーが識別可能な差分情報を、それぞれのインスタンスで処理するボタン上に表示することができる。ボタン上に表示される画像データは、それぞれのインスタンスが処理するドキュメントの画像差分であるため、ボタン上の画像とドキュメントとを見比べることで、どのボタンがどのドキュメントを処理するためのものかをユーザーが容易に識別することができる。また、ドキュメントとそれを処理するスキャン実行ボタン上に表示された画像データとの組み合わせは、処理を実行する前にユーザーにメール等によって通知されるため、ユーザーは処理実行前にそれらの組み合わせを知ることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するMFPでの操作性を向上させることができる。
また、WFエンジンは、それぞれのインスタンスが処理するドキュメントを画像データに変換してその差分を比較している。このため、ドキュメントが文字コード等のテキスト情報を持たない場合でも、ユーザーが識別可能な差分情報を、それぞれのインスタンスで処理するボタン上に表示することができる。ボタン上に表示される画像データは、それぞれのインスタンスが処理するドキュメントの画像差分であるため、ボタン上の画像とドキュメントとを見比べることで、どのボタンがどのドキュメントを処理するためのものかをユーザーが容易に識別することができる。また、ドキュメントとそれを処理するスキャン実行ボタン上に表示された画像データとの組み合わせは、処理を実行する前にユーザーにメール等によって通知されるため、ユーザーは処理実行前にそれらの組み合わせを知ることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するMFPでの操作性を向上させることができる。
(変形例2)
ワークフローシステムは、複数のワークフローインスタンスが実行されている場合、それぞれのインスタンスのドキュメント印刷においてインスタンスを一意に特定可能な識別子を付加して印刷させるようにしてもよい。また、ワークフローシステムは、その識別子をMFPのスキャン実行ボタン上に表示するようにしてもよい。
図11は、ワークフローインスタンスの処理の流れを説明するフローチャートである。ここで、S1101からS1103までの処理は、図6におけるS601からS603までの処理と同等である。
S1103の処理の後、S1104において、WFエンジンは、読み込んだアクションがMFP101に対してドキュメントを印刷するアクションであるかどうかを判断する。つまり、WFエンジンは、図4のフロー処理402に含まれるドキュメント印刷アクションであるかどうかを判断する。
ドキュメントの印刷アクションであると判断した場合(S1104においてYES)、WFエンジンは、S1105に進む。S1105において、WFエンジンは、現在実行しているインスタンスが複数存在するかどうかを判断する。ワークフローを実行しているインスタンスが自身のインスタンスだけであると判断した場合(S1105においてNO)、WFエンジンは、S1107に進む。
ワークフローを実行しているインスタンスが複数存在すると判断した場合(S1105においてYES)、WFエンジンは、S1106に進む。S1106において、WFエンジンは、各インスタンスを一意に特定可能な識別子を生成し、印刷ドキュメントに付加する。ここで、識別子は、インスタンスを一意に特定可能なものであれば数字や英字やそれらの組み合わせ等、何であってもよい。ユーザーが識別可能なものであれば図形やマークのようなものでもよい。また、識別子は、ドキュメントのヘッダやフッタ等、元のドキュメントの内容に重ならないような位置に決め打ちで付加される。
また、WFエンジンは、生成した識別子をドキュメントに付加するため、異なるインスタンスにおけるドキュメントの比較を行わない。このため、WFエンジンは、S1105の別インスタンスの存在の確認を行わず、常にS1106の処理を行ってもよい。
S1107において、WFエンジンは、MFPに対して、ワークフローインスタンスで処理しているドキュメントの印刷を指示する。S1107の処理は、印刷指示の一例である。
ワークフローシステムは、複数のワークフローインスタンスが実行されている場合、それぞれのインスタンスのドキュメント印刷においてインスタンスを一意に特定可能な識別子を付加して印刷させるようにしてもよい。また、ワークフローシステムは、その識別子をMFPのスキャン実行ボタン上に表示するようにしてもよい。
図11は、ワークフローインスタンスの処理の流れを説明するフローチャートである。ここで、S1101からS1103までの処理は、図6におけるS601からS603までの処理と同等である。
S1103の処理の後、S1104において、WFエンジンは、読み込んだアクションがMFP101に対してドキュメントを印刷するアクションであるかどうかを判断する。つまり、WFエンジンは、図4のフロー処理402に含まれるドキュメント印刷アクションであるかどうかを判断する。
ドキュメントの印刷アクションであると判断した場合(S1104においてYES)、WFエンジンは、S1105に進む。S1105において、WFエンジンは、現在実行しているインスタンスが複数存在するかどうかを判断する。ワークフローを実行しているインスタンスが自身のインスタンスだけであると判断した場合(S1105においてNO)、WFエンジンは、S1107に進む。
ワークフローを実行しているインスタンスが複数存在すると判断した場合(S1105においてYES)、WFエンジンは、S1106に進む。S1106において、WFエンジンは、各インスタンスを一意に特定可能な識別子を生成し、印刷ドキュメントに付加する。ここで、識別子は、インスタンスを一意に特定可能なものであれば数字や英字やそれらの組み合わせ等、何であってもよい。ユーザーが識別可能なものであれば図形やマークのようなものでもよい。また、識別子は、ドキュメントのヘッダやフッタ等、元のドキュメントの内容に重ならないような位置に決め打ちで付加される。
また、WFエンジンは、生成した識別子をドキュメントに付加するため、異なるインスタンスにおけるドキュメントの比較を行わない。このため、WFエンジンは、S1105の別インスタンスの存在の確認を行わず、常にS1106の処理を行ってもよい。
S1107において、WFエンジンは、MFPに対して、ワークフローインスタンスで処理しているドキュメントの印刷を指示する。S1107の処理は、印刷指示の一例である。
図12は、複数のワークフローインスタンスが実行されている場合に、S1107によって印刷されたドキュメントの一例を示す図である。
ドキュメント1201とドキュメント1202とは、同じワークフローを実行しているが、異なるインスタンスで処理されているドキュメントの例である。同じ申請書を処理するワークフローであるが、申請書の内容が異なっている。
ここで、識別子1203及び1204は、S1106によって生成された識別子であり、S1107においてドキュメントに付加され、印刷される。
このように、ドキュメントの隅に英数字等、ユーザーが認識可能な識別子が付加されて印刷される。
その後、S1108において、WFエンジンは、次のアクションの読み込みを行う。S1108からS1110までの処理は、図6におけるS611からS613までの処理と同等である。
ドキュメント1201とドキュメント1202とは、同じワークフローを実行しているが、異なるインスタンスで処理されているドキュメントの例である。同じ申請書を処理するワークフローであるが、申請書の内容が異なっている。
ここで、識別子1203及び1204は、S1106によって生成された識別子であり、S1107においてドキュメントに付加され、印刷される。
このように、ドキュメントの隅に英数字等、ユーザーが認識可能な識別子が付加されて印刷される。
その後、S1108において、WFエンジンは、次のアクションの読み込みを行う。S1108からS1110までの処理は、図6におけるS611からS613までの処理と同等である。
読み込んだアクションがドキュメントを印刷するアクションではないと判断した場合(S1104においてNO)、WFエンジンは、S1111に進む。S1111において、WFエンジンは、アクションがMFP101に対してスキャン実行ボタンを生成指示するアクションであるかどうかを判断する。
スキャン実行ボタン生成を指示するアクションであると判断した場合(S1111においてYES)、WFエンジンは、S1112に進む。S1112において、WFエンジンは、スキャン実行ボタン上に表示するために、ボタン名にS1106で生成した識別子を付加する。
その後、S1113において、WFエンジンは、S1112で付加した識別子情報と共に、MFP101に対してスキャン実行ボタンの生成を指示する。
図13は、S1113において、MFP101の操作表示部211に表示される操作画面の一例を示す図である。
画面1301は、図7の701と同様に、ユーザーが予め処理内容や設定値を設定しておき、その処理を実行するボタンを生成、表示する画面である。
ボタン1302、1303は、S1113におけるWFエンジンのスキャン実行ボタン生成指示によって、MFP101が操作表示部211の画面上に生成したボタンである。
このように、両ボタン上には、インスタンスを一意に特定可能な識別子1304、1305が表示されている。この識別子1304、1305は、各インスタンスにおけるS1106の処理で生成されたものであり、図12においてドキュメント印刷時に付加された識別子1203、1204と同じものである。つまり、それぞれのインスタンスが処理するドキュメントには識別子が印刷され、そのドキュメントをスキャンするためのスキャン実行ボタン上には同じ識別子が表示される。
これにより、ユーザーは、同じ識別子であることを確認することで、どのドキュメントをどのスキャン実行ボタンによってスキャンすればよいか容易に識別することができる。
スキャン実行ボタン生成を指示するアクションであると判断した場合(S1111においてYES)、WFエンジンは、S1112に進む。S1112において、WFエンジンは、スキャン実行ボタン上に表示するために、ボタン名にS1106で生成した識別子を付加する。
その後、S1113において、WFエンジンは、S1112で付加した識別子情報と共に、MFP101に対してスキャン実行ボタンの生成を指示する。
図13は、S1113において、MFP101の操作表示部211に表示される操作画面の一例を示す図である。
画面1301は、図7の701と同様に、ユーザーが予め処理内容や設定値を設定しておき、その処理を実行するボタンを生成、表示する画面である。
ボタン1302、1303は、S1113におけるWFエンジンのスキャン実行ボタン生成指示によって、MFP101が操作表示部211の画面上に生成したボタンである。
このように、両ボタン上には、インスタンスを一意に特定可能な識別子1304、1305が表示されている。この識別子1304、1305は、各インスタンスにおけるS1106の処理で生成されたものであり、図12においてドキュメント印刷時に付加された識別子1203、1204と同じものである。つまり、それぞれのインスタンスが処理するドキュメントには識別子が印刷され、そのドキュメントをスキャンするためのスキャン実行ボタン上には同じ識別子が表示される。
これにより、ユーザーは、同じ識別子であることを確認することで、どのドキュメントをどのスキャン実行ボタンによってスキャンすればよいか容易に識別することができる。
S1113で、スキャン実行を指示するボタンを生成した後、S1114において、WFエンジンは、MFP101においてスキャン送信の実行を促す旨のメールを、ユーザーに対して通知する。このとき、WFエンジンは、そのワークフローインスタンスで処理しているドキュメントと、そのインスタンスに割り当てた識別子情報とをメールに添付する。
これにより、メールを受信したユーザーは、メールの添付内容を確認することで、同じ識別子が表示されているものを確認することにより、どのドキュメントに対してどのボタンを押下してスキャン送信を実行すればよいのかが分かる。
その後、WFエンジンは、ステップ1108の処理を実行する。
一方、スキャン実行ボタン生成指示アクションではないと判断した場合(S1111においてNO)、WFエンジンは、S1115に進む。S1115において、WFエンジンは、読み込んだアクションがユーザーによるスキャン実行の処理待ちのアクションであるかどうかを判断する。
S1115からS1118までの処理は、図6におけるS614からS617までの処理と同等であるため、説明を省略する。
これにより、メールを受信したユーザーは、メールの添付内容を確認することで、同じ識別子が表示されているものを確認することにより、どのドキュメントに対してどのボタンを押下してスキャン送信を実行すればよいのかが分かる。
その後、WFエンジンは、ステップ1108の処理を実行する。
一方、スキャン実行ボタン生成指示アクションではないと判断した場合(S1111においてNO)、WFエンジンは、S1115に進む。S1115において、WFエンジンは、読み込んだアクションがユーザーによるスキャン実行の処理待ちのアクションであるかどうかを判断する。
S1115からS1118までの処理は、図6におけるS614からS617までの処理と同等であるため、説明を省略する。
このように図11に示した処理によれば、複数のワークフローインスタンスが同時に実行されている場合、ドキュメントにインスタンスを特定する識別子が印刷され、MFP上にはそのドキュメントに対応した識別子が表示されたスキャン実行ボタンが生成される。このため、各インスタンスにおけるドキュメントのテキスト情報や画像データの差分が少なく、差分情報を表示してもその違いをユーザーが認識しづらい場合でも、ユーザーはドキュメントとそれをスキャン処理するボタンとの対応付けを容易に行うことができる。また、ドキュメントとそれを処理するスキャン実行ボタン上に表示される識別子は、処理を実行する前にユーザーにメール等によって通知されるため、ユーザーは処理実行前にそれらの組み合わせを知ることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するMFPでの操作性を向上させることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するMFPでの操作性を向上させることができる。
(変形例3)
本変形例では、複数のワークフローインスタンスが実行されている場合、1つのインスタンスにおけるスキャン実行ボタンを生成した後、そのボタン押下によってスキャン実行されるまで他のインスタンスにおけるドキュメント印刷の実行を待機させる。
変形例2との差分について記述する。
図14は、ワークフローインスタンスの処理の流れを説明するフローチャートである。ここで、S1401からS1404までの処理は、図11におけるS1101からS1104までの処理と同等である。
ドキュメントの印刷を指示するアクションであると判断した場合(S1404においてYES)、WFエンジンは、S1405に進む。S1405において、WFエンジンは、現在スキャン待ち状態となっているワークフローインスタンスが存在するかどうかを判断する。即ち、ドキュメント印刷のアクションを実行した後から、スキャン実行ボタンを介したユーザーの指示によって実際にスキャン送信が実行され、スキャン実効ボタンが削除されるまでの間の状態にあるワークフローインスタンスが存在するかどうかを判断する。スキャン待ち状態になっているワークフローインスタンスが存在しないと判断した場合(S1405においてNO)、WFエンジンは、S1408に進む。
スキャン待ち状態になっているワークフローインスタンスが別に存在すると判断した場合(S1405においてYES)、WFエンジンは、S1406に進む。S1406において、WFエンジンは、別ワークフローインスタンスの処理実行を待つ。S1405、S1406の処理は、待機処理の一例である。
本変形例では、複数のワークフローインスタンスが実行されている場合、1つのインスタンスにおけるスキャン実行ボタンを生成した後、そのボタン押下によってスキャン実行されるまで他のインスタンスにおけるドキュメント印刷の実行を待機させる。
変形例2との差分について記述する。
図14は、ワークフローインスタンスの処理の流れを説明するフローチャートである。ここで、S1401からS1404までの処理は、図11におけるS1101からS1104までの処理と同等である。
ドキュメントの印刷を指示するアクションであると判断した場合(S1404においてYES)、WFエンジンは、S1405に進む。S1405において、WFエンジンは、現在スキャン待ち状態となっているワークフローインスタンスが存在するかどうかを判断する。即ち、ドキュメント印刷のアクションを実行した後から、スキャン実行ボタンを介したユーザーの指示によって実際にスキャン送信が実行され、スキャン実効ボタンが削除されるまでの間の状態にあるワークフローインスタンスが存在するかどうかを判断する。スキャン待ち状態になっているワークフローインスタンスが存在しないと判断した場合(S1405においてNO)、WFエンジンは、S1408に進む。
スキャン待ち状態になっているワークフローインスタンスが別に存在すると判断した場合(S1405においてYES)、WFエンジンは、S1406に進む。S1406において、WFエンジンは、別ワークフローインスタンスの処理実行を待つ。S1405、S1406の処理は、待機処理の一例である。
S1407において、WFエンジンは、別ワークフローインスタンスにおけるスキャン送信が実行されたかどうかを判断する。例えば、WFエンジンは、定期的にポーリングを行ってワークフローインスタンスの状態を判断する等の方法によって、別ワークフローインスタンスにおけるスキャン送信が実行されたかどうかを判断する。
別ワークフローインスタンスにおけるスキャン送信が実行されていないと判断した場合(S1407においてNO)、WFエンジンは、S1406の処理に戻り、別ワークフローインスタンスの処理実行を待つ。
別ワークフローインスタンスにおけるスキャン送信が実行されたと判断した場合(S1407においてYES)、WFエンジンは、S1408に進む。S1408において、WFエンジンは、MFP101に対して、自身のワークフローインスタンスで処理しているドキュメントの印刷を指示する。
その後、WFエンジンは、S1409にて次のアクションの読み込みを行うが、S1409からS1411までの処理は、図11におけるS1108からS1110までの処理と同等である。
読み込んだアクションはドキュメントを印刷するアクションではないと判断した場合(S1404においてNO)、WFエンジンは、S1412に進む。S1412において、WFエンジンは、そのアクションがMFP101に対してスキャン実行ボタンを生成指示するアクションであるかどうかを判断する。
別ワークフローインスタンスにおけるスキャン送信が実行されていないと判断した場合(S1407においてNO)、WFエンジンは、S1406の処理に戻り、別ワークフローインスタンスの処理実行を待つ。
別ワークフローインスタンスにおけるスキャン送信が実行されたと判断した場合(S1407においてYES)、WFエンジンは、S1408に進む。S1408において、WFエンジンは、MFP101に対して、自身のワークフローインスタンスで処理しているドキュメントの印刷を指示する。
その後、WFエンジンは、S1409にて次のアクションの読み込みを行うが、S1409からS1411までの処理は、図11におけるS1108からS1110までの処理と同等である。
読み込んだアクションはドキュメントを印刷するアクションではないと判断した場合(S1404においてNO)、WFエンジンは、S1412に進む。S1412において、WFエンジンは、そのアクションがMFP101に対してスキャン実行ボタンを生成指示するアクションであるかどうかを判断する。
スキャン実行ボタン生成を指示するアクションであると判断した場合(S1412においてYES)、WFエンジンは、S1413に進む。S1413において、WFエンジンは、MFP101に対してスキャン実行ボタンの生成を指示する。その際、WFエンジンは、ボタン上にワークフローインスタンスを特定するための情報を付加することは特に行わない。しかし、複数のワークフローインスタンスが実行されている場合でも、1つのインスタンスにおいてスキャン実行ボタンが生成されている間は、他のインスタンスの処理は、ドキュメントのプリント実行前の状態となる。このため、MFP上にはスキャン実行ボタンが1つしか表示されない。ドキュメントのプリントも1つのインスタンスでしか実行してないため、プリントされたドキュメントとスキャン実行ボタンの組は1つだけとなり、ユーザーは、容易にその対応付けを判断することができる。
S1413で、スキャン実行を指示するボタンを生成した後、S1414において、WFエンジンは、MFP101においてスキャン送信の実行を促す旨のメールを、ユーザーに対して通知する。このときも、WFエンジンは、ドキュメントとスキャン実行ボタンとを関係づけるような情報をメールに添付することはない。しかし、その関係をユーザーが容易に識別可能なことは先に述べたとおりである。
その後、WFエンジンは、ステップ1409の処理を実行する。
スキャン実行ボタン生成指示アクションではないと判断した場合(S1412においてNO)、WFエンジンは、S1415に進む。S1415において、WFエンジンは、読み込んだアクションがスキャン待ちのアクションであるかどうかを判断する。
S1415からS1418までの処理は、図11におけるS1115からS1118までの処理と同等であるため、説明を省略する。
S1413で、スキャン実行を指示するボタンを生成した後、S1414において、WFエンジンは、MFP101においてスキャン送信の実行を促す旨のメールを、ユーザーに対して通知する。このときも、WFエンジンは、ドキュメントとスキャン実行ボタンとを関係づけるような情報をメールに添付することはない。しかし、その関係をユーザーが容易に識別可能なことは先に述べたとおりである。
その後、WFエンジンは、ステップ1409の処理を実行する。
スキャン実行ボタン生成指示アクションではないと判断した場合(S1412においてNO)、WFエンジンは、S1415に進む。S1415において、WFエンジンは、読み込んだアクションがスキャン待ちのアクションであるかどうかを判断する。
S1415からS1418までの処理は、図11におけるS1115からS1118までの処理と同等であるため、説明を省略する。
このように、複数のワークフローインスタンスが同時に実行されている場合、ドキュメントが印刷されてスキャン実行ボタンが生成され、スキャン送信実行待ちとなるワークフローインスタンスは常に1つだけとなる。他のワークフローインスタンスは、ドキュメントを印刷するアクションの実行前の状態で待機する。このため、実際に印刷されているドキュメントとスキャン実行ボタンは常に1組だけとなり、ユーザーはその対応付けを容易に行うことができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するMFPでの操作性を向上させることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するMFPでの操作性を向上させることができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。上述した実施形態では、WFエンジンは、サーバーに実装される例を用いて説明を行った。しかし、WFエンジンを、ワークフローを統括的に管理するMFPの一つに実装するようにしてもよい。また、WFサーバー102のハードウェア構成は、図3に示したものに限られず、WFサーバー102は、複数のCPU301やネットワークI/F305等を有していていもよい。
以上、上述した実施形態の処理によれば、ワークフローに関する操作指示オブジェクトの選択に関する操作性を向上させると共に、操作指示オブジェクトの押し間違い等を軽減させる技術を提供することができる。
101 MFP
102 WFサーバー
301 CPU
102 WFサーバー
301 CPU
Claims (17)
- ワークフローに関する複数のドキュメントのテキスト情報を取得する取得手段と、
前記取得手段により取得された複数のテキスト情報の差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する決定手段と、
前記決定手段により決定された操作指示オブジェクトに表示させるテキスト情報を指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示手段と、
を有する情報処理装置。 - 前記ドキュメントと前記操作指示オブジェクトに表示させるテキスト情報とを含む、前記操作指示オブジェクトを介した操作指示を促すメッセージを、前記操作指示を行うユーザーに対して送信する送信手段を更に有する請求項1記載の情報処理装置。
- ワークフローに関する複数のドキュメントの画像データを取得する取得手段と、
前記取得手段により取得された複数の画像データの差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させる画像データを決定する決定手段と、
前記決定手段により決定された前記操作指示オブジェクトに表示させる画像データを指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示手段と、
を有する情報処理装置。 - 前記ドキュメントと前記操作指示オブジェクトに表示させる画像データとを含む、前記操作指示オブジェクトを介した操作指示を促すメッセージを、前記操作指示を行うユーザーに対して送信する送信手段を更に有する請求項3記載の情報処理装置。
- ワークフローに関するドキュメントを識別する識別子を生成する生成手段と、
前記生成手段により生成された識別子を含む前記ドキュメントの印刷を画像処理装置に指示する印刷指示手段と、
前記生成手段により生成された識別子を前記ドキュメントに関する操作指示オブジェクトに表示させる情報として指定し、前記操作指示オブジェクトの生成を前記画像処理装置に指示する生成指示手段と、
を有する情報処理装置。 - 前記ドキュメントと前記識別子とを含む、前記操作指示オブジェクトを介した操作指示を促すメッセージを、前記操作指示を行うユーザーに対して送信する送信手段を更に有する請求項5記載の情報処理装置。
- スキャン待ち状態となっている別のインスタンスが存在する場合、前記別のインスタンスの処理を待つ待機手段と、
前記別のインスタンスの処理が終了した場合、ワークフローに関するドキュメントの印刷を画像処理装置に指示する印刷指示手段と、
前記ドキュメントに関する操作指示オブジェクトの生成を前記画像処理装置に指示する生成指示手段と、
を有する情報処理装置。 - 前記操作指示オブジェクトの削除を前記画像処理装置に指示する削除指示手段を更に有する請求項1乃至7何れか1項記載の情報処理装置。
- 前記操作指示オブジェクトは、スキャン実行ボタンである請求項1乃至8何れか1項記載の情報処理装置。
- 操作指示オブジェクトに表示させるテキスト情報を指定した、ワークフローに関する操作指示オブジェクトの生成指示に基づき、前記テキスト情報を表示した前記操作指示オブジェクトを生成する生成手段と、
前記テキスト情報を表示した前記操作指示オブジェクトを画像処理装置の操作画面に表示する表示手段と、
を有するシステム。 - 操作指示オブジェクトに表示させる画像データを指定した、ワークフローに関する操作指示オブジェクトの生成指示に基づき、前記画像データを表示した前記操作指示オブジェクトを生成する生成手段と、
前記画像データを表示した前記操作指示オブジェクトを画像処理装置の操作画面に表示する表示手段と、
を有するシステム。 - ドキュメントを識別する識別子を指定した、前記ドキュメントの印刷の指示に基づき、前記識別子を表示した前記ドキュメントを印刷する印刷手段と、
前記識別子を指定した、ワークフローに関する操作指示オブジェクトの生成指示に基づき、前記識別子を表示した前記操作指示オブジェクトを生成する生成手段と、
前記識別子を表示した前記操作指示オブジェクトを画像処理装置の操作画面に表示する表示手段と、
を有するシステム。 - 情報処理装置が実行する情報処理方法であって、
ワークフローに関する複数のドキュメントのテキスト情報を取得する取得ステップと、
前記取得ステップにより取得された複数のテキスト情報の差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する決定ステップと、
前記決定ステップにより決定された操作指示オブジェクトに表示させるテキスト情報を指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示ステップと、
を含む情報処理方法。 - 情報処理装置が実行する情報処理方法であって、
ワークフローに関する複数のドキュメントの画像データを取得する取得ステップと、
前記取得ステップにより取得された複数の画像データの差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させる画像データを決定する決定ステップと、
前記決定ステップにより決定された前記操作指示オブジェクトに表示させる画像データを指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示ステップと、
を含む情報処理方法。 - 情報処理装置が実行する情報処理方法であって、
ワークフローに関するドキュメントを識別する識別子を生成する生成ステップと、
前記生成ステップにより生成された識別子を含む前記ドキュメントの印刷を画像処理装置に指示する印刷指示ステップと、
前記生成ステップにより生成された識別子を前記ドキュメントに関する操作指示オブジェクトに表示させる情報として指定し、前記操作指示オブジェクトの生成を前記画像処理装置に指示する生成指示ステップと、
を含む情報処理方法。 - 情報処理装置が実行する情報処理方法であって、
スキャン待ち状態となっている別のインスタンスが存在する場合、前記別のインスタンスの処理を待つ待機ステップと、
前記別のインスタンスの処理が終了した場合、ワークフローに関するドキュメントの印刷を画像処理装置に指示する印刷指示ステップと、
前記ドキュメントに関する操作指示オブジェクトの生成を前記画像処理装置に指示する生成指示ステップと、
を含む情報処理方法。 - コンピュータを、請求項1乃至9何れか1項記載の情報処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016004403A JP2017126155A (ja) | 2016-01-13 | 2016-01-13 | 情報処理装置、システム、情報処理方法及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016004403A JP2017126155A (ja) | 2016-01-13 | 2016-01-13 | 情報処理装置、システム、情報処理方法及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017126155A true JP2017126155A (ja) | 2017-07-20 |
Family
ID=59365523
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016004403A Pending JP2017126155A (ja) | 2016-01-13 | 2016-01-13 | 情報処理装置、システム、情報処理方法及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2017126155A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019164604A (ja) * | 2018-03-20 | 2019-09-26 | 富士ゼロックス株式会社 | 情報処理システム |
| JP2020152032A (ja) * | 2019-03-22 | 2020-09-24 | カシオ計算機株式会社 | 電子機器、印刷画像表示方法、プログラム |
| JP2020187614A (ja) * | 2019-05-16 | 2020-11-19 | ブラザー工業株式会社 | プログラム及び、端末装置 |
| JP2020187613A (ja) * | 2019-05-16 | 2020-11-19 | ブラザー工業株式会社 | プログラム及び、端末装置 |
-
2016
- 2016-01-13 JP JP2016004403A patent/JP2017126155A/ja active Pending
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019164604A (ja) * | 2018-03-20 | 2019-09-26 | 富士ゼロックス株式会社 | 情報処理システム |
| JP7243024B2 (ja) | 2018-03-20 | 2023-03-22 | 富士フイルムビジネスイノベーション株式会社 | 情報処理システム |
| JP2020152032A (ja) * | 2019-03-22 | 2020-09-24 | カシオ計算機株式会社 | 電子機器、印刷画像表示方法、プログラム |
| JP7243351B2 (ja) | 2019-03-22 | 2023-03-22 | カシオ計算機株式会社 | 電子機器、印刷画像表示方法、プログラム |
| JP2020187614A (ja) * | 2019-05-16 | 2020-11-19 | ブラザー工業株式会社 | プログラム及び、端末装置 |
| JP2020187613A (ja) * | 2019-05-16 | 2020-11-19 | ブラザー工業株式会社 | プログラム及び、端末装置 |
| JP7279505B2 (ja) | 2019-05-16 | 2023-05-23 | ブラザー工業株式会社 | プログラム及び、端末装置 |
| JP7279504B2 (ja) | 2019-05-16 | 2023-05-23 | ブラザー工業株式会社 | プログラム及び、端末装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5887860B2 (ja) | 画像形成装置、画像形成システム、制御方法、およびプログラム。 | |
| JP7391672B2 (ja) | 文書を電子化するための画像処理システム、その制御方法及びプログラム | |
| JP5199761B2 (ja) | 情報処理装置と画像入力装置、文書配信システムとそれらの制御方法 | |
| CN108459831B (zh) | 信息处理设备和信息处理设备的控制方法 | |
| JP7353771B2 (ja) | プログラム、記憶媒体、情報処理装置の制御方法、及び情報処理装置 | |
| JP2020167618A (ja) | 画像処理装置、その制御方法及びプログラム | |
| JP2017126857A (ja) | 画像処理装置、システム、情報処理方法及びプログラム | |
| JP2010086205A (ja) | 画像形成装置および認証情報管理システム、認証情報管理方法、認証情報管理プログラム | |
| JP2015093394A (ja) | 画像形成装置、その制御方法及びプログラム。 | |
| US20090051952A1 (en) | Image forming apparatus and screen generating method | |
| JP2015096295A (ja) | 画像形成装置、その制御方法及びプログラム。 | |
| JP5316077B2 (ja) | 画像処理システム、画像処理装置、画像形成装置、画像処理方法及び画像処理プログラム | |
| JP5960112B2 (ja) | 画像形成装置及び画像処理システム | |
| JP6135360B2 (ja) | 情報機器およびコンピュータープログラム | |
| JP5454663B2 (ja) | 情報処理システム、その制御方法、及びプログラム、並びに管理サーバ、その制御方法、及びプログラム | |
| JP2024026571A (ja) | 画像処理装置、その制御方法及びプログラム | |
| JP2020178301A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
| JP2023167871A (ja) | 画像処理装置、情報処理装置、画像処理システム、画像処理方法、情報処理方法、およびプログラム | |
| JP2009070062A (ja) | 画像処理装置および画像処理プログラム | |
| JP7542980B2 (ja) | 画像処理システム、画像処理方法及びプログラム | |
| JP6057720B2 (ja) | システム、情報処理装置およびその制御方法、並びにプログラム | |
| JP2015035705A (ja) | 画像形成装置、情報処理方法及びプログラム | |
| JP2023053602A (ja) | 装置、情報処理方法、及びプログラム | |
| JP5924817B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
| JP7673130B2 (ja) | 画像処理装置、画像処理装置の制御方法、およびプログラム |