(57)【要約】【課題】ワークフローに関する操作指示オブジェクトの選択に関する操作性を向上させると共に、操作指示オブジェクトの押し間違い等を軽減させる技術を提供することを目的とする。【解決手段】ワークフローに関する複数のドキュメントのテキスト情報を取得する取得手段と、取得手段により取得された複数のテキスト情報の差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する決定手段と、決定手段により決定された操作指示オブジェクトに表示させるテキスト情報を指定し、操作指示オブジェクトの生成を画像処理装置に指示する生成指示手段と、を有することによって課題を解決する。【選択図】図６
2017126155.tif 000002
【特許請求の範囲】
【請求項１】
ワークフローに関する複数のドキュメントのテキスト情報を取得する取得手段と、
前記取得手段により取得された複数のテキスト情報の差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する決定手段と、
前記決定手段により決定された操作指示オブジェクトに表示させるテキスト情報を指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示手段と、
を有する情報処理装置。
【請求項２】
前記ドキュメントと前記操作指示オブジェクトに表示させるテキスト情報とを含む、前記操作指示オブジェクトを介した操作指示を促すメッセージを、前記操作指示を行うユーザーに対して送信する送信手段を更に有する請求項１記載の情報処理装置。
【請求項３】
ワークフローに関する複数のドキュメントの画像データを取得する取得手段と、
前記取得手段により取得された複数の画像データの差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させる画像データを決定する決定手段と、
前記決定手段により決定された前記操作指示オブジェクトに表示させる画像データを指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示手段と、
を有する情報処理装置。
【請求項４】
前記ドキュメントと前記操作指示オブジェクトに表示させる画像データとを含む、前記操作指示オブジェクトを介した操作指示を促すメッセージを、前記操作指示を行うユーザーに対して送信する送信手段を更に有する請求項３記載の情報処理装置。
【請求項５】
ワークフローに関するドキュメントを識別する識別子を生成する生成手段と、
前記生成手段により生成された識別子を含む前記ドキュメントの印刷を画像処理装置に指示する印刷指示手段と、
前記生成手段により生成された識別子を前記ドキュメントに関する操作指示オブジェクトに表示させる情報として指定し、前記操作指示オブジェクトの生成を前記画像処理装置に指示する生成指示手段と、
を有する情報処理装置。
【請求項６】
前記ドキュメントと前記識別子とを含む、前記操作指示オブジェクトを介した操作指示を促すメッセージを、前記操作指示を行うユーザーに対して送信する送信手段を更に有する請求項５記載の情報処理装置。
【請求項７】
スキャン待ち状態となっている別のインスタンスが存在する場合、前記別のインスタンスの処理を待つ待機手段と、
前記別のインスタンスの処理が終了した場合、ワークフローに関するドキュメントの印刷を画像処理装置に指示する印刷指示手段と、
前記ドキュメントに関する操作指示オブジェクトの生成を前記画像処理装置に指示する生成指示手段と、
を有する情報処理装置。
【請求項８】
前記操作指示オブジェクトの削除を前記画像処理装置に指示する削除指示手段を更に有する請求項１乃至７何れか１項記載の情報処理装置。
【請求項９】
前記操作指示オブジェクトは、スキャン実行ボタンである請求項１乃至８何れか１項記載の情報処理装置。
【請求項１０】
操作指示オブジェクトに表示させるテキスト情報を指定した、ワークフローに関する操作指示オブジェクトの生成指示に基づき、前記テキスト情報を表示した前記操作指示オブジェクトを生成する生成手段と、
前記テキスト情報を表示した前記操作指示オブジェクトを画像処理装置の操作画面に表示する表示手段と、
を有するシステム。
【請求項１１】
操作指示オブジェクトに表示させる画像データを指定した、ワークフローに関する操作指示オブジェクトの生成指示に基づき、前記画像データを表示した前記操作指示オブジェクトを生成する生成手段と、
前記画像データを表示した前記操作指示オブジェクトを画像処理装置の操作画面に表示する表示手段と、
を有するシステム。
【請求項１２】
ドキュメントを識別する識別子を指定した、前記ドキュメントの印刷の指示に基づき、前記識別子を表示した前記ドキュメントを印刷する印刷手段と、
前記識別子を指定した、ワークフローに関する操作指示オブジェクトの生成指示に基づき、前記識別子を表示した前記操作指示オブジェクトを生成する生成手段と、
前記識別子を表示した前記操作指示オブジェクトを画像処理装置の操作画面に表示する表示手段と、
を有するシステム。
【請求項１３】
情報処理装置が実行する情報処理方法であって、
ワークフローに関する複数のドキュメントのテキスト情報を取得する取得ステップと、
前記取得ステップにより取得された複数のテキスト情報の差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する決定ステップと、
前記決定ステップにより決定された操作指示オブジェクトに表示させるテキスト情報を指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示ステップと、
を含む情報処理方法。
【請求項１４】
情報処理装置が実行する情報処理方法であって、
ワークフローに関する複数のドキュメントの画像データを取得する取得ステップと、
前記取得ステップにより取得された複数の画像データの差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させる画像データを決定する決定ステップと、
前記決定ステップにより決定された前記操作指示オブジェクトに表示させる画像データを指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示ステップと、
を含む情報処理方法。
【請求項１５】
情報処理装置が実行する情報処理方法であって、
ワークフローに関するドキュメントを識別する識別子を生成する生成ステップと、
前記生成ステップにより生成された識別子を含む前記ドキュメントの印刷を画像処理装置に指示する印刷指示ステップと、
前記生成ステップにより生成された識別子を前記ドキュメントに関する操作指示オブジェクトに表示させる情報として指定し、前記操作指示オブジェクトの生成を前記画像処理装置に指示する生成指示ステップと、
を含む情報処理方法。
【請求項１６】
情報処理装置が実行する情報処理方法であって、
スキャン待ち状態となっている別のインスタンスが存在する場合、前記別のインスタンスの処理を待つ待機ステップと、
前記別のインスタンスの処理が終了した場合、ワークフローに関するドキュメントの印刷を画像処理装置に指示する印刷指示ステップと、
前記ドキュメントに関する操作指示オブジェクトの生成を前記画像処理装置に指示する生成指示ステップと、
を含む情報処理方法。
【請求項１７】
コンピュータを、請求項１乃至９何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフローに関する情報処理装置、システム、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
現在、ドキュメントを扱う定型的な業務の効率化のために、ワークフローエンジンを使用したドキュメント業務フローの自動実行が注目されている。
ワークフローエンジンは、サーバー上で動作し、予め決められたワークフロー手順に従って、サーバー上のドキュメントファイルをプリンタでプリントする、作業者にメールを通知する、等のタスクを実行していく。また、ワークフローエンジンは、サーバーとネットワーク接続されたＰＣ等の機器に対し、ドキュメントファイルの保存や移動、編集等の処理を実行させることができる。更に、ワークフローエンジンは、ワークフローにおけるタスクとして、サーバーとネットワーク接続されたＭＦＰ等の機器に対し、ドキュメントファイルのプリント、保存された電子データの送信、等の処理を実行させることができる。
しかし、スキャンして電子データを送信するといった、紙文書のスキャンを伴う処理は、物理的な紙文書をスキャナにセットする必要があるため、ワークフローエンジン単体で自動的に実行することができない。このため、ワークフロー手順で決められているスキャンを実行するための操作指示ボタンをＭＦＰ上の操作部に予め生成しておき、ユーザーが手作業で紙文書をスキャナにセットし、操作指示ボタンを選択することでスキャン処理を実行させる必要がある。通常、この操作指示ボタンは、管理者やワークフローの生成者が、ＭＦＰの操作部上に予め生成しておく。
特許文献１では、ワークフローの開始時にワークフロー実行システムがＭＦＰ上にスキャン実行指示ボタンを生成する技術が開示されている。
また、同じ書式だが記載されている内容が異なるドキュメントを、同じワークフローによって並列に実行処理することがある。例えば、購入する物品が異なる複数の物品購入申請書を同じワークフローで処理する場合や、外出する訪問先や日時が異なる外出申請届を同じワークフローで処理する場合等である。この場合、ＭＦＰ上には、同じワークフローを処理するスキャン実行指示ボタンが、処理するドキュメントごとに複数生成される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１６０７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
内容が異なる複数のドキュメントを同じワークフローによって同時に実行処理している場合、ＭＦＰ上には、ワークフローエンジンによってスキャンを実行するボタンが、ドキュメントごとに複数生成される。ここで、ドキュメントの内容により、それらはスキャンした後のファイルの保存先やファイル名等を変更する設定がされている。そのため、どのドキュメントに対してどのスキャン実行ボタンを指示するかをユーザーに明確に区別させる必要がある。
しかし、スキャン実行ボタンが複数ある場合、ユーザーがそれらの違いを正確に把握してボタンを選択指示することは難しい。このため、ユーザーがスキャンするそれぞれのドキュメントに対して誤ったスキャン実行ボタンを指示してしまう可能性がある。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、ワークフローに関する複数のドキュメントのテキスト情報を取得する取得手段と、前記取得手段により取得された複数のテキスト情報の差分に基づき、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する決定手段と、前記決定手段により決定された操作指示オブジェクトに表示させるテキスト情報を指定し、前記操作指示オブジェクトの生成を画像処理装置に指示する生成指示手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、ワークフローに関する操作指示オブジェクトの選択に関する操作性を向上させると共に、操作指示オブジェクトの押し間違い等を軽減させる技術を提供することができる。
【図面の簡単な説明】
【０００７】
【図１】ワークフローシステムのシステム構成の一例を示す図である。
【図２】ＭＦＰのハードウェア構成の一例を示す図である。
【図３】ＷＦサーバーのハードウェア構成の一例を示す図である。
【図４】ワークフローの例を模式的に示す図である。
【図５】インスタンス管理の処理の流れを説明するフローチャートである。
【図６】ワークフローインスタンスの処理の流れを説明するフローチャートである。
【図７】ＭＦＰの操作表示部に表示される操作画面の一例を示す図である。
【図８】ワークフローインスタンスの処理の流れを説明するフローチャートである。
【図９】画像データに変換されたドキュメントの一例を示す図である。
【図１０】ＭＦＰの操作表示部に表示される操作画面の一例を示す図である。
【図１１】ワークフローインスタンスの処理の流れを説明するフローチャートである。
【図１２】Ｓ１１０７によって印刷されたドキュメントの一例を示す図である。
【図１３】ＭＦＰの操作表示部に表示される操作画面の一例を示す図である。
【図１４】ワークフローインスタンスの処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
図１は、ワークフローシステムのシステム構成の一例を示す図である。
ワークフローシステムは、ＭＦＰ１０１と、ワークフローエンジンが搭載されたサーバー（以下、ＷＦサーバー）１０２と、ＰＣ１０３と、がＬＡＮ１０４で構成されたネットワークによって接続されている。ＭＦＰ１０１は、画像処理装置の一例である。ＷＦサーバー１０２は、情報処理装置の一例である。
ＭＦＰ１０１は、紙媒体をスキャンし、スキャンデータを基に用紙に画像を形成して印刷するコピー機能や、スキャンデータを電子的なデータとしてＷＦサーバー１０２やＰＣ１０３にネットワーク経由で送信するスキャン送信といった機能を持つ。更に、ＭＦＰ１０１は、ＷＦサーバー１０２等、ネットワーク接続された外部機器からの要求により、送信された画像データをプリントアウトしたり、スキャン送信したりする機能も持つ。このとき、プリントやコピー、スキャン送信機能における設定値は、処理実行の要求元であるＷＦサーバー１０２が実行要求時に指定する。
ＷＦサーバー１０２は、予め指定された処理順に従って順番に処理を実行するワークフローエンジン（以下、ＷＦエンジン）の機能を搭載している。ＷＦエンジンは、予め指示された処理順が記述されているワークフロー定義に従い、ＷＦサーバー１０２やＰＣ１０３におけるファイル操作、メールサーバーへのメール送信、ＭＦＰ１０１に対する処理実行要求等の処理を自動的に行う。
【００１０】
図２は、ＭＦＰ１０１のハードウェア構成の一例を示す図である。
ＭＦＰ１０１は、スキャナ２１３及びプリンタ２１４を接続すると共に、操作表示部２１１、操作入力部２１２、及びＬＡＮ１０４を接続することが可能なコントローラユニット２００を備える。
コントローラユニット２００は、各種制御プログラムを実行するＣＰＵ２０１を有する。
ＣＰＵ２０１は、ＲＯＭ２０３に格納されているブートプログラムに基づきＭＦＰ１０１を起動する。また、このＣＰＵ２０１は、ＨＤＤ２０４に格納されている制御プログラムを読み出し、ＲＡＭ２０２をワークエリアとして所定の処理を実行する。
ＨＤＤ２０４には、コピーやスキャン送信の機能を含む各種制御プログラムが格納されており、スキャナ２１３から読み込んだスキャンデータが格納される。
操作部出力Ｉ／Ｆ２０５は、操作表示部２１１へのデータ出力通信制御を行う。
操作部入力Ｉ／Ｆ２０６は、操作入力部２１２からのデータ入力通信制御を行う。
ネットワークＩ／Ｆ２０７は、ＬＡＮ１０４に接続され、ＬＡＮ１０４を介した情報の入出力制御を行う。
スキャナＩ／Ｆ２０８は、スキャナ２１３から画像データを入力すると共に、スキャナ制御データの入出力を行う。
プリンタＩ／Ｆ２０９は、プリンタ２１４へ出力画像データを出力すると共に、プリンタ制御データの入出力を行う。
以上、デバイス２０１から２０９までがシステムバス２１０上に配置される。
【００１１】
操作入力部２１２は、タッチパネルやハードキー等の入力装置を備えた、ユーザーからの指示入力インターフェースである。ハードキーには、紙文書のスキャン実行開始を指示するためのスタートボタン等が存在する。
操作表示部２１１は、ＬＣＤやＬＥＤ等の表示装置を備えた、ユーザーへの表示インターフェースである。
スキャナ２１３は、ＣＣＤ等の光学的な読み取り装置を備え、紙媒体を光学的に走査して、電子的な画像データとして読み取る機能を持つ。
プリンタ２１４は、電子的な画像データを、用紙等の記録媒体上に画像として形成する機能を持つ。
また、ＭＦＰ１０１は、ネットワークＩ／Ｆ２０７を介して、装置外の機器からプリント処理等の実行要求を受け付けることができる。処理の実行要求は、実行処理の種別や実行時の設定値情報等と共に、外部機器から依頼され、ＨＤＤ２０４やＲＡＭ２０２等に一時保存された後、ＣＰＵ２０１によって実行される。
更に、ＭＦＰ１０１は、実行要求処理がスキャン送信等のスキャンを伴う処理の場合、操作表示部２１１に処理実行を開始する指示ボタン等を表示することができる。この場合、ユーザーがスキャナ２１３に原稿をセットし、操作入力部２１２を介して開始指示ボタンを指示することで、ＭＦＰ１０１は、外部からの要求で指定された設定値に従ってスキャン処理を実行する。
ＣＰＵ２０１がＲＯＭ２０３又はＨＤＤ２０４等に記憶されているプログラムに基づき処理を実行することによって、ＭＦＰ１０１の機能が実現される。
【００１２】
図３は、ＷＦサーバー１０２のハードウェア構成の一例を示す図である。
ＷＦサーバー１０２は、ＬＡＮ１０４に接続可能な制御部３００を持つ。
制御部３００は、各種制御プログラムを実行するＣＰＵ３０１を有し、ＷＦサーバー１０２の全体の動作を制御する。
ＣＰＵ３０１は、ＲＯＭ３０３やＨＤＤ３０４に格納されている制御プログラムを読み出し、ＲＡＭ３０２をワークエリアとして所定の処理を実行する。ＨＤＤ３０４には、ＷＦエンジンやＷＥＢサーバー、及びワークフローエディタ等の機能を含む各種制御プログラムが格納されている。また、ＨＤＤ３０４には、ＷＦエンジンが実行するワークフロー定義も格納されている。
ネットワークＩ／Ｆ３０５は、ＬＡＮ１０４を介した情報の入出力制御を行う。
操作部出力Ｉ／Ｆ３０６は、操作表示部３０８へのデータ出力通信制御を行う。
操作部入力Ｉ／Ｆ３０７は、操作入力部３０９からのデータ入力通信制御を行う。
以上、デバイス３０１から３０７までが、システムバス３１０上に配置される。
【００１３】
操作表示部３０８は、ＬＣＤやＬＥＤ等の表示装置を備えた、ユーザーへの表示インターフェースである。
操作入力部３０９は、キーボードやマウス等の入力装置を備えた、ユーザーからの指示入力インターフェースである。
また、ＷＦサーバー１０２では、ＷＥＢサーバーが動作している。ＷＦエンジンは、ＷＥＢサーバーを利用してＨＴＭＬコンテンツを提供することができる。ＷＦエンジンは、ＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）等によって動的にコンテンツを生成することができ、ワークフロー実行のための操作画面を提供することができる。ＣＰＵ３０１がＲＯＭ３０３又はＨＤＤ３０４等に記憶されているプログラムに基づき処理を実行することによって、以下の機能や処理等が実現される。即ち、ＷＦサーバー１０２の機能、ＷＦエンジンやＷＥＢサーバー後述するワークフローエディタ等、が実現される。また、後述する図５、図６、図８、図１１、図１４のフローチャートの処理等が実現される。
なお、ＰＣ１０３もＷＦサーバー１０２と同様のハードウェア構成を持つ。ＰＣ１０３のＣＰＵやＰＣ１０３のＲＯＭ又はＨＤＤに記憶されたプログラムに基づき処理を実行することによって、ＰＣ１０３の機能が実現される。
【００１４】
図４は、ワークフローの例を模式的に示す図である。
フロー処理４０１から４０４は、ＷＦエンジンによって実行されるワークフローのそれぞれの処理を表す。フロー処理４０１から４０４までが示すワークフローは、ドキュメントを処理するワークフローである。図４の例では、フロー処理４０１から４０４までが連続的に実行されることを示している。ＷＦエンジンは、ワークフローの開始時に指定された電子データのドキュメントについて、これらの処理を連続的に実行させるよう制御する。
フロー処理４０１は、承認処理である。承認処理とは、例えばドキュメントを指定してワークフローの開始を指示したユーザーの上長に対して、ドキュメントに記載された内容について承認をもらうための処理である。より具体的には、ＷＦエンジンは、ディレクトリサービスやデータベースから、ワークフローを開始したユーザーの上長のメールアドレスを取得し、承認の依頼とＷＦエンジンが提供するＷＥＢ画面での入力指示とをメールで送信する。ＷＦエンジンが提供するＷＥＢ画面において上長が許可する旨の承認結果を入力すると、ＷＦエンジンは、次のフロー処理４０２を実行する。ここで、上長が却下等、許可以外を入力した場合については、説明の簡略化のため省略する。
フロー処理４０２は、ドキュメントをＭＦＰ１０１によってプリントする処理である。より具体的には、ＷＦエンジンは、ＷＥＢ画面に印刷に関する指示画面を表示し、ユーザーが印刷を指示したら、ＭＦＰ１０１に対してドキュメントを送信し、プリントを指示する。ドキュメントのプリントはプリントされた紙の取得を伴うため、ＷＦエンジンが自動的にプリントするのではなく、ユーザーにプリントを指示させることでプリントを実行させる。このとき、プリント可能なＭＦＰが複数台存在するのであれば、ＷＦエンジンは、どのＭＦＰにプリントをするかをユーザーに指示させることもできる。
【００１５】
フロー処理４０２でプリントが実行されると、ＷＦエンジンは、次のフロー処理４０３を実行する。フロー処理４０３は、ＭＦＰ１０１に対して紙文書をスキャンし、スキャンした電子データをＷＦサーバー１０２に送信させる処理である。より具体的には、まず、ＷＦエンジンは、ＭＦＰ１０１に対してスキャン送信を実行する指示ボタンの生成を指示する。ここで、ＷＦエンジンは、ボタンを指示した際に実行されるスキャン送信の設定値を、指示ボタンに関連付けて指定する。更に、ＷＦエンジンは、ＭＦＰ１０１に対してスキャン送信開始指示ボタンを生成したことを、ワークフローを開始したユーザーに対してメールで通知する。ユーザーが、ＭＦＰ１０１においてスキャン送信開始指示ボタンを指定し、スキャン送信を実行すると、ＷＦエンジンが指定した送信先設定にスキャンによって読み取られた電子データが送信される。ＷＦエンジンは、この電子データの受信を監視し、電子データを受信したことを確認すると、次のフロー処理４０４を実行する。
フロー処理４０４は、電子データをＰＣやファイルサーバー等のファイルシステムに、ファイルとして保存する処理である。より具体的には、ＷＦエンジンは、受信した電子データを、所定のファイル形式に変換したり、ファイル名を変更したりした後、ファイルシステムの指定された場所にファイルを移動する。
フロー処理４０４において、ファイルの移動を完了すると、ＷＦエンジンは、ワークフローの処理をすべて実行した旨のメールをユーザーに送信し、ワークフローの実行を完了する。
【００１６】
フロー処理４０１から４０４までのワークフローでは、以下の処理を順に行っている。即ち、電子データとして生成した申請書に対して、上長による確認と承認、プリント、プリントした紙文書への捺印やサイン、捺印後の紙文書の電子データとしての保存と紙文書の提出、という処理を順番に行っている。
これは、一般的なオフィスで処理されている申請書処理フローに基づく例である。
図４に示したワークフローは、以降の実施形態の説明において、ＷＦエンジンが実行するワークフローの例として使用する。また、ワークフローにおけるフロー処理４０１から４０４までは、上述したようにいくつかの細かい処理に細分することができる。
フロー処理４０１から４０４のような、ある程度の詳細処理をまとめたワークフローの実行単位を、便宜上タスクと呼ぶ。また、各タスクにおける、メールの送信やファイル名の変更等の詳細な処理実行単位を、便宜上アクションと呼ぶ。例えば、フロー処理４０１は一つのタスクと表現することができる。
更に、フロー処理４０１から４０４までにおける一連のワークフローは、同一のユーザーによって同時に複数実行することがある。購入する物品が異なる複数の物品購入申請書を同じワークフローで処理する場合や、外出する訪問先や日時が異なる外出申請届を同じワークフローで処理する場合等である。
このように、同一のワークフローによって実際に処理する申請書が複数存在し、それらが同時にＷＦエンジンによって処理されている場合、それぞれのワークフローの処理を、便宜上ワークフローのインスタンスと呼ぶ。ＷＦエンジンがワークフローを実行する場合、ワークフローのインスタンスを生成し、そのインスタンスにおいてワークフローのタスクやアクションを実行していく。同一のワークフローが複数同時に実行されている場合でも、各インスタンスによってそれぞれのドキュメントが別々に処理されている。
本実施形態では特に同一ユーザーによる同一ワークフローのインスタンス処理を同時に実行している場合について説明する。
【００１７】
図５は、ＷＦエンジンによるインスタンス管理の処理の流れを説明するフローチャートである。
図５で説明するフローは、ＷＦエンジンが実行するメインの処理であり、ワークフロー実行要求に応じてワークフローのインスタンスを生成し、管理する処理である。実際のワークフローのタスクやアクションに関する処理を行うインスタンスの処理については後述する。
まず、Ｓ５０１において、ＷＦエンジンは、ワークフロー実行に関するイベントを受信待機する。ワークフロー実行に関するイベントは、ユーザーからのワークフロー開始指示、ワークフロー実行によるＭＦＰからのプリント実行通知、スキャン送信実行通知、ＷＦサーバーやＰＣからのファイル受信通知等である。
次に、Ｓ５０２において、ＷＦエンジンは、ワークフロー実行に関するイベントを受信したかを判断する。イベントを受信していない場合（Ｓ５０２においてＮＯ）、ＷＦエンジンは、Ｓ５０１の処理に戻る。一方、ワークフロー実行に関するイベントを受信したと判断した場合（Ｓ５０２においてＹＥＳ）、ＷＦエンジンは、Ｓ５０３に進む。Ｓ５０３において、ＷＦエンジンは、受信したイベントがワークフローの開始指示であるかどうかを判断する。
ワークフローの実行指示であると判断した場合（Ｓ５０３においてＹＥＳ）、ＷＦエンジンは、Ｓ５０７に進む。Ｓ５０７において、ＷＦエンジンは、ワークフローのインスタンスを生成し、実行する。各インスタンスは、ＷＦエンジンによって実行されるが、ＷＦエンジンのインスタンス管理フローとは別のプロセスとして実行される。
インスタンスを生成、実行したＷＦエンジンは、Ｓ５０１の処理に戻る。
【００１８】
一方、ワークフローの開始指示ではないと判断した場合（Ｓ５０３においてＮＯ）、ＷＦエンジンは、Ｓ５０４に進む。Ｓ５０４において、ＷＦエンジンは、受信したイベントがインスタンスからの終了通知かどうかを判断する。各インスタンスにおいては、インスタンスにおける処理が終了した場合に、ＷＦエンジンのインスタンス管理に対して終了イベントを通知する。
インスタンスの終了通知ではないと判断した場合（Ｓ５０４においてＮＯ）、ＷＦエンジンは、Ｓ５０６に進む。Ｓ５０６において、ＷＦエンジンは、イベントをインスタンスに通知する。ここで、ＷＦエンジンは、受信したイベントがどのインスタンスで処理されるイベントであるかを判断して、然るべきインスタンスにイベントを通知する。一方、インスタンスからの終了通知であると判断した場合（Ｓ５０４においてＹＥＳ）、ＷＦエンジンは、Ｓ５０５に進む。Ｓ５０５において、ＷＦエンジンは、ＷＦエンジンのインスタンス管理が生成した全てのインスタンスが終了したかどうかを判断する。まだ終了していていないインスタンスが存在する場合（Ｓ５０５においてＮＯ）、ＷＦエンジンは、Ｓ５０１の処理に戻る。全てのインスタンスが終了した場合（Ｓ５０５においてＹＥＳ）、ＷＦエンジンは、図５に示すフローチャートの処理を完了する。
このように、ＷＦエンジンは、ワークフローインスタンスの生成、管理を行う。
【００１９】
図６は、ワークフローインスタンスの処理の流れを説明するフローチャートである。上述したように、各インスタンスは、ＷＦエンジンによって実行されるが、ＷＦエンジンのインスタンス管理フローとは別のプロセスとして実行される。
まず、Ｓ６０１において、ＷＦエンジンは、ワークフローの開始を受け付ける。これは、図５のＳ５０７において、別プロセスとして実行を指示された際に通知された、ユーザーのワークフロー指示の受付とワークフローにおいて処理するドキュメントの受信とを行う。
次に、Ｓ６０２において、ＷＦエンジンは、指示されたワークフローのワークフロー定義をＨＤＤ３０４から読み込む。
更に、Ｓ６０３において、ＷＦエンジンは、読み込んだワークフローの定義に従い、ワークフローのタスク及びそれらに含まれるアクションを読み込んで順番に実行していく。
まず、Ｓ６０４において、ＷＦエンジンは、読み込んだアクションにおいて、そのアクションがＭＦＰ１０１に対してスキャン実行ボタンの生成を指示するアクションであるかどうかを判断する。スキャン実行ボタンの生成を指示するアクションであると判断した場合（Ｓ６０４においてＹＥＳ）、ＷＦエンジンは、Ｓ６０５に進む。
Ｓ６０５において、ＷＦエンジンは、現在実行しているインスタンスが複数存在するかどうかを判断する。ワークフローを実行しているインスタンスが自身のインスタンスだけであると判断した場合（Ｓ６０５においてＮＯ）、ＷＦエンジンは、Ｓ６０９に進む。
【００２０】
一方、ワークフローを実行しているインスタンスが複数存在すると判断した場合（Ｓ６０５においてＹＥＳ）、ＷＦエンジンは、Ｓ６０６に進む。Ｓ６０６において、ＷＦエンジンは、各インスタンスにおいて処理しているドキュメントのテキスト情報を取得する。Ｓ６０６の処理は、ドキュメント内から文字コードとして表現されるテキスト情報を抽出する処理である。Ｓ６０６の処理は、単純にファイル内からテキスト情報を抽出する方法や、ＯＣＲ等によってテキスト情報を抽出する方法でもよい。
次に、Ｓ６０７において、ＷＦエンジンは、それぞれのインスタンスにおけるドキュメントから抽出したテキスト情報を比較し、差分のテキスト情報を取得する。Ｓ６０７の処理は、単純な文字列比較であってもよいし、フォントサイズやレイアウト情報等を考慮した比較でもよい。
各インスタンスにおけるドキュメントについて、差分となるテキスト情報を取得した場合、Ｓ６０８において、ＷＦエンジンは、それぞれのインスタンスにおいて、ＭＦＰで生成させるスキャン実行ボタンのボタン表示名に、差分となるテキスト情報を付加する。付加するテキスト情報としては、差分となるテキスト情報が複数存在する場合、ＷＦエンジンは、その何れを選択してもよい。本実施形態では、ＷＦエンジンは、差分となる連続文字数が最も大きいものを選択するものとする。
【００２１】
例として、２つのワークフローインスタンスが存在し、それぞれが処理するドキュメントから抽出したテキスト情報が以下のようなものだったとする。
インスタンス１：
「購買依頼申請書  ２０１５年７月１０日  開発部  鈴木  一郎  品名：ＵＳＢメモリ  単価：２０００円  数量：１個  金額：２０００円  備考：」
インスタンス２：
「購買依頼申請書  ２０１５年７月１１日  開発部  鈴木  一郎  品名：セキュリティソフト  単価：１００００円  数量：１個  金額：１００００円  備考：」
ＷＦエンジンは、ここから、両テキスト情報の最小編集距離等を求めることで、テキスト情報の差分を得ることができる。ここで、編集距離とは、２つの文字列がどの程度異なっているかを示す値である。編集距離は、ある文字列にどれだけ挿入、置換、削除等の編集を加えれば別の文字列になるかに基づいて求められる。編集距離が最小になるときの、それぞれの文字列に対する挿入、置換、削除の編集操作を行った部分が、両文字列のテキスト情報の差分として求められる。例えば、インスタンス１とインスタンス２とにおけるテキスト情報の最小編集距離を求める場合、テキスト情報の前方から編集箇所を求めると、「７月１０日」と「７月１１日」の「０」を「１」に置換する箇所が最初に求められる。したがって、この「０」と「１」とがテキスト情報の差分の候補として求められる。ＷＦエンジンは、これをテキスト情報の後方まで繰り返し、編集操作回数が最小となるときのテキスト情報の差分を抽出する。このように、ＷＦエンジンが両テキスト情報の最小編集距離を求めることにより、以下のようにテキスト情報の差分が求められたとする。
インスタンス１：
「０」、「ＵＳＢメモリ」、「２」、「２」
インスタンス２：
「１」、「セキュリティソフト」、「１０」、「１０」
このうち、最も文字数の多いものとして、インスタンス１のフローにおけるスキャン実行ボタンには「ＵＳＢメモリ」、インスタンス２のフローにおけるスキャン実行ボタンには「セキュリティソフト」という文字列が付加されることになる。その他にも、ＷＦエンジンは、テキスト情報のレイアウト情報や修飾情報を利用して、フォントサイズが最も大きいもの、ドキュメントの中央部に位置しているもの、を選択するようにしてもよい。Ｓ６０８の処理は、ワークフローに関する複数の操作指示オブジェクトのそれぞれに表示させるテキスト情報を決定する処理の一例である。
次に、Ｓ６０９において、ＷＦエンジンは、Ｓ６０８で決定したテキスト情報と共に、ＭＦＰ１０１に対してスキャン実行ボタンの生成を指示する。
【００２２】
図７は、Ｓ６０９において、ＭＦＰ１０１の操作表示部２１１に表示される操作画面の一例を示す図である。
画面７０１は、ユーザーが予め処理内容や設定値を設定しておき、その処理を実行するボタンを生成、表示する画面である。通常はユーザーがＭＦＰ１０１の操作部画面から設定してボタンを生成するが、ＭＦＰ１０１の外部からボタン生成のための設定値データを指示することで、同様に画面７０１上に処理実行ボタンを生成することもできる。
ボタン７０２、７０３は、Ｓ６０９におけるＷＦエンジンのスキャン実行ボタン生成指示によって、ＭＦＰ１０１が操作表示部２１１の画面上に生成したボタンである。
ここで、ボタン７０２はインスタンス１のワークフローの実行において生成されたボタンである。ボタン７０３はインスタンス２のワークフローの実行において生成されたボタンである。
テキスト情報７０４及び７０５は、先ほど求めた、異なるインスタンスにおいて処理されているドキュメントのテキスト情報の差分情報である。このように、それぞれのインスタンスにおけるスキャン実行ボタン上に両者のインスタンスが処理するドキュメントのテキスト情報の差分情報がテキスト情報として表示されている。このボタン上に表示されているテキスト情報は、これからスキャンするドキュメント内のテキスト情報から取得しているため、ドキュメントを見ればボタン上に表示されているテキスト情報が何れかに記載されている。これにより、ユーザーは、ドキュメントとボタンとを簡単に対応づけることができ、同じワークフローのインスタンスを複数実行している場合でも、あるドキュメントに対してどのボタンを押下してスキャンすればよいか容易に認識できる。
【００２３】
Ｓ６０９でスキャン実行ボタンを生成した後、Ｓ６１０において、ＷＦエンジンは、ＭＦＰ１０１でスキャン送信の実行を促す旨のメッセージを記載したメールを、ユーザーに対して通知する。このとき、ＷＦエンジンは、ワークフローインスタンスで処理しているドキュメントと、スキャン実行指示ボタン上に表示したテキスト情報とをメールに添付する。これにより、メールを受信したユーザーは、メールの添付内容を確認することで、どのドキュメントに対してどのボタンを押下してスキャン送信を実行すればよいのかが分かる。
その後、Ｓ６１１において、ＷＦエンジンは、次のアクションの読み込みを行う。
次に、Ｓ６１２において、ＷＦエンジンは、読み込んだアクションがワークフローの終了を示すアクションであるかを判断する。ワークフローの終了を示すアクションではないと判断した場合（Ｓ６１２においてＮＯ）、ＷＦエンジンは、Ｓ６０４の処理に戻る。ワークフロー終了のアクションであると判断した場合（Ｓ６１２においてＹＥＳ）、ＷＦエンジンは、Ｓ６１３に進む。
Ｓ６１３において、ＷＦエンジンは、ワークフローインスタンス終了のイベント通知を行い、図６に示すフローチャートの処理を終了する。
【００２４】
一方、スキャン実行ボタンの生成を指示するアクションではないと判断した場合（Ｓ６０４においてＮＯ）、ＷＦエンジンは、Ｓ６１４に進む。Ｓ６１４において、ＷＦエンジンは、ユーザーのスキャン実行を待機するアクションであるかどうかを判断する。スキャン実行待機アクションであると判断した場合（Ｓ６１４においてＹＥＳ）、ＷＦエンジンは、Ｓ６１５に進む。Ｓ６１５において、ＷＦエンジンは、スキャン送信によって送信されたファイルの受信を確認する。Ｓ６１５の処理は、スキャン送信の送信先として設定されたフォルダにおいて、予め設定したファイルが生成されたかどうかを確認する処理である。その他にも、ＷＦエンジンは、ＭＦＰ１０１に対して、ＷＦエンジンが生成指示したボタンの押下によるジョブが実行されたかどうかを問い合わせ、問い合わせの結果に基づきジョブが実行されたかどうかを判断するようにしてもよい。
ファイルの受信を確認しない場合（Ｓ６１５においてＮＯ）、ＷＦエンジンは、Ｓ６１５の処理を繰り返す。ファイルの受信を確認した場合（Ｓ６１５においてＹＥＳ）、ＷＦエンジンは、Ｓ６１６に進む。Ｓ６１６において、ＷＦエンジンは、ＭＦＰ１０１に対してスキャン実行ボタンの削除を指示する。ＷＦエンジンは、Ｓ６０９におけるスキャン実行ボタン生成時に、ボタンを一意に特定可能なＩＤ等を設定値の一部として渡しておき、削除指示においてそのＩＤを指示することで、該当するボタンを削除させる。
その後、ＷＦエンジンは、Ｓ６１１の処理を行う。
一方、スキャン実行待機アクションではないと判断した場合（Ｓ６１４においてＮＯ）、ＷＦエンジンは、Ｓ６１７に進む。Ｓ６１７において、ＷＦエンジンは、アクションに関する処理を実際に実行する。アクションに関する処理には、ＭＦＰ１０１へのプリント処理や上司ユーザーによる承認処理等が含まれるが、詳細な説明は省略する。
その後、ＷＦエンジンは、先ほどと同様にＳ６１１の処理を行う。
【００２５】
以上の処理によれば、複数のワークフローインスタンスが同時に実行されている場合、ＭＦＰ上にはそれぞれのワークフローインスタンスを区別することが可能なテキスト情報が表示されたスキャン実行ボタンが自動的に生成される。それぞれのボタン上に表示されるテキスト情報は、それぞれのインスタンスが処理するドキュメント内のテキスト情報から抽出した差分テキスト情報である。そのため、ユーザーはスキャン実行ボタンとそれを押下して処理するべきドキュメントとを容易に紐づけることができる。また、ドキュメントとそれを処理するスキャン実行ボタンに記載されたテキスト情報との組み合わせは、処理を実行する前にユーザーにメール等によって通知されるため、ユーザーは処理実行前にそれらの組み合わせを知ることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するＭＦＰでの操作性を向上させることができる。
【００２６】
（変形例１）
また、ＷＦエンジンは、複数のワークフローインスタンスが実行されている場合に、それぞれのドキュメントを画像データに変換し、画像データの差分を取得した後、その差分画像データをＭＦＰのスキャン実行ボタン上に表示させるようにしてもよい。
図８は、ワークフローインスタンスの処理の流れを説明するフローチャートである。ここで、Ｓ８０１からＳ８０５までの処理は、図６におけるＳ６０１からＳ６０５までの処理と同等である。
ワークフローを実行しているインスタンスが複数存在すると判断した場合（Ｓ８０５においてＹＥＳ）、ＷＦエンジンは、Ｓ８０６に進む。Ｓ８０６において、ＷＦエンジンは、各インスタンスにおいて処理しているドキュメントを画像データに変換する。画像データへの変換は、プリンタドライバを利用して印刷用のラスタデータに変換する方法等がある。その他にもドキュメントのフォーマットに対応した表示アプリケーションによってディスプレイ表示用の画像データ生成し、その画像をキャプチャする方法等があるが、ＷＦエンジンは、何れの方法で画像データを変換してもよい。
次に、Ｓ８０７において、ＷＦエンジンは、それぞれのワークフローインスタンスにおけるドキュメントから生成した画像データを比較し、画像データの差分情報を取得する。画像データの差分情報の取得についてはいくつか方法がある。ＷＦエンジンは、ノイズ等を取り除いた上で単純に画素単位のデータ比較を行う方法や、四分木によって再帰的に領域を分割しながら差異となる画像データの領域を特定する方法等、何れの方法で差分情報を取得してもよい。
【００２７】
図９は、Ｓ８０６によって画像データに変換されたドキュメントの一例を示す図である。
図９（Ａ）の画像データ９０１と画像データ９０２とは、それぞれ異なるワークフローインスタンスによって処理されているドキュメントを画像データに変換したものである。更に、ＷＦエンジンが、この２つの画像データをＳ８０７においてデータ比較し、画像の差分情報を画像データ上に反映したものが図９（Ｂ）の画像データ９１１と画像データ９１２とである。図９の例では、ＷＦエンジンは、検出した画像差分における領域の背景色を元画像と変更することで、画像データの差分を表現している。画像データ９１１における画像データ９１２との差分領域は、領域９１３、領域９１５である。また、画像データ９１２における画像データ９１１との差分領域は、領域９１４、領域９１６である。領域９１３と領域９１４、領域９１５と領域９１６がそれぞれ対応する画像差分として検出された差分領域である。
Ｓ８０８において、ＷＦエンジンは、Ｓ８０７で検出した画像データの差分データ又はその画像データの一部を、ＭＦＰにて生成するスキャン実行ボタンに表示する画像データとして付加する。
更に、Ｓ８０９において、ＷＦエンジンは、Ｓ８０８で付加した画像データと共に、ＭＦＰ１０１に対してスキャン実行ボタンの生成を指示する。
【００２８】
図１０は、Ｓ８０９において、ＭＦＰ１０１の操作表示部２１１に表示される操作画面の一例を示す図である。
画面１００１は、図７の画面７０１と同様に、ユーザーが予め処理内容や設定値を設定しておき、その処理を実行するボタンを生成、表示する画面である。
図１０（Ａ）のスキャン実行ボタン１００２、１００３は、Ｓ８０９におけるＷＦエンジンのスキャン実行ボタン生成指示によって、ＭＦＰ１０１が操作表示部２１１の画面上に生成したボタンである。このように、両ボタン上には、インスタンスが処理するドキュメントの差分画像データ１００４、１００５が表示されている。
差分画像データ１００４は、Ｓ８０７における画像差分データ抽出によって検出された画像差分の領域９１５のデータの一部である。差分画像データ１００４は、画像データ９０１で示されるドキュメントを処理するワークフローインスタンスにおけるスキャン実行ボタン上に表示される。
同じく、差分画像データ１００５は、Ｓ８０７における画像差分データ抽出によって検出された画像差分の領域９１６のデータの一部である。差分画像データ１００５は、画像データ９０２で示されるドキュメントを処理するワークフローインスタンスにおけるスキャン実行ボタン上に表示される。
このように、実行しているワークフローのインスタンスにおいてスキャン実行ボタン上に、処理するドキュメントを識別可能な画像データの一部が表示される。
これにより、ユーザーは、スキャン処理を行うドキュメントとスキャン実行ボタン上に表示された画像とを見比べれば、どのボタンがどのドキュメントに対応しているかを容易に確認できる。
【００２９】
図１０（Ｂ）は、図１０（Ａ）において、スキャン実行ボタン１００２が押下されたときに表示される操作画面である。
スキャン実行ボタン１００２が押下さると、ダイアログ１０１１が画面上に表示される。ダイアログ１０１１の中には、スキャン実行ボタン１００２に関するワークフローインスタンスが処理するドキュメント画像１０１２が表示される。このドキュメント画像１０１２は、Ｓ８０６で生成された画像データであり、Ｓ８０９のスキャン実行ボタン生成指示と共にＭＦＰに送信される。
ドキュメント画像１０１２では、Ｓ８０７において画像データの比較を行った際に検出された画像差分１０１３、１０１４が、背景色を変える等して強調表示されている。これにより、スキャン実行ボタン上に表示されたドキュメントの差分画像が小さく、ユーザーが判別しにくい場合でも、実際にそのボタンで処理するドキュメントの全体画像を操作表示部の画面全体に表示させることができる。このため、ユーザーはドキュメントとそれをスキャン処理するボタンとの対応を判別しやすくなる。
また、ドキュメント画像の差分が強調表示されているため、ドキュメントのどの部分に注目して判別すればよいかが分かり、ユーザーは容易にボタンとドキュメントとの対応を識別することができる。ここで、ドキュメント内に差分画像データが複数存在した場合、ＷＦエンジンは、スキャン実行ボタン上に表示する差分画像データとして、何れの差分画像データを表示させるようにしてもよい。例えば、ＷＦエンジンは、複数ある差分画像データのうち、一番領域が広い差分画像データを選択したり、ドキュメントの中央部に近い差分画像データを選択したりして、スキャン実行ボタン上に表示させるようにしてもよい。
更に、ＷＦエンジンは、ドキュメント全体を画像データに変更しなくとも、その一部のみを画像データに変更してその画像データの差分を比較してもよい。
また、ＷＦエンジンは、ドキュメント自体に画像データが含まれる場合、その画像データそのものを比較してもよい。但し、ＷＦエンジンは、比較するドキュメントのフォーマットが同一であり、ドキュメントに対する画像データの位置や領域が同じである場合に、ドキュメントに含まれる画像データ同士を比較するようにする。
【００３０】
Ｓ８０９で、スキャン実行を指示するボタンを生成した後、Ｓ８１０において、ＷＦエンジンは、ＭＦＰ１０１においてスキャン送信の実行を促す旨のメールを、ユーザーに対して通知する。このとき、ＷＦエンジンは、ワークフローインスタンスで処理しているドキュメントと、スキャン実行指示ボタン上に表示する差分画像データとをメールに添付する。これにより、メールを受信したユーザーは、メールの添付内容を確認することで、どのドキュメントに対してどのボタンを押下してスキャンを実行すればよいのかが分かる。
その後のＳ８１１からＳ８１７までの処理は、Ｓ６１１からＳ６１７までの処理と同様のため、説明を省略する。
【００３１】
このように、複数のワークフローインスタンスが同時に実行されている場合、ＭＦＰ上にはそれぞれのワークフローインスタンスを区別することが可能な画像データが表示されたスキャン実行ボタンが自動的に生成される。
また、ＷＦエンジンは、それぞれのインスタンスが処理するドキュメントを画像データに変換してその差分を比較している。このため、ドキュメントが文字コード等のテキスト情報を持たない場合でも、ユーザーが識別可能な差分情報を、それぞれのインスタンスで処理するボタン上に表示することができる。ボタン上に表示される画像データは、それぞれのインスタンスが処理するドキュメントの画像差分であるため、ボタン上の画像とドキュメントとを見比べることで、どのボタンがどのドキュメントを処理するためのものかをユーザーが容易に識別することができる。また、ドキュメントとそれを処理するスキャン実行ボタン上に表示された画像データとの組み合わせは、処理を実行する前にユーザーにメール等によって通知されるため、ユーザーは処理実行前にそれらの組み合わせを知ることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するＭＦＰでの操作性を向上させることができる。
【００３２】
（変形例２）
ワークフローシステムは、複数のワークフローインスタンスが実行されている場合、それぞれのインスタンスのドキュメント印刷においてインスタンスを一意に特定可能な識別子を付加して印刷させるようにしてもよい。また、ワークフローシステムは、その識別子をＭＦＰのスキャン実行ボタン上に表示するようにしてもよい。
図１１は、ワークフローインスタンスの処理の流れを説明するフローチャートである。ここで、Ｓ１１０１からＳ１１０３までの処理は、図６におけるＳ６０１からＳ６０３までの処理と同等である。
Ｓ１１０３の処理の後、Ｓ１１０４において、ＷＦエンジンは、読み込んだアクションがＭＦＰ１０１に対してドキュメントを印刷するアクションであるかどうかを判断する。つまり、ＷＦエンジンは、図４のフロー処理４０２に含まれるドキュメント印刷アクションであるかどうかを判断する。
ドキュメントの印刷アクションであると判断した場合（Ｓ１１０４においてＹＥＳ）、ＷＦエンジンは、Ｓ１１０５に進む。Ｓ１１０５において、ＷＦエンジンは、現在実行しているインスタンスが複数存在するかどうかを判断する。ワークフローを実行しているインスタンスが自身のインスタンスだけであると判断した場合（Ｓ１１０５においてＮＯ）、ＷＦエンジンは、Ｓ１１０７に進む。
ワークフローを実行しているインスタンスが複数存在すると判断した場合（Ｓ１１０５においてＹＥＳ）、ＷＦエンジンは、Ｓ１１０６に進む。Ｓ１１０６において、ＷＦエンジンは、各インスタンスを一意に特定可能な識別子を生成し、印刷ドキュメントに付加する。ここで、識別子は、インスタンスを一意に特定可能なものであれば数字や英字やそれらの組み合わせ等、何であってもよい。ユーザーが識別可能なものであれば図形やマークのようなものでもよい。また、識別子は、ドキュメントのヘッダやフッタ等、元のドキュメントの内容に重ならないような位置に決め打ちで付加される。
また、ＷＦエンジンは、生成した識別子をドキュメントに付加するため、異なるインスタンスにおけるドキュメントの比較を行わない。このため、ＷＦエンジンは、Ｓ１１０５の別インスタンスの存在の確認を行わず、常にＳ１１０６の処理を行ってもよい。
Ｓ１１０７において、ＷＦエンジンは、ＭＦＰに対して、ワークフローインスタンスで処理しているドキュメントの印刷を指示する。Ｓ１１０７の処理は、印刷指示の一例である。
【００３３】
図１２は、複数のワークフローインスタンスが実行されている場合に、Ｓ１１０７によって印刷されたドキュメントの一例を示す図である。
ドキュメント１２０１とドキュメント１２０２とは、同じワークフローを実行しているが、異なるインスタンスで処理されているドキュメントの例である。同じ申請書を処理するワークフローであるが、申請書の内容が異なっている。
ここで、識別子１２０３及び１２０４は、Ｓ１１０６によって生成された識別子であり、Ｓ１１０７においてドキュメントに付加され、印刷される。
このように、ドキュメントの隅に英数字等、ユーザーが認識可能な識別子が付加されて印刷される。
その後、Ｓ１１０８において、ＷＦエンジンは、次のアクションの読み込みを行う。Ｓ１１０８からＳ１１１０までの処理は、図６におけるＳ６１１からＳ６１３までの処理と同等である。
【００３４】
読み込んだアクションがドキュメントを印刷するアクションではないと判断した場合（Ｓ１１０４においてＮＯ）、ＷＦエンジンは、Ｓ１１１１に進む。Ｓ１１１１において、ＷＦエンジンは、アクションがＭＦＰ１０１に対してスキャン実行ボタンを生成指示するアクションであるかどうかを判断する。
スキャン実行ボタン生成を指示するアクションであると判断した場合（Ｓ１１１１においてＹＥＳ）、ＷＦエンジンは、Ｓ１１１２に進む。Ｓ１１１２において、ＷＦエンジンは、スキャン実行ボタン上に表示するために、ボタン名にＳ１１０６で生成した識別子を付加する。
その後、Ｓ１１１３において、ＷＦエンジンは、Ｓ１１１２で付加した識別子情報と共に、ＭＦＰ１０１に対してスキャン実行ボタンの生成を指示する。
図１３は、Ｓ１１１３において、ＭＦＰ１０１の操作表示部２１１に表示される操作画面の一例を示す図である。
画面１３０１は、図７の７０１と同様に、ユーザーが予め処理内容や設定値を設定しておき、その処理を実行するボタンを生成、表示する画面である。
ボタン１３０２、１３０３は、Ｓ１１１３におけるＷＦエンジンのスキャン実行ボタン生成指示によって、ＭＦＰ１０１が操作表示部２１１の画面上に生成したボタンである。
このように、両ボタン上には、インスタンスを一意に特定可能な識別子１３０４、１３０５が表示されている。この識別子１３０４、１３０５は、各インスタンスにおけるＳ１１０６の処理で生成されたものであり、図１２においてドキュメント印刷時に付加された識別子１２０３、１２０４と同じものである。つまり、それぞれのインスタンスが処理するドキュメントには識別子が印刷され、そのドキュメントをスキャンするためのスキャン実行ボタン上には同じ識別子が表示される。
これにより、ユーザーは、同じ識別子であることを確認することで、どのドキュメントをどのスキャン実行ボタンによってスキャンすればよいか容易に識別することができる。
【００３５】
Ｓ１１１３で、スキャン実行を指示するボタンを生成した後、Ｓ１１１４において、ＷＦエンジンは、ＭＦＰ１０１においてスキャン送信の実行を促す旨のメールを、ユーザーに対して通知する。このとき、ＷＦエンジンは、そのワークフローインスタンスで処理しているドキュメントと、そのインスタンスに割り当てた識別子情報とをメールに添付する。
これにより、メールを受信したユーザーは、メールの添付内容を確認することで、同じ識別子が表示されているものを確認することにより、どのドキュメントに対してどのボタンを押下してスキャン送信を実行すればよいのかが分かる。
その後、ＷＦエンジンは、ステップ１１０８の処理を実行する。
一方、スキャン実行ボタン生成指示アクションではないと判断した場合（Ｓ１１１１においてＮＯ）、ＷＦエンジンは、Ｓ１１１５に進む。Ｓ１１１５において、ＷＦエンジンは、読み込んだアクションがユーザーによるスキャン実行の処理待ちのアクションであるかどうかを判断する。
Ｓ１１１５からＳ１１１８までの処理は、図６におけるＳ６１４からＳ６１７までの処理と同等であるため、説明を省略する。
【００３６】
このように図１１に示した処理によれば、複数のワークフローインスタンスが同時に実行されている場合、ドキュメントにインスタンスを特定する識別子が印刷され、ＭＦＰ上にはそのドキュメントに対応した識別子が表示されたスキャン実行ボタンが生成される。このため、各インスタンスにおけるドキュメントのテキスト情報や画像データの差分が少なく、差分情報を表示してもその違いをユーザーが認識しづらい場合でも、ユーザーはドキュメントとそれをスキャン処理するボタンとの対応付けを容易に行うことができる。また、ドキュメントとそれを処理するスキャン実行ボタン上に表示される識別子は、処理を実行する前にユーザーにメール等によって通知されるため、ユーザーは処理実行前にそれらの組み合わせを知ることができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するＭＦＰでの操作性を向上させることができる。
【００３７】
（変形例３）
本変形例では、複数のワークフローインスタンスが実行されている場合、１つのインスタンスにおけるスキャン実行ボタンを生成した後、そのボタン押下によってスキャン実行されるまで他のインスタンスにおけるドキュメント印刷の実行を待機させる。
変形例２との差分について記述する。
図１４は、ワークフローインスタンスの処理の流れを説明するフローチャートである。ここで、Ｓ１４０１からＳ１４０４までの処理は、図１１におけるＳ１１０１からＳ１１０４までの処理と同等である。
ドキュメントの印刷を指示するアクションであると判断した場合（Ｓ１４０４においてＹＥＳ）、ＷＦエンジンは、Ｓ１４０５に進む。Ｓ１４０５において、ＷＦエンジンは、現在スキャン待ち状態となっているワークフローインスタンスが存在するかどうかを判断する。即ち、ドキュメント印刷のアクションを実行した後から、スキャン実行ボタンを介したユーザーの指示によって実際にスキャン送信が実行され、スキャン実効ボタンが削除されるまでの間の状態にあるワークフローインスタンスが存在するかどうかを判断する。スキャン待ち状態になっているワークフローインスタンスが存在しないと判断した場合（Ｓ１４０５においてＮＯ）、ＷＦエンジンは、Ｓ１４０８に進む。
スキャン待ち状態になっているワークフローインスタンスが別に存在すると判断した場合（Ｓ１４０５においてＹＥＳ）、ＷＦエンジンは、Ｓ１４０６に進む。Ｓ１４０６において、ＷＦエンジンは、別ワークフローインスタンスの処理実行を待つ。Ｓ１４０５、Ｓ１４０６の処理は、待機処理の一例である。
【００３８】
Ｓ１４０７において、ＷＦエンジンは、別ワークフローインスタンスにおけるスキャン送信が実行されたかどうかを判断する。例えば、ＷＦエンジンは、定期的にポーリングを行ってワークフローインスタンスの状態を判断する等の方法によって、別ワークフローインスタンスにおけるスキャン送信が実行されたかどうかを判断する。
別ワークフローインスタンスにおけるスキャン送信が実行されていないと判断した場合（Ｓ１４０７においてＮＯ）、ＷＦエンジンは、Ｓ１４０６の処理に戻り、別ワークフローインスタンスの処理実行を待つ。
別ワークフローインスタンスにおけるスキャン送信が実行されたと判断した場合（Ｓ１４０７においてＹＥＳ）、ＷＦエンジンは、Ｓ１４０８に進む。Ｓ１４０８において、ＷＦエンジンは、ＭＦＰ１０１に対して、自身のワークフローインスタンスで処理しているドキュメントの印刷を指示する。
その後、ＷＦエンジンは、Ｓ１４０９にて次のアクションの読み込みを行うが、Ｓ１４０９からＳ１４１１までの処理は、図１１におけるＳ１１０８からＳ１１１０までの処理と同等である。
読み込んだアクションはドキュメントを印刷するアクションではないと判断した場合（Ｓ１４０４においてＮＯ）、ＷＦエンジンは、Ｓ１４１２に進む。Ｓ１４１２において、ＷＦエンジンは、そのアクションがＭＦＰ１０１に対してスキャン実行ボタンを生成指示するアクションであるかどうかを判断する。
【００３９】
スキャン実行ボタン生成を指示するアクションであると判断した場合（Ｓ１４１２においてＹＥＳ）、ＷＦエンジンは、Ｓ１４１３に進む。Ｓ１４１３において、ＷＦエンジンは、ＭＦＰ１０１に対してスキャン実行ボタンの生成を指示する。その際、ＷＦエンジンは、ボタン上にワークフローインスタンスを特定するための情報を付加することは特に行わない。しかし、複数のワークフローインスタンスが実行されている場合でも、１つのインスタンスにおいてスキャン実行ボタンが生成されている間は、他のインスタンスの処理は、ドキュメントのプリント実行前の状態となる。このため、ＭＦＰ上にはスキャン実行ボタンが１つしか表示されない。ドキュメントのプリントも１つのインスタンスでしか実行してないため、プリントされたドキュメントとスキャン実行ボタンの組は１つだけとなり、ユーザーは、容易にその対応付けを判断することができる。
Ｓ１４１３で、スキャン実行を指示するボタンを生成した後、Ｓ１４１４において、ＷＦエンジンは、ＭＦＰ１０１においてスキャン送信の実行を促す旨のメールを、ユーザーに対して通知する。このときも、ＷＦエンジンは、ドキュメントとスキャン実行ボタンとを関係づけるような情報をメールに添付することはない。しかし、その関係をユーザーが容易に識別可能なことは先に述べたとおりである。
その後、ＷＦエンジンは、ステップ１４０９の処理を実行する。
スキャン実行ボタン生成指示アクションではないと判断した場合（Ｓ１４１２においてＮＯ）、ＷＦエンジンは、Ｓ１４１５に進む。Ｓ１４１５において、ＷＦエンジンは、読み込んだアクションがスキャン待ちのアクションであるかどうかを判断する。
Ｓ１４１５からＳ１４１８までの処理は、図１１におけるＳ１１１５からＳ１１１８までの処理と同等であるため、説明を省略する。
【００４０】
このように、複数のワークフローインスタンスが同時に実行されている場合、ドキュメントが印刷されてスキャン実行ボタンが生成され、スキャン送信実行待ちとなるワークフローインスタンスは常に１つだけとなる。他のワークフローインスタンスは、ドキュメントを印刷するアクションの実行前の状態で待機する。このため、実際に印刷されているドキュメントとスキャン実行ボタンは常に１組だけとなり、ユーザーはその対応付けを容易に行うことができる。
これによって、複数のワークフローインスタンスを同時に実行している場合でも、間違ったスキャン実行ボタンを押してドキュメントをスキャン処理するといったミスを防ぐことができ、ユーザーに対するＭＦＰでの操作性を向上させることができる。
【００４１】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００４２】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。上述した実施形態では、ＷＦエンジンは、サーバーに実装される例を用いて説明を行った。しかし、ＷＦエンジンを、ワークフローを統括的に管理するＭＦＰの一つに実装するようにしてもよい。また、ＷＦサーバー１０２のハードウェア構成は、図３に示したものに限られず、ＷＦサーバー１０２は、複数のＣＰＵ３０１やネットワークＩ／Ｆ３０５等を有していていもよい。
【００４３】
以上、上述した実施形態の処理によれば、ワークフローに関する操作指示オブジェクトの選択に関する操作性を向上させると共に、操作指示オブジェクトの押し間違い等を軽減させる技術を提供することができる。
【符号の説明】
【００４４】
１０１  ＭＦＰ
１０２  ＷＦサーバー
３０１  ＣＰＵ
【図１】
2017126155.tif 000003
【図２】
2017126155.tif 000004
【図３】
2017126155.tif 000005
【図４】
2017126155.tif 000006
【図５】
2017126155.tif 000007
【図６】
2017126155.tif 000008
【図７】
2017126155.tif 000009
【図８】
2017126155.tif 000010
【図９】
2017126155.tif 000011
【図１０】
2017126155.tif 000012
【図１１】
2017126155.tif 000013
【図１２】
2017126155.tif 000014
【図１３】
2017126155.tif 000015
【図１４】
2017126155.tif 000016