(57)【要約】【課題】複数の拡張ソフトを組み合わせたワークフローの編集を容易化する。【解決手段】ワークフローの変更条件が設定されると、それを格納する。その際に、ワークフロー定義情報を、設定された変更条件にしたがって編集する。【選択図】図１３
2018185685.tif 000002
【特許請求の範囲】
【請求項１】
一連の拡張プログラムを含むワークフローを定義したワークフロー定義情報を管理するためのワークフロー管理手段と、
前記ワークフロー定義情報に従って前記拡張プログラムを実行するためのワークフロー実行手段とを有し、
前記ワークフロー管理手段は、前記ワークフロー定義情報の内容を変更するための条件に従って、前記ワークフロー定義情報の編集を行うことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記条件には、前記ワークフロー定義情報に含まれた編集の対象と、編集の種類とを含むことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記ワークフロー管理手段は、前記ワークフロー定義情報の編集として、前記編集の対象の追加、前記編集の対象の変更および前記編集の対象の削除の少なくともいずれかを行い、
前記条件には、前記編集として追加を行う場合には追加される位置が、前記編集として変更を行う場合には変更後の対象が含まれることを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の情報処理装置であって、
前記ワークフロー定義情報をインストールするためのインストール手段をさらに有し、
前記ワークフロー管理手段は、前記インストール手段によってワークフロー定義情報がインストールされた場合に、前記条件に従って前記ワークフロー定義情報を編集することを特徴とする情報処理装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の情報処理装置であって、
前記ワークフロー管理手段は、編集した前記ワークフロー定義情報を、編集前のワークフロー定義情報とは別の実行用ワークフロー定義情報として管理し（４４５、４４６）、
前記ワークフロー実行手段は、前記実行用ワークフロー定義情報をもとに前記拡張プログラムを実行することを特徴とする情報処理装置。
【請求項６】
請求項１乃至４のいずれか一項に記載の情報処理装置であって、
前記ワークフロー管理手段は、前記ワークフロー実行手段により前記ワークフロー定義情報に従った前記拡張プログラムを実行する際に、前記ワークフロー定義情報を前記条件に従って編集し、
前記ワークフロー実行手段は、編集した前記ワークフロー定義情報をもとに前記拡張プログラムを実行することを特徴とする情報処理装置。
【請求項７】
請求項１乃至６のいずれか一項に記載の情報処理装置であって、
前記条件を設定させるための条件設定手段をさらに有し、
前記ワークフロー管理手段は、前記条件設定手段によって条件が変更された場合、前記ワークフロー定義情報を、変更された前記条件に従って編集することを特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置であって、
前記条件設定手段は、前記情報処理装置に接続された端末に対して前記条件を設定するためのユーザインタフェースを提供し、該ユーザインタフェースを介した入力を前記条件として設定することを特徴とする情報処理装置。
【請求項９】
請求項１乃至８のいずれか一項に記載の情報処理装置であって、
前記ワークフロー管理手段は、管理している全てのワークフロー定義情報に対して、前記条件に応じて編集することを特徴とする情報処理装置。
【請求項１０】
情報処理装置の制御方法であって、
一連の拡張プログラムを含むワークフローを定義したワークフロー定義情報を管理するためのワークフロー管理工程と、
前記ワークフロー定義情報に従って前記拡張プログラムを実行するためのワークフロー実行工程とを有し、
前記ワークフロー管理工程では、前記ワークフロー定義情報の内容を変更するための条件に従って、前記ワークフロー定義情報の編集を行うことを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピューターを、請求項１乃至９のいずれか一項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば画像形成装置等においてワークフローを実行するための情報処理装置およびその制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年、オフィスに設置される画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張される機能（以降、拡張機能）は、ソフトウェアプログラム（以降、拡張ソフト）によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしてはキヤノン株式会社のＭＥＡＰ（登録商標）などがあげられる。
【０００３】
また、ユーザが選択した拡張ソフトを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている（例えば、特許文献１）。特にある目的に応じて、特定の入力から出力を行うように作られた拡張ソフトは、アプリケーションソフトウェア（以降、アプリ）と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで入力から出力までの一連の処理（以降、ワークフロー）を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。また、ワークフローを定義する手段として、定義を示した情報が用いられ、実行装置においてそれらワークフローの定義に基づいた処理が実施される。ワークフローは、サービスの処理を組み合わせたワークフローを定義した情報（定義ファイル）を用いて、画像形成装置上の複数の機能を連結するよう構成されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2016-35713号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザにワークフローが導入された後、ワークフローの一部分に処理の追加/変更/削除を行う場合、ワークフローの定義ファイルを編集する必要がある。複数のワークフローが導入されている場合は、複数のワークフローの定義ファイルを編集することはユーザにとって手間となる。また、ワークフローの編集において、XMLなどを編集するには、編集者にとって大きな手間となる。
【０００６】
本発明は上記従来例に鑑みて成されたもので、既存のワークフローの編集を容易に行うための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は以下の構成を有する。
【０００８】
一連の拡張プログラムを含むワークフローを定義したワークフロー定義情報（４４３から４４６）を管理するためのワークフロー管理手段（４４０）と、
前記ワークフロー定義情報に従って前記拡張プログラムを実行するためのワークフロー実行手段（４３０）とを有し、
前記ワークフロー管理手段は、前記ワークフロー定義情報の内容を変更するための条件に従って、前記ワークフロー定義情報の編集を行うことを特徴とする情報処理装置。
【発明の効果】
【０００９】
本発明によれば、ワークフローの編集を容易に行うことができる。それによりワークフロー編集の誤りを減少させ、また生産性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態における、画像処理システムの構成を示す図である。
【図２】本発明の実施形態における、ＭＦＰのハードウェア構成を示すブロック図である。
【図３】本発明の実施形態における、ＰＣのハードウェア構成を示すブロック図である。
【図４】本発明の第一の実施形態における、ＭＦＰのソフトウェア構成を示すブロック図である。
【図５】本発明の実施形態における、機能プロバイダ情報テーブル及び機能プロバイダＩ／Ｆ情報テーブルの例である。
【図６】本発明の実施形態における、ワークフローを実行するための、ＭＦＰの操作部に表示されるＵＩの例である。
【図７】本発明の実施形態における、ワークフロー定義ファイルの具体的な記述例の第１の例である。
【図８】本発明の実施形態におけるワークフロー定義ファイルの具体的な記述例の第２の例である。
【図９】本発明の実施形態における、ワークフロー編集条件テーブル４４１の例である。
【図１０】本発明の実施形態における条件テーブル４４１の内容を、ユーザが変更するためのUIの例である。
【図１１】本発明の第一の実施形態における、ＷＦ定義ファイル４４３のインストールの処理フローを説明するフローチャートである。
【図１２】本発明の第一の実施形態における、ワークフロー編集条件テーブル４４０の条件が変更された場合の、ワークフロー管理部４４０における処理フローを説明するフローチャートである。
【図１３】本発明の第一の実施形態における、ワークフロー管理部４４０における、ワークフロー定義ファイルの編集処理の処理フローを説明するフローチャートである。
【図１４】本発明の実施形態における、実行用ワークフロー定義ファイルの例である。
【図１５】本発明の第一の実施形態における、ワークフローの実行の流れの一例を示したシーケンス図である。
【図１６】本発明の二の実施形態における、ＭＦＰのソフトウェア構成を示すブロック図である。
【図１７】本発明の第二の実施形態におけるＷＦ定義ファイル４４３のインストールの処理フローを説明するフローチャートである。
【図１８】本発明の第二の実施形態における、ワークフロー編集条件テーブル４４０の条件が変更された場合の、ワークフロー管理部４４０における処理フローを説明するフローチャートである。
【図１９】本発明の第二の実施形態のワークフロー管理部４４０における、ワークフロー定義ファイルの編集処理の処理フローを説明するフローチャートである。
【図２０】本発明の第二の実施形態におけるＭＦＰ１０１上のワークフローの実行の流れの一例を示したシーケンス図である。
【発明を実施するための形態】
【００１１】
［第一実施形態］
以下、本発明を実施するための第一の実施形態について図面を用いて説明する。図１は、本発明の実施形態における、画像処理システムの構成を示す図である。本システムは、ＬＡＮ１１０を介して接続されるＭＦＰ１０１と、端末となるＰＣ（コンピューター）１０２とから構成される。ＬＡＮ１１０上の装置は相互に通信可能である。ＭＦＰ１０１は、スキャナ、プリンタを有する画像形成装置である。加えて、装置上で動作する拡張ソフト（拡張ソフトウェアあるいはアプリケーションあるいは拡張プログラムとも呼ぶ）を追加、実行させるためのソフトウェアプラットホームを持つ。ＰＣ１０２は情報処理装置であり、ＭＦＰ１０１に対して、設定や拡張ソフトの追加、削除などを行うためのＰＣである。また、ＬＡＮ１１０はＷＡＮなどの外部ネットワークとも接続されていても良い。図１の画像処理システムは、拡張ソフトによって定義されるワークフローを実行する。そのためワークフロー処理システムと呼ぶこともある。また、より一般的に情報処理システムと呼ぶこともある。
【００１２】
＜ＭＦＰのハードウェア構成＞
図２は、本発明の実施形態における、ＭＦＰのハードウェア構成を示すブロック図である。ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２やＨＤＤ２１４に記憶された制御プログラムやアプリケーションなどの拡張ソフトウェアを読み出して読取制御や送信制御などの各種制御処理あるいはアプリケーション処理を実行する。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ２１４は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。
【００１３】
操作部Ｉ／Ｆ２１５は、操作部２１９と制御部２１０とを接続する。操作部２１９には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。プリンタＩ／Ｆ２１６は、プリンタ２２０と制御部２１０とを接続する。プリンタ２２０で印刷すべき画像データはプリンタＩ／Ｆ２１６を介して制御部２１０からプリンタ２２０に転送され、プリンタ２２０において記録媒体上に印刷される。スキャナＩ／Ｆ２１７は、スキャナ２２１と制御部２１０とを接続する。スキャナ２２１は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。ネットワークＩ／Ｆ２１８は、制御部２１０（ＭＦＰ１０１）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ２１８は、ＬＡＮ１１０上またはＷＡＮ１２０上の他の装置との間で各種情報を送受信する。
【００１４】
＜ＰＣのハードウェア構成＞
図３は、本発明の実施形態における、ＰＣ１０２のハードウェア構成を示すブロック図である。ＣＰＵ３１１を含む制御部３１０は、ＰＣ１０２全体の動作を制御する。ＣＰＵ３１１は、ＲＯＭ３１２やＨＤＤ３１４に記憶された制御プログラムを読み出して各種制御処理を実行する。ＲＡＭ３１３は、ＣＰＵ３１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ３１４は、各種のプログラムやデータを記憶する。
【００１５】
表示部Ｉ／Ｆ３１５は、表示部３１８と制御部３１０とを接続する。キーボードＩ／Ｆ３１６は、キーボード３１９と制御部３１０とを接続する。ＣＰＵ３１１は、キーボード３１９を介したユーザからの指示を認識し、認識した指示に応じて表示部３１８に表示する画面を遷移させる。
【００１６】
ネットワークＩ／Ｆ３１７は、制御部３１０（サーバ１０２）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ３１７は、ＬＡＮ１１０上の他の装置との間で各種情報を送受信する。
【００１７】
＜ＭＦＰのソフトウェア構成＞
図４は、本発明の第一の実施形態における、ＭＦＰのソフトウェア構成を示すブロック図である。ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラム（ソフトウェア）を、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、後述の処理が実行される。それによって図４に示した各機能ブロックが実現される。なおＭＦＰ１０１のソフトウェア機能ブロックはこれに限らず、ハードウェアを制御するための制御プログラムや、ＰＣ１０２等のＷｅｂブラウザからのアクセスに応じてサービスするＷｅｂサーバ等も備えている。
【００１８】
●拡張ソフト管理部
拡張ソフト管理部４１０は、ＭＦＰ１０１上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図４では、拡張ソフトとして７つの拡張ソフト４１１〜４１７が機能プロバイダとしてＭＦＰ１０１にインストールされている。機能プロバイダは、拡張ソフトの一種であるが、アプリケーション（アプリ）ではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは入力なら入力、出力なら出力といった特定の機能を提供する拡張ソフトであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。例えば、「スキャンしてプレビュー表示の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」「プレビュー」「送信」の３つの機能をひとつのアプリで実現する。一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の３つの機能プロバイダが必要になる。さらに、それら３つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部４３０が必要になる。
【００１９】
また、アプリは、ＭＦＰ１０１が元々備えている機能（例えばコピー機能やファクス送信機能）を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部４２０に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部４２０経由でワークフロー処理部４３０の指示によって呼び出される。
【００２０】
さらに、機能プロバイダは、機能プロバイダ管理部４２０が規定するルール（以降、機能プロバイダインターフェース）を満たすようにプログラミングされている。機能プロバイダインターフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインターフェースである。機能プロバイダインターフェースは、機能プロバイダが提供する機能の種類（以降、機能タイプ）ごとに定められている。機能プロバイダは、機能プロバイダインターフェースに基づいてワークフロー処理部４３０から呼び出される。
【００２１】
なお、１つの機能プロバイダは目的に応じて、複数種類のインターフェースを持つ場合がある。例えば、スキャン機能を実現する機能プロバイダであれば、「スキャン設定画面の表示」の目的のためと「スキャンジョブの実行」の目的のためといったように、目的別に複数種類のインターフェースを用意することができる。また、複数種類の機能プロバイダをＭＦＰ１０１にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類インストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類インストールしてもよい。同じ機能タイプの機能プロバイダは同じ機能プロバイダインターフェースを持つため、拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
【００２２】
標準スキャンプロバイダ４１１と簡単スキャンプロバイダ４１２は、ともにスキャン機能を提供する機能プロバイダ（機能タイプ＝スキャン）である。機能タイプが「スキャン」の機能プロバイダを総称してスキャンプロバイダと呼ぶ。スキャンプロバイダは、機能タイプが「スキャン」の機能プロバイダのために定義された機能プロバイダインターフェース（スキャンプロバイダインターフェース）を実現する。標準スキャンプロバイダ４１１は、一般的なユーザ向けのスキャン設定画面を持つ。一方、簡単スキャンプロバイダ４１２は、ＭＦＰ１０１の操作に不慣れな初心者向けのスキャン設定画面を持つ。
【００２３】
組込ＯＣＲプロバイダ４１３とＷｅｂ  ＯＣＲプロバイダ４１４は、ともにＯＣＲ機能を提供する機能プロバイダ（機能タイプ＝ＯＣＲ）である。機能タイプが「ＯＣＲ」の機能プロバイダを総称してＯＣＲプロバイダと呼ぶ。ＯＣＲプロバイダは、機能タイプが「ＯＣＲ」の機能プロバイダのために定義された機能プロバイダインターフェース（ＯＣＲプロバイダインターフェース）を実現する。組込ＯＣＲプロバイダ４１３は、ＭＦＰ１０１上で文字認識処理を行うことでＯＣＲ機能を提供する。一方、Ｗｅｂ  ＯＣＲプロバイダ４１４は、外部のＷｅｂサーバ（例えばＰＣ１０２が有するＷｅｂサーバの機能、またはＷＡＮに接続されたＷｅｂサーバ）が提供する文字認識処理を、Ｗｅｂブラウザー４５０を介して呼び出すことでＯＣＲ機能を提供する。
【００２４】
ＳＭＢ送信プロバイダ４１５は、送信機能を提供する機能プロバイダ（機能タイプ＝ファイル送信）である。ＳＭＢ送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインターフェース（ファイル送信プロバイダインターフェース）を実現する。ＳＭＢ送信プロバイダ４１５は、たとえばＦＴＰなどのファイル転送プロトコルにしたがってファイルを送信する。
【００２５】
Ｅ−ｍａｉｌ送信プロバイダ４１６は、送信機能を提供する機能プロバイダ（機能タイプ＝ファイル送信）である。Ｅ−ｍａｉｌ送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインターフェース（ファイル送信プロバイダインターフェース）を実現する。Ｅ−ｍａｉｌ送信プロバイダ４１６は、たとえばＳＭＴＰなどのメール送信プロトコルに従ってファイルを送信する。
【００２６】
プレビュープロバイダ４１７は、スキャン機能を提供する機能プロバイダ（機能タイプ＝スキャン）によって生成された画像を、操作部２１９に表示するプレビュー機能を提供する機能プロバイダ（機能タイプ＝プレビュー）である。プレビュープロバイダは、機能タイプが「プレビュー」の機能プロバイダのために定義された機能プロバイダインターフェース（プレビュープロバイダインターフェース）を実現する。
【００２７】
以上で説明した４１１〜４１７の７つの機能プロバイダは一例であり、ＭＦＰ１０１には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
【００２８】
●機能プロバイダ管理部
機能プロバイダ管理部４２０は、ＭＦＰ１０１にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部４２０は、機能プロバイダ登録部４２１、機能プロバイダ検索部４２２、機能プロバイダ情報テーブル４２３、及び機能プロバイダＩ／Ｆ情報テーブル４２４を持つ。
【００２９】
機能プロバイダ登録部４２１は、各機能プロバイダからの依頼を受けて、機能プロバイダ情報テーブル４２３に、各機能プロバイダの機能タイプや設定可能な値などの情報を登録する。各機能プロバイダはＭＦＰにインストールされ実行状態になった時に機能プロバイダ登録部４２１に対して自身の登録を行う。
【００３０】
機能プロバイダ検索部４２２は、後述するワークフロー処理部４３０から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル４２３の情報をもとに機能プロバイダを特定する。機能プロバイダ検索部４２３は、検索結果として機能プロバイダをひとつに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。
【００３１】
機能プロバイダ情報テーブル４２３は、機能プロバイダを一意に特定する機能プロバイダＩＤ、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェース、機能プロバイダに設定可能な値、ＷＦ定義情報など、機能プロバイダに関する情報を保持する。
【００３２】
機能プロバイダI/F情報テーブル４２４は、機能プロバイダの機能タイプＩＤ、機能タイプの名称、機能プロバイダインターフェース、設定インターフェース、実行インターフェース、共通インターフェースなど、機能プロバイダインターフェースに関する情報を保持する。
【００３３】
●ワークフロー処理部
ワークフロー処理部４３０は、後述するワークフロー定義ファイル４４５、４４６に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。このワークフロー定義ファイルに定義された一連の処理をワークフローと呼ぶ。またワークフロー定義ファイルのことをワークフロー定義情報と呼ぶ場合もある。
【００３４】
●ワークフロー管理部
ワークフロー管理部４４０は、ワークフロー定義ファイルの管理を実施する。具体的には、ワークフロー定義ファイルのインストール、アンインストール、またはワークフローの編集条件を、設定ＵＩ４４２を介してユーザから受け付け、管理する。
【００３５】
ワークフロー編集条件テーブル４４１は、ワークフローを変更するための条件を管理するテーブルである。具体的には、ワークフローを変更するための処理条件と、変更する処理内容、及び設定項目等を管理する。ワークフロー編集条件テーブル４４１に設定される各種情報は設定ＵＩ４４２を介してユーザから入力される。
【００３６】
設定ＵＩ４４２は、ワークフロー編集条件テーブル４４１の設定、またはワークフロー定義ファイルのインストール、アンインストールなどの設定を行うためのＵＩである。本実施形態では、Ｗｅｂブラウザー４５０、またはＰＣ１０２に搭載されるＷｅｂブラウザーを介して設定ＵＩ４４２はユーザに提供され、ユーザからの指示を受け付ける。
【００３７】
ワークフロー定義ファイル４４３は、機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義する。ワークフロー定義ファイル４４４は、ワークフロー定義ファイル４４３と定義内容が異なる別のワークフローを定義するものである。実行用ワークフロー定義ファイル４４５は、機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義するもので、ワークフロー処理部４３０によって実行される。実行用ワークフロー定義ファイルは、ワークフロー定義ファイルに基づいて生成されるもので、設定された条件にしたがって編集されている。ワークフロー定義ファイル４４６は、ワークフロー定義ファイル４４５と定義内容が異なる別のワークフローを定義するものである。尚、本実施形態では、ワークフロー定義ファイル４４３に対応した実行用ワークフロー定義ファイルが実行用ワークフロー定義ファイル４４５であり、ワークフロー定義ファイル４４４に対応した実行用ワークフロー定義ファイルが実行用ワークフロー定義ファイル４４６とする。実行用ワークフロー定義ファイルは、編集前のワークフロー定義ファイルに対して条件に応じて編集を施したものである。実行用ワークフロー定義ファイルを実行用ワークフロー定義情報と呼ぶこともある。なお図４ではワークフロー定義ファイルの例を複数定義しているが、数を限定するものではない。
【００３８】
＜機能プロバイダ情報テーブル及び機能プロバイダＩ／Ｆ情報テーブル＞
図５に、本発明の実施形態における、機能プロバイダ情報テーブル４２３及び機能プロバイダＩ／Ｆ情報テーブル４２４の例を示す。機能プロバイダ情報テーブル４２３は、機能プロバイダを一意に特定する機能プロバイダＩＤ、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェース、機能プロバイダに設定可能な値、ワークフロー（ＷＦ）定義など、機能プロバイダに関する情報を機能プロバイダごとに関連づけて保持する。機能プロバイダＩＤは、たとえば後述するワークフロー編集条件テーブルに含まれる処理の欄に記述される値に対応する。機能プロバイダタイプは、ＦＰタグに記述されたタイプに相当する。機能プロバイダインターフェースは、
機能プロバイダＩ／Ｆ情報テーブル４２４は、機能プロバイダの機能タイプ、機能タイプの名称、機能プロバイダインターフェース、設定インターフェース、実行インターフェース、共通インターフェースなど、機能プロバイダインターフェースに関する情報を、機能プロバイダごとに関連づけて保持する。設定インターフェースは機能プロバイダの持つ設定画面を呼び出すための機能プロバイダインターフェースである。実行インターフェースは機能プロバイダのもつ実行処理を呼び出すための機能プロバイダインターフェースである。共通インターフェースは、各機能プロバイダに共通して定義されているインターフェースである。
【００３９】
図６は、本発明の実施形態における、ワークフローを実行するための、ＭＦＰ１０１の操作部２１９に表示されるＵＩの例である。ボタン６０１は、実行用ワークフロー定義ファイル４４５に定義されたワークフローを実行するためのボタンである。ボタン６０２は、実行用ワークフロー定義ファイル４４６に定義されたワークフローを実行するためのボタンである。ユーザによって各ボタンが押下されることにより、ワークフロー処理部４３０により各ワークフローが実行される。このＵＩ（トップメニューとも呼ぶ）は、たとえばＭＦＰ１０１の電源投入された後などに表示される初期画面であってもよい。
【００４０】
図７は、本発明の実施形態における、ワークフロー定義ファイルの第１の具体的な記述例である。本例では、ワークフロー定義ファイル４４３を例に説明する。本実施形態ではワークフロー定義ファイルはＸＭＬ形式のファイルとして表現されているが、ＸＭＬ形式に限定されるものではなく、他の形式のファイルであってもよい。
【００４１】
Ｗｏｒｋｆｌｏｗタグ７０１は、以下の記述がワークフローの定義であることを示している。ＦＰタグ７０２は、Ｗｏｒｋｆｌｏｗタグ７０１の子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。ＦＰタグ７０２のｎｏ属性は、ワークフローにおける機能プロバイダの実行順を定義しており、「ｎｏ＝"１"」は最初に実行する機能プロバイダであることを示している。ＦＰタグ７０２のｔｙｐｅ属性は、実行する機能プロバイダの機能プロバイダタイプを定義しており、「ｔｙｐｅ＝"ＳＣＡＮ"」はスキャンプロバイダであることを示している。
【００４２】
Ｃｏｎｄｉｔｉｏｎタグ７０３は、ＦＰタグ７０２の子要素で、ＦＰタグ７０２に記述した機能プロバイダの検索条件を定義する。ここでは機能プロバイダとしてスキャンプロバイダの検索条件を定義するためのものである。
【００４３】
Ａｃｔｉｏｎタグ７０４は、ＦＰタグ７０２の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Ａｃｔｉｏｎタグのｎｏ属性とｍｅｔｈｏｄ属性は、それぞれＦＰタグで定義された機能プロバイダの中での実行順と呼び出すインターフェースとを定義している。Ａｃｔｉｏｎタグ７０４は、スキャンプロバイダの実行において「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」を１番目に呼び出す旨を定義している。Ａｃｔｉｏｎタグ７０５は、ＦＰタグ７０２の子要素であり、スキャンプロバイダの実行において「ｄｏＳｃａｎ」を３番目に呼び出す旨を定義している。呼び出す際の設定であるＰａｒａｍｅｔｅｒタグや、「ｄｏＳｃａｎ」を実行した結果の出力を定義するＯｕｔｐｕｔタグを含む。Ｐａｒａｍｅｔｅｒタグには、たとえば機能プロバイダ情報テーブル４２３に定義された「設定可能な値」のうちから選択された設定値が記述される。Ｏｕｔｐｕｔタグには出力のタイプおよび名称（識別情報）などが記述される。この例ではタイプはドキュメントであり、名称はｆｏｏである。
【００４４】
ＦＰ７０６タグは、ｎｏ属性とｔｙｐｅ属性で、２番目に実行する機能プロバイダがＯＣＲプロバイダであることを定義している。子要素はＦＰタグ７０２と同様の構成である。ＦＰ７０６タグの子要素であるＡｃｔｉｏｎタグは、ＯＣＲプロバイダの実行において「ｄｏＯＣＲ」を４番目に呼び出す旨を定義している。Ｉｎｐｕｔタグには、ＯＣＲプロバイダによる文字認識の対象となる入力のタイプがドキュメントであり、名称がｆｏｏであることが記述されている。Ｏｕｔｐｕｔタグには、ＯＣＲプロバイダの出力のタイプはストリング即ち文字列であり、名称はｂａｒであることが記述されている。
【００４５】
ＦＰ７０７タグは、ｎｏ属性とｉｄ属性で、３番目に実行する機能プロバイダがＥ−ｍａｉｌ送信プロバイダであることを定義している。ＦＰタグは機能プロバイダを、ＦＰタグ７０２、７０６のようにｔｙｐｅ属性を使って機能タイプで指定することもできるし、ＦＰタグ７０７のようにｉｄ属性を使って一意に指定することもできる。ＦＰ７０７タグの子要素である最初のＡｃｔｉｏｎタグは、Ｅ−ｍａｉｌ送信プロバイダの実行において設定インターフェースである「ｓｈｏｗＳｅｔｔｉｎｇ」を２番目に呼び出す旨を定義している。二番目のＡｃｔｉｏｎタグは、Ｅ−ｍａｉｌ送信プロバイダの実行において実行インターフェースである「ｄｏＳｅｎｄ」を５番目に呼び出す旨を定義している。そのＩｎｐｕｔタグには、Ｅ−ｍａｉｌ送信プロバイダによるＥ−ｍａｉｌ送信の対象となる入力として、タイプがドキュメントであり、名称がｆｏｏである入力と、タイプがストリングであり、名称がｂａｒである入力とが記述されている。
【００４６】
図７に定義されたワークフローでは、まずスキャンプロバイダの設定ＵＩ、Ｅ−ｍａｉｌ送信プロバイダの設定ＵＩ、スキャンプロバイダの実行、ＯＣＲプロバイダの実行、Ｅ−ｍａｉｌ送信プロバイダの実行、の順に処理が進む。
【００４７】
図８は、本発明の実施形態におけるワークフロー定義ファイルの具体的な記述例の第２の例である。Ｗｏｒｋｆｌｏｗタグ８０１は、以下の記述がワークフローの定義であることを示している。ＦＰ８０２タグは、ｎｏ属性とｉｄ属性で、１番目に実行する機能プロバイダが簡易スキャンプロバイダであることを定義している。以降のその他タグの説明は図７と同様であるため省略する。
【００４８】
＜ワークフロー編集条件テーブル＞
図９は本発明の実施形態における、ワークフロー編集条件テーブル４４１の例である。本実施形態では、ワークフロー編集条件テーブル９１０、ワークフロー編集条件テーブル９２０と二つのケースについての例をあげる。条件番号９１１は条件を一意に識別するための条件番号である。条件９１２は編集条件である。編集種別９１３は、追加、削除、変更など、編集の種別を示す。処理９１４は、編集種別が追加の場合には追加すべき処理を、変更の場合には変更後の処理を示す。設定値９１５は編集処理に関係する設定値を示す。編集所条件９１２は、編集種別が追加の場合には、追加すべき対象を挿入する位置を示し、編集種別が変更の場合には、変更すべき編集対象を示し、編集種別が削除の場合には、削除すべき編集対象を示す。
【００４９】
ワークフロー編集条件テーブル９１０の例では、条件が１つ登録されている。条件番号１は、条件がＰｒｅ＿ｄｏＳＥＮＤであり、送信処理の前を意味する。さらに、編集種別がＡＤＤであるため、編集内容が追加処理であることを示す。さらに、編集される処理９１４がＳＥＮＤ＿ＳＭＢであることから、送信処理の前に、ＳＭＢ送信の処理を追加することを意味している。また、設定値９１５の設定内容には、ＳＭＢ送信に関する具体的な設定項目が含まれる。ワークフロー編集条件テーブル９２０の例では、条件が２つ登録されている。条件番号１は条件がＳＥＮＤであり、編集種別がＣＨＡＮＧＥすなわち変更、さらに変更となる処理がＳＥＮＤ＿ＳＭＢであることから、送信処理をＳＭＢ送信の処理に変更する、ことが示される。同様に、条件番号２に対しては、条件がＯＣＲで、編集種別がＤＥＬＥＴＥとなっているため、ＯＣＲの処理を削除することを意味している。尚、条件は送信処理の前の他に、スキャン実行前、ＯＣＲ処理前、またそれらの処理後など、様々である。さらに、変更となる処理も、各拡張ソフト、及びその処理が指定可能である。
【００５０】
図１０は、本発明の実施形態におけるワークフロー編集条件テーブル４４１の内容を、ユーザが変更するためのＵＩの例である。すなわちこのＵＩがワークフロー編集条件をユーザに設定させる条件設定のためのユーザインタフェース（ＵＩ）となる。本ＵＩは、ＰＣ１０２に搭載されるＷｅｂブラウザー等のプログラムから、ＬＡＮ１０１を介してＭＦＰ１０１に接続されて、ＭＦＰ１０１の持つＷｅｂサーバにより提供されるデータに基づいて表示される。図９に示す条件テーブルの各項目に対して設定可能であり、ユーザは本ＵＩを介して条件テーブルの各種情報を入力、または選択することによってＭＦＰ１０１の有するワークフロー編集条件テーブル４１１が更新される。
【００５１】
＜ワークフロー定義ファイルのインストール処理＞
図１１は、本発明の第一の実施形態における、ＷＦ定義ファイル４４３のインストールの処理フローを説明するフローチャートである。ユーザがＰＣ１０２を介して、ＬＡＮ１１０に接続されたＭＦＰ１０１に対して、フロー定義ファイルをインストールする。本フローは、ＭＦＰ１０１がワークフロー定義ファイルを受信した場合に開始される。したがってその実行主体はＣＰＵ２１１である。尚、インストールの処理についてはワークフロー管理部４４０によって制御されるが、インストールにおけるＵＩ，また手順については説明を省略する。
【００５２】
Ｓ１１０２は、ワークフロー定義ファイルの受信ステップである。ワークフロー管理部４４０は、ＬＡＮ１１０を介して、ＰＣ１０２からワークフロー定義ファイルを、ネットワークＩ／Ｆ２１８を経由して受信する。
【００５３】
Ｓ１１０３は、ワークフロー定義ファイルを記憶するステップである。ワークフロー管理部４４０は、Ｓ１１０２で受信したワークフロー定義ファイルを、ＨＤＤ２１４に記憶する。
【００５４】
Ｓ１１０４は、実行用ワークフロー定義ファイルの生成ステップである。ワークフロー管理部４４０は、Ｓ１１０３にて記憶されたワークフロー定義に対して、ワークフロー編集条件テーブル４４１に設定された条件に従い、ワークフローの編集を実施し、実行用ワークフロー定義ファイルを生成し、Ｓ１１０５にて本フローを終了する。ワークフロー定義ファイルに対応するワークフロー編集条件テーブル４４１がない場合には、実行用ワークフロー定義ファイルは元のワークフロー定義ファイルと同じものであってよい。
【００５５】
図１２は、本発明の第一の実施形態における、ワークフロー編集条件テーブル４４１の条件が変更された場合の、ワークフロー管理部４４０における処理フローを説明するフローチャートである。本フローは、図１０に示す条件設定のＵＩより、条件が変更された場合にＳ１２０１より開始される。Ｓ１２０２は、条件の更新ステップである。ワークフロー管理部４４０は、設定ＵＩ４４２を介してユーザより受け付けた条件情報を、ワークフロー編集条件テーブル４４１に記憶し、ワークフロー編集条件テーブル４４１を更新する。
【００５６】
Ｓ１２０３は、実行用ワークフロー定義ファイルの検索ステップである。ワークフロー管理部４４０によって管理されている実行用ワークフロー定義ファイルを検索し、Ｓ１２０４の実行用ワークフロー定義ファイルの更新ステップに遷移する。Ｓ１２０４は、実行用ワークフロー定義ファイルの更新ステップである。Ｓ１２０２にて更新された条件に従い、ワークフロー管理部４４０によって管理されている、実行用ワークフロー定義ファイルを解析し、更新された条件に従って編集処理が実施される。Ｓ１２０５は、未処理のワークフロー定義ファイルが存在するか否かを判断する判断ステップである。ワークフロー管理部４４０は、更新された条件に従って編集処理が実施されていない実行用ワークフロー定義ファイルが存在するか否かを判断する。存在する場合はＳ１２０３の実行用ワークフロー定義ファイルの読み込みステップに遷移する。全ての実行用ワークフロー定義ファイルが更新された条件に従って編集されたと判断された場合は、Ｓ１２０６に遷移し、本フローを終了する。尚、本実施形態では、実行用のワークフロー定義ファイル４４５、及び４４６の２つの実行用ワークフロー定義ファイルが存在するため、２つの実行用ワークフロー定義ファイルに対して、更新された条件に従って編集が行われる。２つとも編集が完了した場合は、Ｓ１２０６に遷移する。
【００５７】
＜実行用ワークフロー定義ファイルの更新処理＞
図１３は、本発明の第一の実施形態における、ワークフロー管理部４４０における、ワークフロー定義ファイルの編集処理の処理フローを説明するフローチャートである。本フローは、Ｓ１１０４の実行用ワークフロー定義ファイルの生成ステップ、及びＳ１２０４の実行用ワークフロー定義ファイルの更新ステップ内の処理フローである。本例では、実行用ワークフロー定義ファイル４４３の生成を説明する。また、ワークフロー編集条件テーブル４４１には図９のワークフロー編集条件テーブル９１０に示す条件が設定されているものとする。Ｓ１３０１は、開始ステップであり、Ｓ１１０４、及びＳ１２０４ステップの開始に該当する。
【００５８】
Ｓ１３０２は、ワークフロー定義ファイルの読み込みステップである。ワークフロー管理部４４０は、ＨＤＤ２１４に記憶されているワークフロー定義ファイル４４３をＲＡＭ２１３に読み込む。Ｓ１２０４によって開始された場合は、ワークフロー定義ファイル４４３に代えて実行用ワークフロー定義ファイル４４５が読み込まれるが、以降の処理はＳ１１０４の場合とＳ１２０４の場合と同じであるため、以降はワークフロー定義ファイル４４３が読み込まれた場合の説明とする。Ｓ１３０３は、ワークフロー定義ファイルで定義された処理の解析ステップである。具体的には、図７に示すワークフロー定義ファイル４４３の、ＦＰタグ及びその子要素であるＡｃｔｉｏｎタグを抽出する。抽出したタグは元のワークフロー定義ファイルに記述されたタグと紐づけておくことが望ましい。あるいは抽出することなく、それらのタグの位置を特定するだけでもよい。Ｓ１３０４は、条件の照合ステップである。ワークフロー管理部４４０は、ワークフロー条件テーブル９１０を参照し、そこに記述された条件に順に着目する。そして着目した条件に該当する処理（すなわちＦＰタグ）を、処理対象のワークフロー定義ファイルから特定する。具体的にはワークフロー管理部４４０は、ワークフロー条件テーブル９１０の条件番号１の情報に着目する。条件番号１の条件は、Ｐｒｅ＿ｄｏＳＥＮＤであり、ｄｏＳＥＮＤの前、すなわち子要素であるＡｃｔｉｏｎタグにメソッドとしてｄｏＳＥＮＤが記述されたＴｙｐeがＳＥＮＤのＦＰタグの前、が条件である。そのため、該当するタグ、すなわちＦＰタグのＴｙｐeがＳＥＮＤであり、かつその子要素として持つＡｃｔｉｏｎタグがｄｏＳＥＮＤであるような項目が、Ｓ１３０３にて解析されたワークフロー定義ファイルに存在するか否かを照合する。条件としては、このほかに例えば、処理の後ろであることを示す「Ｐｏｓｔ＿」などがある。
【００５９】
Ｓ１３０５は、着目した条件に一致する項目があるか否かの判断ステップである。すなわち、ステップＳ１３０３で抽出あるいは特定したＦＰタグに、条件に該当するものがあるか判定する。着目した条件に一致する処理が存在しない場合は、Ｓ１３１０の、未処理の条件の有無を判断するステップに遷移する。一方、Ｓ１３０４にて照合された結果該当の処理（すなわち該当するＦＰタグ）がワークフロー定義ファイルにある場合は、その条件に対応する編集種別の内容によって以降の処理を振り分ける。該当する条件の編集種別はＡＤＤ（追加）、ＤＥＬＥＴＥ（削除）、ＣＨＡＮＧＥ（変更）のいずれかが定義され、ＡＤＤの場合はワークフロー定義ファイルに、処理に対応するワークフロー定義を追加するステップＳ１３０６に遷移する。ＣＨＡＮＧＥの場合は、ワークフロー定義ファイルに含まれた、処理に対応するワークフロー定義を変更するステップＳ１３０７に遷移する。ＤＥＬＥＴＥの場合はワークフロー定義ファイルから処理に対応するワークフロー定義を削除するステップＳ１３０８に遷移する。なおここでいう「ワークフロー定義」とは、図５に例示した機能プロバイダ情報テーブル４２３の最右欄に定置された、処理（或いは機能）ごとにワークフロー内での記述を定義した「ＷＦ（ワークフロー）定義」を指す。図５（ａ）ではＳＥＮＤ＿ＳＭＢのみについて定義されているが、他の機能についてもそれぞれ定義されている。本例では、条件１の変更種別がＡＤＤであるため、Ｓ１３０６に遷移する。
【００６０】
Ｓ１３０６は、ワークフロー定義ファイルに、条件に定義された処理に対応するワークフロー定義を追加するステップである。本ステップでは、着目している条件９１２に関連付けられた処理９１４を参照し、処理に該当するワークフロー定義情報を、ワークフロー定義ファイル４４３に追加する。具体的には、たとえば、機能プロバイダ情報テーブル４２３を参照し、着目した条件９１２に関連付けられた処理９１４に相当する機能プロバイダＩＤを検索する。そしてヒットした機能プロバイダＩＤに関連付けられたワークフロー定義（ＷＦ定義）をワークフロー定義ファイルから読み、それを条件に従った個所に追加する。図９（ａ）の例では、処理がＳＥＮＤ＿ＳＭＢであり、機能プロバイダ情報テーブル４２３のＳＥＮＤ＿ＳＭＢに関連付けられたワークフロー定義情報を、既存のＳＥＮＤの前に追加する。既に３つの処理が存在するため、追加された定義情報のＦＰタグのｎｏには４を設定する。さらに、条件に関連付けられた設定を追加した定義情報に反映させる。ＳＥＮＤ＿ＳＭＢの処理には、本例では、Ａｃｔｉｏｎとして、ｓｈｏｗＳｅｔｔｉｎｇＵＩ、及びｄｏＳＥＮＤが存在するが、ワークフロー編集条件テーブル９１０の設定値欄９１５にｓｈｏｗＳｅｔｔｉｎｇＵＩ＝ｎｏが指定されている。そのため、追加するワークフロー定義情報にはｓｈｏｗＳｅｔｔｉｎｇＵＩを含まない。そこでメソッドとしてｓｈｏｗＳｅｔｔｉｎｇＵＩを指定したＡｃｔｉｏｎタグは、追加するワークフロー定義には含めない。また設定値９１５に定義されたＤｅｓｔｉｎａｔｉｏに従って、ＳＥＮＤ＿ＳＭＢによるファイルの送信先が設定される。同様に、Ｓ１３０７、及びＳ１３０８の処理においても、それぞれの条件に関連付けられた処理、及び設定値の内容と、機能プロバイダ情報テーブル４２３に関連付けられた情報に従ってワークフロー定義の変更、削除を実施する。Ｓ１３０７においては、たとえば図９（ｂ）の第二の条件では、機能ＯＣＲが削除される。削除の単位はＦＰタグである。またたとえば図９（ｂ）の先頭の条件では、機能ＳＥＮＤを機能ＳＥＮＤ＿ＳＭＢに変更される。
【００６１】
Ｓ１３０９は、ワークフローの整合を処理するステップであり、追加、変更、削除したワークフロー定義情報が、ワークフローとして成立するよう、整合性を編集する。各処理のＡｃｔｉｏｎタグには、処理の実行順を示すｎｏ属性が定義されており、追加、変更、削除した処理に応じて、以降に実施される処理のｎｏ属性を変更する。例えば、本例では、ＳＥＮＤ＿ＳＭＢのｄｏＳＥＮＤを、ＳＥＮＤ＿Ｅ−ＭａｉｌのｄｏＳＥＮＤの前に実行する追加処理であるため、５番をＳＥＮＤ＿ＳＭＢのｄｏＳＥＮＤのＡｃｔｉｏｎタグのｎｏ属性に指定する。さらに、ＳＥＮＤ＿Ｅ−ｍａｉｌのＡｃｔｉｏｎタグの、ｄｏＳＥＮＤに該当するｎｏ属性を５から６に変更する。以降に実施される処理についても、Ａｃｔｉｏｎタグのｎｏ属性を修正し、ワークフローの整合を図る。
【００６２】
Ｓ１３１０は、未処理の条件が存在するか否かの判断ステップであり、ワークフロー編集条件テーブル４４１を参照し、未処理の条件が存在する場合は、次の条件に着目し、Ｓ１３０４の条件の照合ステップに遷移する。全ての条件に対しての照合が完了した場合は、Ｓ１３１１の実行用ワークフロー定義ファイルの記憶ステップに遷移する。
【００６３】
Ｓ１３１１は、実行用ワークフロー定義ファイルの記憶ステップであり、編集されたワークフロー定義ファイルを、ＨＤＤ２１４に記憶する。尚、本フローがＳ１２０４によって開始された場合は、既に存在する実行用ワークフロー定義ファイルを上書きする。以上のように、ワークフロー定義ファイルを条件に従って編集し、本フローを終了する。
【００６４】
図１４は、本発明の実施形態における、実行用ワークフロー定義ファイルの例であり、ワークフロー定義ファイル４４３を、ワークフロー条件テーブル９１０に設定された条件に従って編集しれた実行用ワークフロー定義ファイル４４５の例である。ワークフロー編集条件テーブル９１０の情報に従って、図７に示すワークフロー定義ファイルが編集され、ワークフロー編集条件テーブル９１０に従ってＳＥＮＤ＿ＳＭＢの処理が追加された状態となっている。ＳＥＮＤ＿ＳＭＢ処理は、ＦＰタグ１４０１以下の部分である。条件から、ＳＥＮＤ＿ＳＭＢ機能は、既存のＳＥＮＤすなわちＳＥＮＤ＿Ｅ−ｍａｉｌの前、すなわちＯＣＲとＳＥＮＤ＿Ｅ−ｍａｉｌとの間に挿入される。そこで、ＳＥＮＤ＿ＳＭＢのＡｃｔｉｏｎタグのｎｏ属性はｎｏ＝"５"とされ、ＳＥＮＤ＿Ｅ−ｍａｉｌのＡｃｔｉｏｎタグのｎｏ属性は、がｎｏ＝"６"に繰り下げられる。
【００６５】
＜ワークフローの実行シーケンス＞
図１５は、本発明の第一の実施形態における、ワークフローの実行の流れの一例を示したシーケンス図である。ワークフロー定義ファイル４４５には図１４で説明した内容が記述されているものとして、以下のステップの説明を行う。
ステップＳ１５０１において、ユーザからのワークフロー実行指示を、ワークフロー処理部４３０が受け取る。ステップＳ１５０２において、実行指示に対応するワークフロー定義ファイル４４５を読み込む。
【００６６】
ステップＳ１５０３において、ワークフロー処理部４３０は、機能プロバイダ管理部４２０に対して、ワークフロー定義ファイル４４５に記載されている機能プロバイダの検索を指示する。ワークフロー定義ファイル４４５には、「機能タイプがスキャンの機能プロバイダ」「機能タイプがＯＣＲの機能プロバイダ」そして「機能プロバイダＩＤがＳＥＮＤ＿Ｅ−ｍａｉｌ、及びＳＥＮＤ＿ＳＭＢの機能プロバイダ」が記載されているため、その４つの検索条件を指定して指示する。ステップＳ１５０４において、機能プロバイダ管理部４２０は、機能プロバイダ情報テーブル４２３をもとに検索条件に一致する機能プロバイダを特定する。検索条件に一致するスキャンプロバイダが複数存在した場合は、最も優先順位の高いスキャンプロバイダを検索結果とする。本例では、標準スキャンプロバイダ４１１、組み込みＯＣＲプロバイダ４１３そしてＳＭＢ送信プロバイダ４１５、Ｅ−ｍａｉｌ送信プロバイダ４１６が特定されるものとする。ステップＳ１５０５において、機能プロバイダ管理部４２０は、機能プロバイダの検索結果をワークフロー処理部４３０に通知する。
【００６７】
ステップＳ１５０６において、ワークフロー処理部４３０は、ワークフロー定義ファイル４４５に定義されている呼び出し順（Ａｃｔｉｏｎタグのｎｏ属性）に従って、標準スキャンプロバイダ４１１の設定インターフェースを呼び出す。ステップＳ１５０７において、ワークフロー処理部４３０から設定インターフェースの呼び出しを受けた標準スキャンプロバイダ４１１は、指示に従ってスキャン設定画面を表示する。ステップＳ１５０８において、標準スキャンプロバイダ４１１は、スキャン設定の結果をワークフロー処理部４３０に通知する。
【００６８】
ステップＳ１５０９において、ワークフロー処理部４３０は、ワークフロー定義ファイル４４０に定義されている呼び出し順に従って、Ｅ−ｍａｉｌ送信プロバイダ４１６の設定インターフェースを呼び出す。ステップＳ１５１０において、ワークフロー処理部４３０から設定インターフェースの呼び出しを受けたＥ−ｍａｉｌ送信プロバイダ４１６は、指示に従って送信設定画面を表示する。ステップＳ１５１１において、Ｅ−ｍａｉｌ送信プロバイダ４１６は、送信設定の結果をワークフロー処理部４３０に通知する。
【００６９】
ステップＳ１５１２において、ワークフロー処理部４３０は、ワークフロー定義ファイル４４５に定義されている呼び出し順に従って、標準スキャンプロバイダ４１１の実行インターフェースを呼び出す。ステップＳ１５１３において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けた標準スキャンプロバイダ４１１は、指示に従ってスキャン処理を実行する。ステップＳ１５１４において、標準スキャンプロバイダ４１１は、スキャン処理の結果をワークフロー処理部４３０に通知する。
【００７０】
ステップＳ１５１５において、ワークフロー処理部４３０は、ワークフロー定義ファイル４４０に定義されている呼び出し順に従って、組み込みＯＣＲプロバイダ４１３の実行インターフェースを呼び出す。ステップＳ１５１６において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けた組み込みＯＣＲプロバイダ４１３は、指示に従ってＯＣＲ処理を実行する。ステップＳ１５１７において、組み込みＯＣＲプロバイダ４１３は、ＯＣＲ処理の結果をワークフロー処理部４３０に通知する。
【００７１】
ステップＳ１５１８において、ワークフロー処理部４３０は、ワークフロー定義ファイル４４５に定義されている呼び出し順に従って、ＳＭＢ送信プロバイダ４１５の実行インターフェースを呼び出す。ステップＳ１５１９において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けたＳＭＢ送信プロバイダ４１５は、指示に従って送信処理を実行する。ステップＳ１５２０において、ＳＭＢ送信プロバイダ４１５は、送信処理の結果をワークフロー処理部４３０に通知する。
【００７２】
ステップＳ１５２１において、ワークフロー処理部４３０は、ワークフロー定義ファイル４４５に定義されている呼び出し順に従って、Ｅ−ｍａｉｌ送信プロバイダ４１６の実行インターフェースを呼び出す。ステップＳ１５２２において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けたＥ−ｍａｉｌ送信プロバイダ４１６は、指示に従って送信処理を実行する。ステップＳ１５２３において、ＳＭＢ送信プロバイダ４１５は、送信処理の結果をワークフロー処理部４３０に通知する。
【００７３】
以上のように、前述の実施形態において説明した手順により、複数の機能プロバイダを組み合わせて一連の処理として実行する。以上のように、本実施形態に係る発明を実施した画像形成装置上において、ワークフロー定義ファイルのインストール処理、及びユーザからのワークフロー編集条件を受け付け、該条件に従いワークフロー定義ファイルを編集し、実行することが可能となる。このため、ＭＦＰ１０１が複数のワークフロー定義ファイルを有していたとしても、条件に従って全てのワークフロー定義ファイルを対象として編集することができる。この場合、ユーザの負担はワークフロー変種条件ファイルの設定のみであり、負担の大幅な軽減が可能となり、編集誤りを低減させ、ワークフローのメンテナンスの生産性を向上させることができる。
【００７４】
［第二実施形態］
以下、本発明を実施するための第二の実施形態について図面を用いて説明する。第二の実施形態においては、図１から図３、及び図５から図１０、また図１４の内容は第一の実施形態と同じである。第１実施形態と共通の構成及び機能に関しては説明を省略する。
【００７５】
図１６は、本発明の第二の実施形態における、ＭＦＰのソフトウェア構成を示すブロック図である。ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラム（ソフトウェア）を、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、後述の処理が実行される。図１６と第一実施形態の図４との相違点は、ワークフロー処理部４３０の実行する処理の内容と、ワークフロー管理部４４０が実行する処理の内容と、ワークフロー管理部４４０が実行用ワークフロー定義ファイルを持たないことと、この三点にある。他は図４と同様であるのでそれらについての説明は省略する。
【００７６】
詳しくは後述するが、ワークフロー処理部４３０は、後述するワークフロー定義ファイル４４５、４４６と、ワークフロー編集条件テーブル４４１に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。
【００７７】
ワークフロー管理部４４０は、ワークフロー定義ファイルの管理を実施する。具体的には、ワークフロー定義ファイルのインストール、アンインストール、またはワークフローの編集条件を、設定ＵＩ４４２を介してユーザから受け付け、管理する。本実施形態では、第一の実施形態と異なり、ワークフロー管理部４４０は、実行用ワークフロー定義ファイルを作成したり、更新したりすることはない、
＜ワークフロー定義ファイルのインストール＞
図１７は、本発明の第二の実施形態におけるワークフロー定義ファイル４４３のインストールの処理フローを説明するフローチャートである。ユーザがＰＣ１０２を介して、ＬＡＮ１１０に接続されたＭＦＰ１０１に対して、ワークフロー定義ファイルをインストールする。本フローは、ＭＦＰ１０１がワークフロー定義ファイルを受信した場合に開始される。尚、インストールの処理についてはワークフロー管理部４４０によって制御されるが、インストールにおけるＵＩ，また手順については説明を省略する。Ｓ１７０２は、ワークフロー定義ファイルの受信ステップである。ワークフロー管理部４４０は、ＬＡＮ１１０を介して、ＰＣ１０２からワークフロー定義ファイルを、ネットワークＩ／Ｆ２１８を経由して受信する。Ｓ１７０３は、ワークフロー定義ファイルを記憶するステップである。ワークフロー管理部４４０は、Ｓ１７０２で受信したワークフロー定義ファイルを、ＨＤＤ２１４に記憶し、Ｓ１７０３に遷移して本フローを終了する。
【００７８】
＜ワークフロー編集条件テーブルの編集＞
図１８は、本発明の第二の実施形態における、ワークフロー編集条件テーブル４４０の条件が変更された場合の、ワークフロー管理部４４０における処理フローを説明するフローチャートである。本フローは、図１０に示す条件設定のＵＩより、条件が変更された場合にＳ１８０１より開始される。Ｓ１８０２は、条件の更新ステップである。ワークフロー管理部４４０は、設定ＵＩ４４２を介してユーザより受け付けた条件情報を、ワークフロー編集条件テーブル４４１に記憶し、ワークフロー編集条件テーブル４４１を更新し、Ｓ１８０３に遷移して本フローを終了する。
【００７９】
＜ワークフロー定義ファイルの編集＞
図１９は、本発明の第二の実施形態のワークフロー管理部４４０における、ワークフロー定義ファイルの編集処理の処理フローを説明するフローチャートである。本例では、第一の実施形態とは異なり、実行用ワークフロー定義ファイルを生成しない。ワークフローを実行する際に、ワークフロー編集条件テーブルを動的に反映したワークフロー定義ファイルに従ってワークフローは実行される。また、ワークフロー編集条件テーブル４４１には図９のワークフロー編集条件テーブル９１０に示す条件が設定されているものとする。本例においては、ワークフロー定義ファイル９１０が読み込まれた場合の処理を説明する。
【００８０】
Ｓ１９０１は、開始ステップであり、ワークフロー処理部４３０が、ユーザからのワークフロー実行指示を受け、ワークフロー定義ファイルがＲＡＭ２１３に読み込まれた場合に開始される。Ｓ１９０２は、処理の解析ステップである。ワークフロー定義ファイル４４３を解析し、処理の解析を行う。具体的には、図７に示すワークフロー定義ファイルの、ＦＰタグ、及びＡｃｔｉｏｎタグを抽出あるいは特定する。Ｓ１９０３は、条件の照合ステップである。ワークフロー管理部４４０は、ワークフロー条件テーブル４４１を参照し、条件の情報を抽出あるいは特定する。本例では、まず条件番号１の情報を抽出あるいは特定する。条件番号１の条件は、Ｐｒｅ＿ｄｏＳＥＮＤであるため、ＦＰタグのＴｙｐeがＳＥＮＤであり、かつＡｃｔｉｏｎタグがｄｏＳＥＮＤの項目が、Ｓ１９０２にて解析された処理に存在するか否かを照合する。Ｓ１９０４は、条件に一致する処理があるか否かの判断ステップである。Ｓ１９０３にて、照合された結果該当の処理がある場合は、その変更種別の内容によって以降の処理を振り分ける。該当する条件の変更種別はＡＤＤ、ＤＥＬＥＴＥ、ＣＨＡＮＧＥのいずれかが定義され、ＡＤＤの場合はＳ１９０５のワークフロー定義を追加するステップに遷移する。ＣＨＡＮＧＥの場合は、Ｓ１９０６のワークフロー定義を変更するステップに遷移し、ＤＥＬＥＴＥの場合はＳ１９０７のワークフロー定義を削除するステップに遷移する。本例では、条件１の変更種別がＡＤＤであるため、Ｓ１９０５に遷移する。また、条件に一致する処理が存在しない場合は、Ｓ１９０９の未処理の条件を判断するステップに遷移する。Ｓ１９０５は、ワークフロー定義ファイルに、条件に定義された処理を追加するステップである。本ステップでは、条件に関連付けられた、処理を参照し、処理に該当する定義情報を、ワークフロー定義ファイルに追加する。具体的には、処理に該当する機能プロバイダ情報テーブル４２３を参照し、各処理に該当するワークフロー定義を、条件に従った個所に追加する。本例では、処理がＳＥＮＤ＿ＳＭＢであり、機能プロバイダ情報テーブル４２３のＳＥＮＤ＿ＳＭＢに関連付けられたワークフロー定義情報を追加する。既に３つの処理が存在するため、追加された定義情報のｎｏタグは４を設定する。さらに、条件に関連付けられた設定を追加した定義情報に反映させる。ＳＥＮＤ＿ＳＭＢの処理には、本例では、Ａｃｔｉｏｎとして、ｓｈｏｗＳｅｔｔｉｎｇＵＩ、及びｄｏＳＥＮＤが存在するが、条件にｓｈｏｗＳｅｔｔｉｎｇＵＩ＝ｎｏが指定されているため、追加する定義情報にｓｈｏｗＳｅｔｔｉｎｇＵＩを含まない。同様に、Ｓ１９０６、及びＳ１９０７の処理においても、それぞれの条件に関連付けられた処理、及び設定値の内容と、機能プロバイダ情報テーブル４２３に関連付けられた情報に従ってワークフロー定義の変更、削除を実施する。
【００８１】
Ｓ１９０８は、ワークフローの整合を処理するステップであり、追加、変更、削除したワークフロー定義情報が、ワークフローとして成立するよう、整合性を編集する。各処理のＡｃｔｉｏｎタグには、処理の実行順を示すｎｏ属性が定義されており、追加、変更、削除した処理に応じて、以降に実施される処理のｎｏ属性を変更する。例えば、本例では、ＳＥＮＤ＿ＳＭＢのｄｏＳＥＮＤを、ＳＥＮＤ＿Ｅ−ＭａｉｌのｄｏＳＥＮＤの前に実行する追加処理であるため、５番をＳＥＮＤ＿ＳＭＢのｄｏＳＥＮＤのＡｃｔｉｏｎタグのｎｏ属性に指定する。さらに、ＳＥＮＤ＿Ｅ−ｍａｉｌのＡｃｔｉｏｎタグの、ｄｏＳＥＮＤに該当するｎｏ属性を５から６に変更する。以降に実施される処理についても、Ａｃｔｉｏｎタグのｎｏ属性を修正し、ワークフローの整合を図る。
【００８２】
Ｓ１９０９は、未処理の条件が存在するか否かの判断ステップであり、条件テーブル４４１を参照し、未処理の条件が存在する場合は、次の条件を参照し、Ｓ１９０３の条件の照合ステップに遷移する。全ての条件に対しての照合が完了した場合は、Ｓ１９１０の実行用ワークフロー定義ファイルの確定ステップに遷移する。
【００８３】
Ｓ１９１０は、実行用ワークフロー定義ファイルの確定ステップであり、編集されたワークフロー定義情報を、実行用ワークフロー情報として確定し、Ｓ１９１１に遷移し本フローを終了する。
【００８４】
尚、本フローによって確定されたワークフロー定義情報は、図１４に示す実行用ワークフロー定義ファイルの内容と同じであり、ＲＡＭ２１３に展開されているものとする。
【００８５】
＜ワークフローの実行シーケンス＞
図２０は、本発明の第二の実施形態におけるＭＦＰ１０１上のワークフローの実行の流れの一例を示したシーケンス図である。ワークフロー定義ファイル４４５には図１４で説明した内容が記述されているものとして、以下のステップの説明を行う。
【００８６】
ステップＳ２００１において、ユーザからのワークフロー実行指示を、ワークフロー処理部４３０が受け取る。ステップＳ２００２において、実行指示に対応するワークフロー定義ファイル４４５を読み込む。ステップＳ２００３において、Ｓ２００２にて読み込んだワークフロー定義ファイルの情報に対して、図１９に示した処理を実行し、実行用のワークフロー情報を生成する。
【００８７】
ステップＳ２００４において、ワークフロー処理部４３０は、機能プロバイダ管理部４２０に対して、Ｓ２００３にて生成された実行用ワークフロー情報に記載されている機能プロバイダの検索を指示する。Ｓ２００３にて生成された実行用ワークフロー情報には、「機能タイプがスキャンの機能プロバイダ」「機能タイプがＯＣＲの機能プロバイダ」そして「機能プロバイダＩＤがＳＥＮＤ＿Ｅ−ｍａｉｌ、及びＳＥＮＤ＿ＳＭＢの機能プロバイダ」が存在するため、その４つの検索条件を指定して指示する。ステップＳ２００５において、機能プロバイダ管理部４２０は、機能プロバイダ情報テーブル４２３をもとに検索条件に一致する機能プロバイダを抽出する。検索条件に一致するスキャンプロバイダが複数存在した場合は、最も優先順位の高いスキャンプロバイダを検索結果とする。本例では、標準スキャンプロバイダ４１１、組み込みＯＣＲプロバイダ４１３そしてＳＭＢ送信プロバイダ４１５、Ｅ−ｍａｉｌ送信プロバイダ４１６が抽出されるものとする。ステップＳ２００６において、機能プロバイダ管理部４２０は、機能プロバイダの検索結果をワークフロー処理部４３０に通知する。
【００８８】
ステップＳ２００７において、ワークフロー処理部４３０は、Ｓ２００３にて生成された実行用ワークフロー情報に定義されている呼び出し順（Ａｃｔｉｏｎタグのｎｏ属性）に従って、標準スキャンプロバイダ４１１の設定インターフェースを呼び出す。ステップＳ２００８において、ワークフロー処理部４３０から設定インターフェースの呼び出しを受けた標準スキャンプロバイダ４１１は、指示に従ってスキャン設定画面を表示する。ステップＳ２００９において、標準スキャンプロバイダ４１１は、スキャン設定の結果をワークフロー処理部４３０に通知する。
【００８９】
ステップＳ２０１０において、ワークフロー処理部４３０は、Ｓ２００３にて生成された実行用ワークフロー情報に定義されている呼び出し順に従って、Ｅ−ｍａｉｌ送信プロバイダ４１６の設定インターフェースを呼び出す。ステップＳ２０１１において、ワークフロー処理部４３０から設定インターフェースの呼び出しを受けたＥ−ｍａｉｌ送信プロバイダ４１６は、指示に従って送信設定画面を表示する。ステップＳ２０１２において、Ｅ−ｍａｉｌ送信プロバイダ４１６は、送信設定の結果をワークフロー処理部４３０に通知する。
【００９０】
ステップＳ２０１３において、ワークフロー処理部４３０は、Ｓ２００３にて生成された実行用ワークフロー情報に定義されている呼び出し順に従って、標準スキャンプロバイダ４１１の実行インターフェースを呼び出す。ステップＳ２０１４において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けた標準スキャンプロバイダ４１１は、指示に従ってスキャン処理を実行する。ステップＳ２０１５において、標準スキャンプロバイダ４１１は、スキャン処理の結果をワークフロー処理部４３０に通知する。
【００９１】
ステップＳ２０１６において、ワークフロー処理部４３０は、Ｓ２００３にて生成された実行用ワークフロー情報に定義されている呼び出し順に従って、組み込みＯＣＲプロバイダ４１３の実行インターフェースを呼び出す。ステップＳ２０１７において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けた組み込みＯＣＲプロバイダ４１３は、指示に従ってＯＣＲ処理を実行する。ステップＳ２０１８において、組み込みＯＣＲプロバイダ４１３は、ＯＣＲ処理の結果をワークフロー処理部４３０に通知する。
【００９２】
ステップＳ２０１９において、ワークフロー処理部４３０は、ワークフロー定義ファイル４４５に定義されている呼び出し順に従って、ＳＭＢ送信プロバイダ４１５の実行インターフェースを呼び出す。ステップＳ２０２０において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けたＳＭＢ送信プロバイダ４１５は、指示に従って送信処理を実行する。ステップＳ２０２１において、ＳＭＢ送信プロバイダ４１５は、送信処理の結果をワークフロー処理部４３０に通知する。
【００９３】
ステップＳ２０２２において、ワークフロー処理部４３０は、ワークフロー定義ファイル４４５に定義されている呼び出し順に従って、Ｅ−ｍａｉｌ送信プロバイダ４１６の実行インターフェースを呼び出す。ステップＳ２０２３において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けたＥ−ｍａｉｌ送信プロバイダ４１６は、指示に従って送信処理を実行する。ステップＳ２０２４において、ＳＭＢ送信プロバイダ４１５は、送信処理の結果をワークフロー処理部４３０に通知する。
【００９４】
以上のように、前述の実施形態において説明した手順により、複数の機能プロバイダを組み合わせて一連の処理として実行する。以上のように、本発明を実施した画像形成装置上において、ワークフロー定義ファイルのインストール処理、及びユーザからのワークフロー編集条件を受け付け、該条件に従いワークフロー定義ファイルを編集し、実行することが可能となる。本実施形態では実行用ワークフロー定義ファイルを保存しておかないために、たとえば実行されないワークフローのために、ワークフロー編集条件テーブルに従った編集を行う必要がない。本実施形態では、ワークフローを構成するものとして、ワークフロー処理部が、機能プロバイダを呼び出す構成で説明したが、拡張ソフトであるアプリがワークフロー処理部の役割を行い、他の拡張ソフトを呼び出す構成であってもよい。
【００９５】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９６】
１０１  ＭＦＰ、１０２  ＰＣ、１１０  ＬＡＮ、４３０  ワークフロー処理部、４４０ワークフロー管理部、４５０  Ｗｅｂブラウザ
【図１】
2018185685.tif 000003
【図２】
2018185685.tif 000004
【図３】
2018185685.tif 000005
【図４】
2018185685.tif 000006
【図５】
2018185685.tif 000007
【図６】
2018185685.tif 000008
【図７】
2018185685.tif 000009
【図８】
2018185685.tif 000010
【図９】
2018185685.tif 000011
【図１０】
2018185685.tif 000012
【図１１】
2018185685.tif 000013
【図１２】
2018185685.tif 000014
【図１３】
2018185685.tif 000015
【図１４】
2018185685.tif 000016
【図１５】
2018185685.tif 000017
【図１６】
2018185685.tif 000018
【図１７】
2018185685.tif 000019
【図１８】
2018185685.tif 000020
【図１９】
2018185685.tif 000021
【図２０】
2018185685.tif 000022