(57)【要約】【課題】待機が必要か否かを容易に判断可能なワークフローの定義ファイルを作成することを目的とする。【解決手段】設定画面を呼び出す設定インターフェースと処理を実行する実行インターフェースとを有する機能プロバイダ、及び処理を実行する実行インターフェースを有する機能プロバイダを複数組み合わせて一連のワークフローを作成するためのワークフローの作成画面を表示する表示手段と、作成画面を介して作成されたワークフローに応じて、実行インターフェースの呼び出し順と設定インターフェースの呼び出し順とを別々に定義し、第１の機能プロバイダの設定インターフェースを呼び出してから第２の機能プロバイダの設定インターフェースを呼び出すまでの待機を促すメッセージの表示情報を定義する定義ファイルを作成する作成手段と、を有する。【選択図】図１４
2018191062.tif 000002
【特許請求の範囲】
【請求項１】
設定画面を呼び出す設定インターフェースと処理を実行する実行インターフェースとを有する機能プロバイダ、及び処理を実行する実行インターフェースを有する機能プロバイダを複数組み合わせて一連のワークフローを作成するためのワークフローの作成画面を表示する表示手段と、
前記作成画面を介して作成された前記ワークフローに応じて、前記実行インターフェースの呼び出し順と前記設定インターフェースの呼び出し順とを別々に定義し、第１の機能プロバイダの前記設定インターフェースを呼び出してから第２の機能プロバイダの前記設定インターフェースを呼び出すまでの待機を促すメッセージの表示情報を定義する定義ファイルを作成する作成手段と、
を有する情報処理装置。
【請求項２】
前記表示手段は、複数の機能プロバイダを表示する第１の領域と、前記第１の領域から選択された複数の機能プロバイダの呼び出し順を表示する第２の領域と、前記第２の領域に表示される複数の機能プロバイダのうち選択された機能プロバイダの設定値を設定する第３の領域と、が含まれる前記作成画面を表示する請求項１記載の情報処理装置。
【請求項３】
前記表示手段は、前記第２の領域に置かれた前記第１の領域から選択された複数の機能プロバイダのそれぞれが前記設定インターフェースを有しているか否か、及び前記第３の領域において設定された前記設定インターフェースを有する機能プロバイダに関して設定画面を表示しない旨の設定がされているか否かに基づいて、前記第２の領域に前記機能プロバイダの呼び出し順とは別に設定画面の呼び出し順を表示する請求項２記載の情報処理装置。
【請求項４】
前記表示手段は、前記第２の領域に表示された第１の設定画面と第２の設定画面との間に待機を促すメッセージを含むメッセージ画面を表示する請求項３記載の情報処理装置。
【請求項５】
前記表示手段は、前記第２の領域に前記設定画面の呼び出し順のフローとは別に前記メッセージ画面の表示タイミングのフローを表示する請求項４記載の情報処理装置。
【請求項６】
前記表示手段は、前記第２の領域に置かれた前記第１の領域から選択された複数の機能プロバイダの処理に基づき待機が不要になったタイミングで前記第２の領域に待機が不要になった旨のメッセージを含むメッセージ画面を表示する請求項３又は４記載の情報処理装置。
【請求項７】
前記作成手段は、各機能プロバイダの実行インターフェースの呼び出しに依存関係がある場合、依存関係に応じて前記定義ファイルに実行インターフェースの呼び出し順を定義する前記定義ファイルを作成する請求項１乃至６何れか１項記載の情報処理装置。
【請求項８】
設定画面を呼び出す設定インターフェースと処理を実行する実行インターフェースとを有する機能プロバイダ、及び処理を実行する実行インターフェースを有する機能プロバイダを複数組み合わせて一連のワークフローを作成するためのワークフローの作成画面を表示する表示手段と、
前記作成画面を介して作成された前記ワークフローに応じて、前記実行インターフェースの呼び出し順と前記設定インターフェースの呼び出し順とを別々に定義し、第１の機能プロバイダの前記設定インターフェースを呼び出してから第２の機能プロバイダの前記設定インターフェースを呼び出すまでの待機を促すメッセージの表示情報を定義する定義ファイルを作成する作成手段と、
前記定義ファイルを読み込みワークフローの処理を実行する実行手段と、
を有するシステム。
【請求項９】
情報処理装置が実行する情報処理方法であって、
設定画面を呼び出す設定インターフェースと処理を実行する実行インターフェースとを有する機能プロバイダ、及び処理を実行する実行インターフェースを有する機能プロバイダを複数組み合わせて一連のワークフローを作成するためのワークフローの作成画面を表示する表示工程と、
前記作成画面を介して作成された前記ワークフローに応じて、前記実行インターフェースの呼び出し順と前記設定インターフェースの呼び出し順とを別々に定義し、第１の機能プロバイダの前記設定インターフェースを呼び出してから第２の機能プロバイダの前記設定インターフェースを呼び出すまでの待機を促すメッセージの表示情報を定義する定義ファイルを作成する作成工程と、
を含む情報処理方法。
【請求項１０】
システムが実行する情報処理方法であって、
設定画面を呼び出す設定インターフェースと処理を実行する実行インターフェースとを有する機能プロバイダ、及び処理を実行する実行インターフェースを有する機能プロバイダを複数組み合わせて一連のワークフローを作成するためのワークフローの作成画面を表示する表示工程と、
前記作成画面を介して作成された前記ワークフローに応じて、前記実行インターフェースの呼び出し順と前記設定インターフェースの呼び出し順とを別々に定義し、第１の機能プロバイダの前記設定インターフェースを呼び出してから第２の機能プロバイダの前記設定インターフェースを呼び出すまでの待機を促すメッセージの表示情報を定義する定義ファイルを作成する作成工程と、
前記定義ファイルを読み込みワークフローの処理を実行する実行工程と、
を含む情報処理方法。
【請求項１１】
コンピュータを、請求項１乃至７何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、システム、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、オフィスに設置される画像形成装置の機能を拡張できるシステムが普及している。拡張する機能（以下、拡張機能という）は、ソフトウェア（以下、拡張ソフトという）によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。特に、ある特定の目的のために作られた拡張ソフトは、アプリケーションソフトウェア（以下、アプリという）と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで目的の処理を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。
特許文献１には、入力、変換、出力に関する複数の処理を、ユーザが自由に組み合わせることにより一連の処理（以下、ワークフロー）を定義し、各処理に特有の課金規則に基づいて課金を行うことが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１３４８７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、ユーザがワークフローを選択すると、フロー定義受付部が、選択されたワークフローの各処理に必要な設定条件を受け付けてフロー定義情報を作成し、処理サーバに対してフロー定義情報を送信してワークフロー実行要求を行っている。即ち、特許文献１では、サーバに対してワークフローを実行要求する前に、ワークフローの各処理で必要となる全ての条件を予め設定している。
しかしながら、ワークフローの処理内容によっては、ワークフロー実行前に、全ての条件を予め設定することができない場合もある。例えば「スキャン」「ＯＣＲ」「送信」という３つの処理を組み合わせたワークフローの場合において、スキャン画像をＯＣＲすることにより得られたＯＣＲ結果をユーザが参照して、「送信」処理における送信先番号を設定するワークフローがあったとする。このような場合、「送信」処理における送信先番号を設定するための送信設定画面は、ＯＣＲ結果を得てから表示する必要があり、ワークフロー実行開始前に表示することはできない。したがって、この例のようなワークフローにおいては、ユーザはスキャンとＯＣＲとの各処理が完了するまで装置の前で待機していなければならない。また一方、処理によっては、ユーザからの条件設定を必要としない処理もあり、そのような処理では設定画面を表示しないので、ユーザはワークフローの処理が完了するまで装置の前で待機しておく必要がない。即ち、ユーザが装置の前で待機しておく必要があるのか無いのか判断するためには、実行指示したワークフローでどういった設定画面がいつ表示されるかを、ユーザがすべて把握しておかなければならなかった。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、設定画面を呼び出す設定インターフェースと処理を実行する実行インターフェースとを有する機能プロバイダ、及び処理を実行する実行インターフェースを有する機能プロバイダを複数組み合わせて一連のワークフローを作成するためのワークフローの作成画面を表示する表示手段と、作成画面を介して作成された前記ワークフローに応じて、前記ワークフローの定義ファイルを作成する作成手段と、を有し、作成手段は、前記作成画面を介して作成された前記ワークフローに応じて、前記実行インターフェースの呼び出し順と前記設定インターフェースの呼び出し順とを別々に定義し、第１の機能プロバイダの前記設定インターフェースを呼び出してから第２の機能プロバイダの前記設定インターフェースを呼び出すまでの待機を促すメッセージの表示情報を定義する前記定義ファイルを作成する。
【発明の効果】
【０００６】
本発明によれば、待機が必要か否かを容易に判断可能なワークフローの定義ファイルを作成することができる。
【図面の簡単な説明】
【０００７】
【図１】画像処理システムのシステム構成の一例を示す図である。
【図２】ＭＦＰのハードウェア構成の一例を示す図である。
【図３】サーバ及びＰＣのハードウェア構成の一例を示す図である。
【図４】ＭＦＰのソフトウェア構成の一例を示す図である。
【図５】機能プロバイダ情報テーブルの一例を示す図である。
【図６】機能プロバイダインターフェース定義の一例を示す図である。
【図７】ＰＣのソフトウェア構成の一例を示す図である。
【図８】機能プロバイダＩ／Ｆテーブルの一例を示す図である。
【図９Ａ】フロー作成ツールが表示する画面の一例を示す図（その１）である。
【図９Ｂ】フロー作成ツールが表示する画面の一例を示す図（その２）である。
【図９Ｃ】フロー作成ツールが表示する画面の一例を示す図（その３）である。
【図１０】ワークフロー定義ファイルの具体的な記述例を示す図（その１）である。
【図１１】ワークフロー定義ファイルの具体的な記述例を示す図（その２）である。
【図１２】ワークフロー定義ファイルの具体的な記述例を示す図（その３）である。
【図１３】ワークフロー定義を作成する情報処理の一例を示すフローチャートである。
【図１４】ＭＦＰ上のワークフローの実行の流れの一例を示したシーケンス図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
図１は、画像処理システムのシステム構成の一例を示す図である。画像処理システムは、ＬＡＮ１１０を介して接続されるＭＦＰ１０１、ＰＣ１０３と、ＷＡＮ１２０を介して接続されるサーバ１０２とから構成される。ＬＡＮ１１０上の装置とＷＡＮ１２０上の装置とはお互いのネットワークを通して、相互に通信可能である。図１は典型的なネットワーク構成の例であり、各装置がＬＡＮ１１０又はＷＡＮ１２０のどちらか一方にあってもよい。
ＭＦＰ１０１は、スキャナ、プリンタを有する画像形成装置である。加えて、ＭＦＰ１０１は、装置上で動作する拡張ソフトを追加、実行させるためのソフトウェアプラットホームを持つ。ＰＣ１０３は、業務用の端末装置であり、ＭＦＰ１０１で動作するワークフローの定義ファイルを作成するためのソフトウェア（以下、フロー作成ツールという）が動作している。サーバ１０２は、ＭＦＰ１０１と連携して各種処理を行うサーバである。例えば、サーバ１０２は、ＭＦＰ１０１から画像データを受信するファイルサーバであったり、ＭＦＰ１０１から処理依頼を受けてＯＣＲ（光学文字認識）処理を実行するＷｅｂアプリケーションサーバであったりする。サーバは一台とは限らず、目的に応じて複数のサーバが存在してもよい。
【００１０】
図２は、ＭＦＰ１０１のハードウェア構成の一例を示す図である。ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２やＨＤＤ２１４に記憶された制御プログラムを読み出して読取制御や送信制御等の各種制御処理を実行する。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ２１４は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。
操作部Ｉ／Ｆ２１５は、操作部２１９と制御部２１０とを接続する。操作部２１９には、タッチパネル機能を有する液晶表示部やキーボード等が備えられている。
プリンタＩ／Ｆ２１６は、プリンタ２２０と制御部２１０とを接続する。プリンタ２２０で印刷すべき画像データはプリンタＩ／Ｆ２１６を介して制御部２１０からプリンタ２２０に転送され、プリンタ２２０において記録媒体上に印刷される。
スキャナＩ／Ｆ２１７は、スキャナ２２１と制御部２１０とを接続する。スキャナ２２１は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。ネットワークＩ／Ｆ２１８は、制御部２１０（ＭＦＰ１０１）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ２１８は、ＬＡＮ１１０上又はＷＡＮ１２０上の他の装置との間で各種情報を送受信する。
ＣＰＵ２１１がＲＯＭ２１２又はＨＤＤ２１４に記憶されたプログラムに基づき処理を実行することによって後述する図４に示すＭＦＰ１０１のソフトウェア構成及び図１４のシーケンス図の処理が実現される。
【００１１】
図３は、サーバ１０２及びＰＣ１０３のハードウェア構成の一例を示す図である。ＣＰＵ３１１を含む制御部３１０は、装置全体の動作を制御する。ＣＰＵ３１１は、ＲＯＭ３１２やＨＤＤ３１４に記憶された制御プログラムを読み出して各種制御処理を実行する。ＲＡＭ３１３は、ＣＰＵ３１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ３１４は、各種のプログラムやデータを記憶する。
表示部Ｉ／Ｆ３１５は、表示部３１８と制御部３１０とを接続する。キーボードＩ／Ｆ３１６は、キーボード３１９と制御部３１０とを接続する。ＣＰＵ３１１は、キーボード３１９を介したユーザからの指示を認識し、認識した指示に応じて表示部３１８に表示する画面を遷移させる。
ネットワークＩ／Ｆ３１７は、制御部３１０をＬＡＮ１１０又はＷＡＮ１２０に接続する。ネットワークＩ／Ｆ３１７は、ＬＡＮ１１０上又はＷＡＮ１２０上の他の装置との間で各種情報を送受信する。サーバ１０２のＣＰＵ３１１がサーバ１０２のＲＯＭ３１２又はＨＤＤ３１４に記憶されたプログラムに基づき処理を実行することによって後述するサーバ１０２の機能等が実現される。また、ＰＣ１０３のＣＰＵ３１１がＰＣ１０３のＲＯＭ３１２又はＨＤＤ３１４に記憶されたプログラムに基づき処理を実行することによって後述する図７に示すＰＣ１０３のソフトウェア構成及び図１３のフローチャートの処理が実現される。
【００１２】
図４は、ＭＦＰ１０１のソフトウェア構成の一例を示す図である。
ソフト管理部４１０は、ＭＦＰ１０１上でソフトウェアを動作させるためのソフトウェアプラットホームである。図４では、ソフトウェアとして４１１〜４１５の５つのソフトウェアが機能プロバイダとしてＭＦＰ１０１にインストールされている。
機能プロバイダは、ソフトウェアの一種であるが、アプリではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは入力なら入力、出力なら出力といった特定の機能を提供するソフトウェアを示すものであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。
例えば、「スキャンしてプレビュー表示の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」「プレビュー」「送信」の３つの機能をひとつのアプリで実現する。一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の３つの機能プロバイダが必要になる。更に、それら３つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部４３０が必要になる。
【００１３】
また、アプリは、ＭＦＰ１０１が元々備えている機能（例えばコピー機能やファクス送信機能）を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部４２０に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部４２０経由でワークフロー処理部４３０の指示によって呼び出される。ワークフローを実行するためには、メニュー画面にワークフロー処理部４３０が後述のワークフロー定義ファイルに対応して表示するメニュー項目を用いる。
更に、機能プロバイダは、機能プロバイダ管理部４２０が規定するルール（以下、機能プロバイダインターフェース）を満たすようにプログラミングされている。機能プロバイダインターフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインターフェースである。機能プロバイダインターフェースは、機能プロバイダが提供する機能の種類（以下、機能タイプという）ごとに定められている。機能プロバイダは、機能プロバイダインターフェースに基づいてワークフロー処理部４３０から呼び出される。
１つの機能プロバイダは目的に応じて、複数種類のインターフェースを持つ場合がある。例えば、スキャン機能を実現する機能プロバイダであれば、「スキャン設定画面の表示」の目的のためと「スキャンジョブの実行」の目的のためとのように、目的別に複数種類のインターフェースを用意することができる。
また、複数種類の機能プロバイダをＭＦＰ１０１にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類インストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類インストールしてもよい。同じ機能タイプの機能プロバイダは同じ機能プロバイダインターフェースを持つため、ソフトウェアや拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
【００１４】
標準スキャンプロバイダ４１１と簡単スキャンプロバイダ４１２とは、共にスキャン機能を提供する機能プロバイダ（機能タイプ＝スキャン）である。機能タイプが「スキャン」の機能プロバイダを総称してスキャンプロバイダと呼ぶ。スキャンプロバイダは、機能タイプが「スキャン」の機能プロバイダのために定義された機能プロバイダインターフェース（スキャンプロバイダインターフェース）を実現する。標準スキャンプロバイダ４１１は、一般的なユーザ向けのスキャン設定画面を持つ。一方、簡単スキャンプロバイダ４１２は、ＭＦＰ１０１の操作に不慣れな初心者向けのスキャン設定画面を持つ。
組込ＯＣＲプロバイダ４１３とＷｅｂ  ＯＣＲプロバイダ４１４とは、共にＯＣＲ機能を提供する機能プロバイダ（機能タイプ＝ＯＣＲ）である。機能タイプが「ＯＣＲ」の機能プロバイダを総称してＯＣＲプロバイダと呼ぶ。ＯＣＲプロバイダは、機能タイプが「ＯＣＲ」の機能プロバイダのために定義された機能プロバイダインターフェース（ＯＣＲプロバイダインターフェース）を実現する。組込ＯＣＲプロバイダ４１３は、ＭＦＰ１０１上で文字認識処理を行うことでＯＣＲ機能を提供する。一方、Ｗｅｂ  ＯＣＲプロバイダ４１４は、外部のＷｅｂサーバ（例えばサーバ１０２）が提供する文字認識処理を、Ｗｅｂブラウザー４５０を介して呼び出すことでＯＣＲ機能を提供する。
送信プロバイダ４１５は、送信機能を提供する機能プロバイダ（機能タイプ＝ファイル送信）である。送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインターフェース（ファイル送信プロバイダインターフェース）を実現する。
各機能プロバイダは、ＭＦＰ１０１に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインターフェースを実現する。
【００１５】
以上で説明した４１１〜４１５の５つの機能プロバイダは一例であり、ＭＦＰ１０１には、拡張ソフトとしても様々な機能プロバイダを追加・削除することが可能である。
機能プロバイダ管理部４２０は、ＭＦＰ１０１にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部４２０は、機能プロバイダ登録部４２１、機能プロバイダ検索部４２２、機能プロバイダ情報テーブル４２３、機能プロバイダインターフェース定義４２４を持つ。
機能プロバイダ登録部４２１は、各機能プロバイダからの依頼を受けて、機能プロバイダ情報テーブル４２３に、各機能プロバイダの機能タイプや設定可能な値等の情報を登録する。各機能プロバイダはＭＦＰにインストールされ実行状態になったときに機能プロバイダ登録部４２１に対して自身の登録を行う。
機能プロバイダ検索部４２２は、後述するワークフロー処理部４３０から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル４２３の情報を基に機能プロバイダを特定する。機能プロバイダ検索部４２２は、検索結果として機能プロバイダをひとつに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。機能プロバイダインターフェース定義４２４は、機能プロバイダインターフェースを定義している。
【００１６】
ワークフロー処理部４３０は、後述するワークフロー定義ファイル４４０に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。本実施形態では、ワークフローとは複数の機能プロバイダを組み合わせた一連の処理を示すものとする。また、ワークフローの実行において、本実施形態では、機能プロバイダを呼び出し、完了することで、次のプロバイダを呼び出すよう構成しているが、その限りではない。ワークフローは、機能プロバイダの呼び出しが完了しなくても、次の機能プロバイダを呼び出して並列実行する構成でもよい。例えば、複数のページからなるデータを扱うワークフローにおいて、全ページの処理の終了を待たず、１ページごとに、次の機能プロバイダを呼び出す構成でもよい。
ワークフロー定義ファイル４４０は、ワークフロー処理部４３０が呼び出す機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値等、機能プロバイダの呼び出しに関する情報を定義する。図４ではワークフロー定義ファイルを例として１つ定義しているが、１つに限定するものではなく、ＭＦＰ１０１上に複数のワークフロー定義ファイルが存在してもよい。
【００１７】
図５は、機能プロバイダ情報テーブル４２３の一例を示す図である。機能プロバイダ情報テーブル４２３は、機能プロバイダを一意に特定する機能プロバイダＩＤ、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェース等、機能プロバイダに関する情報を保持する。機能プロバイダ情報テーブル４２３は、例えば、ＭＦＰ１０１のＲＯＭ２１２又はＨＤＤ２１４等に記憶される。
【００１８】
図６は、機能プロバイダインターフェース定義４２４及び５４０の一例を示す図である。本実施形態では機能プロバイダインターフェースはプログラムのソースコード形式で表現されているが、これに限定されるものではなく、他の形式であってもよい。
１４０１はスキャンプロバイダインターフェースの定義で、「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」「ｄｏＳｃａｎ」という２つのインターフェースを定義している。スキャンプロバイダは、１４０１で定義している２つのインターフェースを必ず備えている。
「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」はスキャン設定画面を表示するためのインターフェースで、Ｐａｒａｍｅｔｅｒを受け取り、結果をｂｏｏｌｅａｎ（真偽値）で返す。「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」はユーザがスキャン設定を確定するとｔｒｕｅ（真）を返し、ユーザがスキャン設定をキャンセルするとｆａｌｓｅ（偽）を返す。Ｐａｒａｍｅｔｅｒは、インターフェースを呼び出す際の設定値で、ワークフロー定義ファイル４４０で定義される。「ｄｏＳｃａｎ」はスキャン実行のためのインターフェースで、Ｐａｒａｍｅｔｅｒを受け取り、結果をＤｏｃｕｍｅｎｔというデータ形式で返す。「ｄｏＳｃａｎ」は「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」でユーザが設定した値又はＰａｒａｍｅｔｅｒで指定された設定値でスキャンを実行する。
同様に、１４０２はＯＣＲプロバイダインターフェースの定義である。また１４０３はファイル送信プロバイダインターフェースの定義である。このように、機能プロバイダインターフェース定義では、各機能プロバイダが備えるインターフェース（名称、入力、出力）が定義されている。
【００１９】
図７は、ＰＣ１０３のソフトウェア構成の一例を示す図である。
画面制御部５１０は、フロー作成ツールの画面表示を制御する。ワークフロー定義作成部５２０は、ＭＦＰ１０１で使用するワークフロー定義を作成し、ファイルに保存する。機能プロバイダＩ／Ｆ情報テーブル５３０は、各機能プロバイダが持つ機能プロバイダインターフェースに関する情報を格納したテーブルで、ＨＤＤ３１４に記憶されている。機能プロバイダインターフェース定義５４０は、ＭＦＰ１０１の機能プロバイダインターフェース定義４２４と同じ定義である。
【００２０】
図８は、機能プロバイダＩ／Ｆ情報テーブル５３０の一例を示す図である。機能プロバイダＩ／Ｆ情報テーブル５３０は、機能プロバイダの機能タイプＩＤ、機能タイプの名称、機能プロバイダインターフェース、設定インターフェース、実行インターフェース等、機能プロバイダインターフェースに関する情報を保持する。設定インターフェースは機能プロバイダのもつ設定画面を呼び出すための機能プロバイダインターフェースである。実行インターフェースは機能プロバイダのもつ実行処理を呼び出すための機能プロバイダインターフェースである。
図８の例では、スキャンプロバイダと送信プロバイダとは設定インターフェースと実行インターフェースとを持っていて、ＯＣＲプロバイダは実行インターフェースのみを持っている旨を定義している。
【００２１】
図９Ａは、ＰＣ１０３上で動作するフロー作成ツールが表示する画面（ワークフローの作成画面）の一例を示す図である。また、図９Ｂ、図９Ｃは、ワークフロー作成画面の別の例を示す図である。すなわち、画面制御部５１０は、ＰＣ１０３の表示部３１８に図９Ａ、図９Ｂ、図９Ｃに示す画面のいずれかを表示する。また、図９Ａ、図９Ｂ、図９Ｃの画面は、設定インターフェースと実行インターフェースとを有する機能プロバイダ、及び実行インターフェースを有する機能プロバイダを複数組み合わせて一連のワークフローを作成するための画面である。
領域７１０は、機能プロバイダＩ／Ｆ情報テーブル５３０に定義されている機能プロバイダ（機能タイプ）の一覧を表示する領域である。図９Ａ、図９Ｂ、図９Ｃでは個々の機能プロバイダは、ボタンとして表現されているが、別の形式で表現されてもよい。領域７１０は、複数の機能プロバイダを表示する第１の領域の一例である。
領域７２０は、ワークフローの流れを定義する領域である。ワークフロー定義作成部５２０は、ワークフロー作成者による領域７１０に表示されているボタンの中からワークフローの実行フローに必要な機能プロバイダを選択する操作と、当該選択された機能プロバイダを領域７２０に並べる操作とに応じて、ワークフローの流れを定義する。例えば、ワークフロー作成者が、領域７１０に表示されている所望の機能プロバイダのボタンをドラッグし、領域７２０の実行フローを定義するための所望の位置に当該ドラッグしたボタンをドロップすることに応じて、各機能を所望の位置（所望の順）に並べて実行フローを定義するようにしてもよい。また、後述するように、配置された各機能に関する設定画面を表示するように指示された場合は、その機能の設定画面をＵＩフローに表示する。図９Ａ、図９Ｂ、図９Ｃでは「スキャン」後に「ＯＣＲ」して「送信」するワークフローが定義されている。このとき、画面制御部５１０は、例えば、図９Ａに示されるように、機能プロバイダを並べた実行フローと、設定画面の表示順及びメッセージ画面７５１の表示タイミングを表したＵＩフローとを区別する。このことで、ワークフローの作成者に直観的にワークフローの動作を示す。また、画面制御部５１０は、図９Ｂに示すように、ＵＩフローにおいて、設定画面とメッセージ画面７５１とを区別して表示するようにしてもよい。このようにすることにより、ワークフローの作成者に直観的に操作部２１９に表示される画面遷移を示すことができる。領域７２０は、第１の領域から選択された複数の機能プロバイダの呼び出し順を表示する第２の領域の一例である。
【００２２】
領域７３０は、個々の機能プロバイダのパラメータの設定を行う領域である。領域７３０には、領域７２０に並べられた機能プロバイダのうち、選択中の機能プロバイダのパラメータ設定画面が表示される。図９Ａ、図９Ｂ、図９Ｃでは例として送信プロバイダのパラメータ設定画面が表示されている。領域７３０の中にはチェックボックス７３１が存在する。チェックボックス７３１は、対象の機能プロバイダをＭＦＰ１０１で実行する際に、ＭＦＰ１０１に設定画面を表示しないようにするための設定である。チェックボックス７３１をＯＮにした機能プロバイダはワークフローの実行において、設定画面を表示せずに、領域７３０で設定された設定値で実行を行う。図９Ａ、図９Ｂ、図９Ｃでは、チェックボックス７３１をＯＦＦにしているので、領域７２０のＵＩフローに「送信」設定画面７２１が表示される。チェックボックス７３１は、設定インターフェースを持つ機能プロバイダの場合にのみ表示される。領域７３０は、第２の領域に表示される複数の機能プロバイダのうち選択された機能プロバイダの設定値を設定する第３の領域の一例である。
テキストフィールド７４１は、ワークフロー名称を入力する領域である。ボタン７４２は、ワークフロー定義ファイルの生成を指示するためのボタンである。
【００２３】
例えば、図９Ａに示されるように、画面制御部５１０は、領域７２０に置かれた領域７１０から選択された複数の機能プロバイダのそれぞれが設定インターフェースを有しているか否か、及び領域７３０において設定された設定インターフェースを有する機能プロバイダに関して設定画面を表示しない旨の設定がされているか否かに基づいて、領域７２０に機能プロバイダの呼び出し順とは別に設定画面の呼び出し順を表示する。また画面制御部５１０は、領域７２０のＵＩフローとして表示されたスキャン設定画面と送信設定画面との間に、ユーザにＭＦＰ前での待機を促すメッセージを含むメッセージ画面７５１を自動的に挿入する。図９Ａの例では、スキャン設定画面で設定を行った後にスキャンとＯＣＲの各機能が実行されたその後に送信設定画面が表示されるので、スキャン設定画面で設定を行わせた後に送信設定画面を表示するまで時間がかかる。この間にユーザがＭＦＰから離れてしまわないように、ＭＦＰ前での待機を促すメッセージ画面を表示するためのフロー定義を自動的に追加する。スキャン設定画面は、第１の設定画面の一例である。送信設定画面は、第２の設定画面の一例である。
また画面制御部５１０は、図９Ｂに示されるように、第２の領域に設定画面の呼び出し順のフロー（ＵＩフロー）とは、別にメッセージ画面の表示タイミングのフロー（メッセージＵＩフロー）を表示するようにしてもよい。
また画面制御部５１０は、図９Ｃに示されるように、領域７１０から選択されて領域７２０に置かれた複数の機能プロバイダの処理に基づき、ユーザの待機が不要になったタイミング（ユーザが設定画面で設定を行う必要がなくなったタイミング）で、待機が不要になった旨のメッセージを含むメッセージ画面７５２を表示するようにしてもよい。
図９Ａ、図９Ｂ、図９Ｃの例では、送信設定画面は、ＯＣＲの結果を得てその結果を送信設定画面にプリセットしてから表示する必要があるため、送信設定画面７２１の表示タイミングがＯＣＲ機能の後になっている。しかし、このような関連性が設定されていない場合（例えばＯＣＲ結果を送信設定画面の宛先等にプリセットしない設定になっている場合）、ワークフロー定義作成部５２０は、設定画面を呼び出す設定インターフェースをワークフローの先頭で呼び出すよう呼び出し順を定義する。すなわち、設定画面が前に実行される機能の処理結果を参照しない場合は、設定画面をワークフローの先頭で連続して呼び出すようにすれば（スキャン設定画面と送信設定画面をワークフローの先頭で連続して呼び出して設定させた後に、スキャンとＯＣＲと送信の各機能を実行するように呼び出すようにすれば）、ユーザが各機能の設定を行った後、ＭＦＰから離れたとしても、ＭＦＰは各機能の処理を続行することができる。
【００２４】
図１０は、ワークフロー定義ファイルのより具体的な記述例を示す図（その１）である。フロー作成ツールで次のように設定した場合の例である。図９の領域７２０の実行フローにおける機能プロバイダの並びは「スキャン」「ＯＣＲ」「送信」の順である。また、スキャンプロバイダと送信プロバイダとの設定においてチェックボックス７３１はＯＦＦである。ＯＣＲプロバイダは設定インターフェースを持たないため、チェックボックス７３１は非表示である。
本実施形態ではワークフロー定義ファイルはＸＭＬ形式のファイルとして表現されているが、ＸＭＬ形式に限定されるものではなく、他の形式のファイルであってもよい。
Ｗｏｒｋｆｌｏｗタグ８１０は、以下の記述がワークフローの定義であることを示している。Ｗｏｒｋｆｌｏｗタグ８１０のｎａｍｅ属性は、ワークフロー名称を定義しており、図９のテキストフィールド７４１の入力を値として使用する。
ＦＰタグ８２０は、Ｗｏｒｋｆｌｏｗタグ８１０の子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。ＦＰタグ８２０のｎｏ属性は、ワークフローにおける機能プロバイダの並びを定義しており、値は図９の領域７２０で設定したワークフローの流れに沿って順番づけた値である。「ｎｏ＝"１"」は先頭の機能プロバイダであることを示している。ＦＰタグ８２０のｔｙｐｅ属性は、機能プロバイダの機能タイプを定義しており、「ｔｙｐｅ＝"ＳＣＡＮ"」はスキャンプロバイダであることを示している。
【００２５】
同様に、ＦＰタグ８３０でワークフローの２番目に並ぶ機能プロバイダがＯＣＲプロバイダであること、ＦＰタグ８４０でワークフローの３番目に並ぶ機能プロバイダが送信プロバイダであることを定義している。
Ｃｏｎｄｉｔｉｏｎタグ８２１は、ＦＰタグ８２０の子要素で、スキャンプロバイダの検索条件を定義するためのものである。
Ａｃｔｉｏｎタグ８２２は、ＦＰタグ８２０の子要素であり、機能プロバイダインターフェースの呼び出しについての情報を定義している。Ａｃｔｉｏｎタグは、呼び出す際の設定であるＰａｒａｍｅｔｅｒタグや、「ｄｏＳｃａｎ」を実行した結果の出力を定義するＯｕｔｐｕｔタグを子要素として持つ。
Ａｃｔｉｏｎタグのｎｏ属性は、ワークフロー全体における機能プロバイダインターフェースの呼び出し順を定義している。また、Ａｃｔｉｏｎタグのｍｅｔｈｏｄ属性は、呼び出す機能プロバイダインターフェースを定義している。Ａｃｔｉｏｎタグ８２２は、ワークフロー全体の実行においてスキャンプロバイダの「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」インターフェースを１番目に呼び出す旨を定義している。
【００２６】
図１０で定義しているＡｃｔｉｏｎタグをｎｏ順に並べると次のようになる。
１．Ａｃｔｉｏｎタグ８２２で定義したスキャンプロバイダの設定インターフェース。
２．Ａｃｔｉｏｎタグ８４１で定義した送信プロバイダの設定インターフェース。
３．Ａｃｔｉｏｎタグ８２３で定義したスキャンプロバイダの実行インターフェース。
４．Ａｃｔｉｏｎタグ８３１で定義したＯＣＲプロバイダの実行インターフェース。
５．Ａｃｔｉｏｎタグ８４２で定義した送信プロバイダの実行インターフェース。
このように、機能プロバイダの並びとは別に、設定インターフェースが実行インターフェースよりも先に呼び出されるように定義されている。
【００２７】
図１１は、ワークフロー定義ファイルのより具体的な記述例を示す図（その２）である。フロー作成ツールで次のように設定した場合の例である。図９の領域７２０の実行フローにおける機能プロバイダの並びは「スキャン」「ＯＣＲ」「送信」の順である。また、スキャンプロバイダの設定においてチェックボックス７３１はＯＮ、送信プロバイダの設定においてチェックボックス７３１はＯＦＦである。
Ｗｏｒｋｆｌｏｗタグ９１０、ＦＰタグ９２０、９３０、９４０は図１０のＷｏｒｋｆｌｏｗタグ８１０、ＦＰタグ８２０、８３０、８４０と同じ定義のため、説明を省略する。
図１１で定義しているＡｃｔｉｏｎタグをｎｏ順に並べると次のようになる。
１．Ａｃｔｉｏｎタグ９４１で定義した送信プロバイダの設定インターフェース。
２．Ａｃｔｉｏｎタグ９２１で定義したスキャンプロバイダの実行インターフェース。
３．Ａｃｔｉｏｎタグ９３１で定義したＯＣＲプロバイダの実行インターフェース。
４．Ａｃｔｉｏｎタグ９４２で定義した送信プロバイダの実行インターフェース。
スキャンプロバイダの設定においてチェックボックス７３１がＯＮになっているため、スキャンプロバイダの設定インターフェースは、ワークフロー定義ファイルには定義されていない。
【００２８】
図１２は、ワークフロー定義ファイルのより具体的な記述例を示す図（その３）である。フロー作成ツールで次のように設定した場合の例である。図９の領域７２０における機能プロバイダの並びは「スキャン」「ＯＣＲ」「送信」の順である。また、スキャンプロバイダと送信プロバイダとの設定においてチェックボックス７３１はＯＦＦである。加えて、送信プロバイダの設定においてＯＣＲプロバイダの実行結果をファクス送信番号として使用するという設定が行われている。
Ｗｏｒｋｆｌｏｗタグ１０１０、ＦＰタグ１０２０、１０３０、１０４０は図１０のＷｏｒｋｆｌｏｗタグ８１０、ＦＰタグ８２０、８３０、８４０と同じ定義のため、説明を省略する。
Ｏｕｔｐｕｔタグ１０３２は、Ａｃｔｉｏｎタグ１０３１の子要素であり、「ｄｏＯＣＲ」を実行した結果の出力を定義している。Ｏｕｔｐｕｔタグ１０３２は、ｔｙｐｅ属性で出力形式が「Ｓｔｒｉｎｇ（文字列）」である旨を、ｉｄ属性で出力データを一意に特定するＩＤが「ｂａｒ」である旨を定義している。
Ｉｎｐｕｔタグ１０４２は、Ａｃｔｉｏｎタグ１０４１の子要素であり、送信プロバイダの「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」の入力に関する定義として、「Ｓｔｒｉｎｇ」形式のデータをＩＤが「ｂａｒ」のデータから受け取ることを表している。ＩＤが「ｂａｒ」のデータは、Ｏｕｔｐｕｔタグ１０３２で定義した「ｄｏＯＣＲ」の出力データである。つまり、送信プロバイダの設定インターフェース呼び出しは、ＯＣＲプロバイダの実行結果をＳｔｒｉｎｇ形式で受け取るということを定義している。
Ｐｒｏｐｅｒｔｙタグ１０４３は、Ｐａｒａｍｅｔｅｒタグの子要素で、送信プロバイダの「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」を呼び出す際のパラメータの一項目が定義されている。「ＦＡＸ＿ＮＵＭＢＥＲ」は送信ファクス番号に対応するパラメータで、値として「％ｂａｒ％」を使用する。ここで「％ｂａｒ％」は、機能プロバイダインターフェース呼び出し時に、ＩＤ「ｂａｒ」のデータに置換されるという定義である。つまり、Ｐｒｏｐｅｒｔｙタグ１０４３は、送信プロバイダの設定画面を表示する際に、送信ファクス番号として、ＯＣＲプロバイダの結果をプリセットするということを定義している。
【００２９】
図１２で定義しているＡｃｔｉｏｎタグをｎｏ順に並べると次のようになる。
１．Ａｃｔｉｏｎタグ１０２１で定義したスキャンプロバイダの設定インターフェース。
２．Ａｃｔｉｏｎタグ１０２２で定義したスキャンプロバイダの実行インターフェース。
３．Ａｃｔｉｏｎタグ１０３１で定義したＯＣＲプロバイダの実行インターフェース。
４．Ａｃｔｉｏｎタグ１０４１で定義した送信プロバイダの設定インターフェース。
５．Ａｃｔｉｏｎタグ１０４４で定義した送信プロバイダの実行インターフェース。
更に、Ｐａｎｅｌタグ１０４６は、Ｐａｎｅｌｓタグ１０４５の子要素で、メッセージを表示する際のパラメータが定義されている。Ｐａｎｅｌタグで定義された表示画面はｆｒｏｍ属性の順番からｔｏ属性と同値のｎｏ属性を持つＡｃｔｉｏｎが実行中の間までＰａｎｅｌタグの子要素で定義された情報を操作部２１９に表示し続ける。Ｐａｎｅｌタグ１０４６の情報は、第１の機能プロバイダの設定インターフェースを呼び出してから第２の機能プロバイダの設定インターフェースを呼び出すまでの待機を促すメッセージの表示情報の一例である。
図１２で定義しているＰａｎｅｌタグ１０４６はＡｃｔｉｏｎタグ１０２２（ｆｒｏｍ属性＝２）とＡｃｔｉｏｎタグ１０３１（ｆｒｏｍ属性＝３）との実行インターフェースの実行中にメッセ―を表示することを定義している。
Ａｃｔｉｏｎタグのｎｏ属性は、各機能プロバイダインターフェースの呼び出しに依存関係がある場合、依存関係を守るように定義される。図１２の例では、送信プロバイダの設定インターフェースを呼び出すためには、ＯＣＲプロバイダの実行インターフェースの呼び出し結果が必要になるため、その依存関係を守るようにｎｏ属性が定義されている。
図１０〜図１２に示されるように、ワークフロー定義ファイルには、実行インターフェースの呼び出し順と設定インターフェースの呼び出し順とが別々に定義されている。
【００３０】
図１３は、フロー作成ツールでワークフロー定義を作成する際の情報処理の一例を示すフローチャートである。
Ｓ１１０１で、画面制御部５１０は、ワークフロー定義作成の指示を受け取る。本例では、図９で領域７１０から領域７２０へ機能プロバイダを追加することで、ワークフロー定義を再作成する。
Ｓ１１０３で、ワークフロー定義作成部５２０は、フロー生成ツールの領域７２０にワークフローとして並べられた順に機能プロバイダの情報を１つ取得する。ここで取得する情報は、機能プロバイダＩ／Ｆ情報テーブル５３０に定義されている情報と、機能プロバイダのパラメータ設定（領域７３０の設定値）と、である。
Ｓ１１０４で、ワークフロー定義作成部５２０は、Ｓ１１０３で機能プロバイダの情報が取得できたか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、取得すべき機能プロバイダがあり、情報が取得できたらＳ１１０５へ進み、これ以上取得すべき機能プロバイダがなく、情報が取得できなかったらＳ１１０９へ進む。
【００３１】
Ｓ１１０５で、ワークフロー定義作成部５２０は、機能プロバイダが設定インターフェースを持っているか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、設定インターフェースを持っていればＳ１１０６へ進み、設定インターフェースを持っていなければＳ１１０３へ戻る。
Ｓ１１０６で、ワークフロー定義作成部５２０は、機能プロバイダの「設定画面を表示しない」設定（チェックボックス７３１）がＯＮであるか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、「設定画面を表示しない」設定がＯＮであればＳ１１０３へ戻り、「設定画面を表示しない」設定がＯＦＦであればＳ１１０７へ進む。
Ｓ１１０７で、ワークフロー定義作成部５２０は、機能プロバイダのパラメータ設定（領域７３０の設定値）において、先行する機能プロバイダの結果を参照する設定があるか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、先行する機能プロバイダの結果を参照する設定があればＳ１１０３へ戻り、先行する機能プロバイダの結果を参照する設定がなければＳ１１０８へ進む。先行する機能プロバイダの結果を参照する設定の例としては、図１２で説明した、送信プロバイダの設定において、ＯＣＲプロバイダの実行結果をファクス送信番号として使用するという設定があげられる。
Ｓ１１０８で、ワークフロー定義作成部５２０は、機能プロバイダの設定インターフェースにワークフロー実行時の呼び出し順（Ａｃｔｉｏｎタグのｎｏ属性）を振る。ワークフロー定義作成部５２０は、呼び出し順を１から順にカウントアップする。ワークフロー定義作成部５２０は、Ｓ１１０８の処理を行ったら、Ｓ１１０３へ戻る。
【００３２】
Ｓ１１０９で、ワークフロー定義作成部５２０は、情報を取得すべき機能プロバイダをワークフローの先頭の機能プロバイダに戻す。
Ｓ１１１０で、ワークフロー定義作成部５２０は、フロー生成ツールの領域７２０にワークフローとして並べられた順に機能プロバイダの情報を１つ取得する。ここで取得する情報は、Ｓ１１０３と同様、機能プロバイダＩ／Ｆ情報テーブル５３０に定義されている情報と、機能プロバイダのパラメータ設定（領域７３０の設定値）と、である。
Ｓ１１１１で、ワークフロー定義作成部５２０は、Ｓ１１１０で機能プロバイダの情報が取得できたか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、取得すべき機能プロバイダがあり、情報が取得できたらＳ１１１２へ進み、これ以上取得すべき機能プロバイダがなく、情報が取得できなかったらＳ１１２０へ進む。
【００３３】
Ｓ１１１２で、ワークフロー定義作成部５２０は、機能プロバイダのワークフローにおける並び順及び機能タイプＩＤを含んだ機能プロバイダの定義をワークフロー定義に追記する。
Ｓ１１１３で、ワークフロー定義作成部５２０は、機能プロバイダが設定インターフェースを持っているか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、設定インターフェースを持っていればＳ１１１４へ進み、設定インターフェースを持っていなければＳ１１１８へ進む。
Ｓ１１１４で、ワークフロー定義作成部５２０は、機能プロバイダの「設定画面を表示しない」設定（チェックボックス７３１）がＯＮであるか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、「設定画面を表示しない」設定がＯＮであればＳ１１１８へ進み、「設定画面を表示しない」設定がＯＦＦであればＳ１１１５へ進む。
Ｓ１１１５で、ワークフロー定義作成部５２０は、機能プロバイダのパラメータ設定（領域７３０の設定値）において、先行する機能プロバイダの結果を参照する設定があるか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、先行する機能プロバイダの結果を参照する設定があればＳ１１１６へ進み、先行する機能プロバイダの結果を参照する設定がなければＳ１１１７へ進む。
Ｓ１１１６で、ワークフロー定義作成部５２０は、機能プロバイダの設定インターフェースにワークフロー実行時の呼び出し順（Ａｃｔｉｏｎタグのｎｏ属性）を振る。ワークフロー定義作成部５２０は、呼び出し順を、これまでの処理で振った順番の続きから振る。
【００３４】
Ｓ１１１７で、ワークフロー定義作成部５２０は、機能プロバイダの設定インターフェースに関する定義をワークフロー定義に追記する。設定インターフェースに関する定義は、ワークフロー実行時に必要となる定義で、ワークフロー実行時の呼び出し順、呼び出す設定インターフェース、呼び出すときに設定インターフェースに渡すパラメータ等が含まれる。
Ｓ１１１８で、ワークフロー定義作成部５２０は、機能プロバイダの実行インターフェースにワークフロー実行時の呼び出し順（Ａｃｔｉｏｎタグのｎｏ属性）を振る。ワークフロー定義作成部５２０は、呼び出し順をこれまでの処理で振った順番の続きから振る。
Ｓ１１１９で、ワークフロー定義作成部５２０は、機能プロバイダの実行インターフェースに関する定義をワークフロー定義に追記する。実行インターフェースに関する定義は、ワークフロー実行時に必要となる定義で、ワークフロー実行時の呼び出し順、呼び出す実行インターフェース、呼び出すときに実行インターフェースに渡すパラメータ等が含まれる。ワークフロー定義作成部５２０は、Ｓ１１１９の処理を行ったら、Ｓ１１１０へ戻る。
【００３５】
Ｓ１１２０は、ワークフロー定義作成部５２０は、情報を取得すべきＡｃｔｉｏｎを作成したワークフロー定義の先頭のＡｃｔｉｏｎにする。
Ｓ１１２１は、メッセージ画面定義を１つ作成し、Ｓ１１２２へ進む。
Ｓ１１２２で、ワークフロー定義作成部５２０は、作成したワークフロー定義のＡｃｔｉｏｎ順にＡｃｔｉｏｎを１つ取得する。ここでワークフロー定義作成部５２０が取得する情報は、ワークフロー実行時の呼び出し順、呼び出す設定インターフェース、該当する機能プロバイダの情報である。
Ｓ１１２３で、ワークフロー定義作成部５２０は、Ｓ１１２２でＡｃｔｉｏｎ情報が取得できたか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、Ａｃｔｉｏｎ情報が取得できたらＳ１１２４へ進み、これ以上取得すべきＡｃｔｉｏｎ情報がなければ図１３に示すフローチャートの処理を終了する。
Ｓ１１２４で、ワークフロー定義作成部５２０は、Ａｃｔｉｏｎが機能プロバイダの実行インターフェースを処理するＡｃｔｉｏｎかどうかを判定して処理を分岐する。ワークフロー定義作成部５２０は、実行インターフェースである場合、Ｓ１１２５へ進み、設定インターフェースであれば、Ｓ１１２８へ進む。
【００３６】
Ｓ１１２５で、ワークフロー定義作成部５２０は、Ｓ１１２１で作成したメッセージ定義に、既にｆｒｏｍ属性を振ったか否かを判定して処理を分岐する。ワークフロー定義作成部５２０は、振っていなければ、Ｓ１１２６へ進み、振っていれば、Ｓ１１２７へ進む。
Ｓ１１２６で、ワークフロー定義作成部５２０は、Ｓ１１２１で作成したメッセージ定義のｆｒｏｍ属性にＳ１１２２で取得したＡｃｔｉｏｎの実行順（ｎｏ属性）の値を振る。ワークフロー定義作成部５２０は、Ｓ１１２６の処理を行ったら、Ｓ１１２２へ戻る。
Ｓ１１２７で、ワークフロー定義作成部５２０は、Ｓ１１２１で作成したメッセージ定義のｔｏ属性にＳ１１２２で取得したＡｃｔｉｏｎの実行順（ｎｏ属性）の値を振る。更に、ワークフロー定義作成部５２０は、Ａｃｔｉｏｎの機能プロバイダ名からメッセージを作成する。ワークフロー定義作成部５２０は、Ｓ１１２７の処理を行ったら、Ｓ１１２２へ戻る。
Ｓ１１２８で、ワークフロー定義作成部５２０は、Ｓ１１２１で作成し、Ｓ１１２６、Ｓ１１２７で情報を振ったメッセージ定義をワークフロー定義に追記する。ワークフロー定義作成部５２０は、Ｓ１１２８の処理を行ったら、Ｓ１１２１へ戻る。
以上の情報処理を実行することで、フロー作成ツールはワークフロー定義を作成する。
【００３７】
図１４は、ＭＦＰ１０１上のワークフローの実行の流れの一例を示したシーケンス図である。ワークフロー定義ファイル４４０には図１２で説明した内容が記述されているものとして、以下のステップの説明を行う。
Ｓ１２０１で、ワークフロー処理部４３０は、操作部２１９等を介したユーザからのワークフロー実行指示を受け取る。
Ｓ１２０２で、ワークフロー処理部４３０は、実行指示に対応するワークフロー定義ファイル４４０を読み込む。
Ｓ１２０３で、ワークフロー処理部４３０は、機能プロバイダ管理部４２０に対して、ワークフロー定義ファイル４４０に記載されている機能プロバイダの検索を指示する。ワークフロー定義ファイル４４０には、「機能タイプがスキャンの機能プロバイダ」「機能タイプがＯＣＲの機能プロバイダ」そして「機能タイプが送信の機能プロバイダ」が記載されている。そのため、ワークフロー処理部４３０は、機能プロバイダ管理部４２０に対して、その３つの検索条件を指定して指示する。
Ｓ１２０４で、機能プロバイダ管理部４２０は、機能プロバイダ情報テーブル４２３を基に検索条件に一致する機能プロバイダを抽出する。機能プロバイダ管理部４２０は、検索条件に一致するスキャンプロバイダが複数存在した場合は、最も優先順位の高いスキャンプロバイダを検索結果とする。本実施形態では、標準スキャンプロバイダ４１１、Ｗｅｂ  ＯＣＲプロバイダ４１４そして送信プロバイダ４１５が抽出されるものとする。
Ｓ１２０５で、機能プロバイダ管理部４２０は、機能プロバイダの検索結果をワークフロー処理部４３０に通知する。
【００３８】
Ｓ１２０６で、ワークフロー処理部４３０は、ワークフロー定義ファイル４４０に定義されている呼び出し順（Ａｃｔｉｏｎタグのｎｏ属性）に従って、標準スキャンプロバイダ４１１の設定インターフェースを呼び出す。
Ｓ１２０７で、ワークフロー処理部４３０から設定インターフェースの呼び出しを受けた標準スキャンプロバイダ４１１は、指示に従ってスキャン設定画面をＭＦＰ１０１の操作部２１９に表示する。
Ｓ１２０８で、標準スキャンプロバイダ４１１は、スキャン設定の結果をワークフロー処理部４３０に通知する。
Ｓ１２０９で、ワークフロー処理部４３０は、ワークフロー定義ファイル４４０に定義されているメッセージ画面定義（Ｐａｎｅｌタグ）に従って、メッセージ画面をＭＦＰ１０１の操作部２１９に表示する。
Ｓ１２１０で、ワークフロー処理部４３０は、ワークフロー定義ファイル４４０に定義されている呼び出し順に従って、標準スキャンプロバイダ４１１の実行インターフェースを呼び出す。
Ｓ１２１１で、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けた標準スキャンプロバイダ４１１は、指示に従ってスキャン処理を実行する。
Ｓ１２１２で、標準スキャンプロバイダ４１１は、スキャン処理の結果をワークフロー処理部４３０に通知する。
Ｓ１２１３で、ワークフロー処理部４３０は、ワークフロー定義ファイル４４０に定義されている呼び出し順に従って、Ｗｅｂ  ＯＣＲプロバイダ４１４の実行インターフェースを呼び出す。
Ｓ１２１４で、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けたＷｅｂＯＣＲプロバイダ４１６は、指示に従ってＯＣＲ処理を実行する。
Ｓ１２１５で、ＷｅｂＯＣＲプロバイダ４１６は、ＯＣＲ処理の結果をワークフロー処理部４３０に通知する。
【００３９】
Ｓ１２１６で、ワークフロー処理部４３０は、ワークフロー定義ファイル４４０に定義されているメッセージ画面定義（Ｐａｎｅｌタグ）に従って、メッセージ画面を非表示する。
Ｓ１２１７で、ワークフロー処理部４３０は、ワークフロー定義ファイル４４０に定義されている呼び出し順に従って、送信プロバイダ４１５の設定インターフェースを呼び出す。
Ｓ１２１８で、ワークフロー処理部４３０から設定インターフェースの呼び出しを受けた送信プロバイダ４１５は、指示に従って送信設定画面をＭＦＰ１０１の操作部２１９に表示する。
Ｓ１２１９で、送信プロバイダ４１５は、送信設定の結果をワークフロー処理部４３０に通知する。
Ｓ１２２０で、ワークフロー処理部４３０は、ワークフロー定義ファイル４４０に定義されている呼び出し順に従って、送信プロバイダ４１５の実行インターフェースを呼び出す。
Ｓ１２２１で、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けた送信プロバイダ４１５は、指示に従って送信処理を実行する。
Ｓ１２２２で、送信プロバイダ４１５は、送信処理の結果をワークフロー処理部４３０に通知する。
【００４０】
本実施形態によれば、複数のソフトウェアや拡張ソフトを組み合わせたワークフローを作成する際に、ワークフローを作成する作成者が設定画面の呼び出し順や各ソフトウェアや拡張ソフトで用意された設定画面の表示間隔を意識せずとも、設定画面の表示が空いてしまう場合に、適切な待機を促すメッセージ画面を表示するようにワークフローを定義することが可能になる。よって、待機が必要か否かを容易に判断可能なワークフローの定義ファイルを作成することができる。
【００４１】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００４２】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
上述したＭＦＰ１０１のソフトウェア構成の一部又は全てはハードウェア構成としてＭＦＰ１０１に実装してもよい。同様にＰＣ１０３のソフトウェア構成の一部又は全てはハードウェア構成としてＰＣ１０３に実装してもよい。また、ＭＦＰ１０１のハードウェア構成としてＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、ネットワークＩ／Ｆ等は１つである必要はない。複数のＣＰＵがプログラムに基づき、複数のＲＡＭ、ＲＯＭ、ＨＤＤに記憶されたデータ等を用いながら処理を実行することでＭＦＰ１０１の機能等を実現するようにしてもよい。ＰＣ１０３も同様である。
また、各装置のハードウェア構成としてＣＰＵの代わりにＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いてもよい。
【符号の説明】
【００４３】
１０１  ＭＦＰ
１０２  サーバ
１０３  ＰＣ
２１０、３１０  制御部
２１１、３１１  ＣＰＵ
【図１】
2018191062.tif 000003
【図２】
2018191062.tif 000004
【図３】
2018191062.tif 000005
【図４】
2018191062.tif 000006
【図５】
2018191062.tif 000007
【図６】
2018191062.tif 000008
【図７】
2018191062.tif 000009
【図８】
2018191062.tif 000010
【図９Ａ】
2018191062.tif 000011
【図９Ｂ】
2018191062.tif 000012
【図９Ｃ】
2018191062.tif 000013
【図１０】
2018191062.tif 000014
【図１１】
2018191062.tif 000015
【図１２】
2018191062.tif 000016
【図１３】
2018191062.tif 000017
【図１４】
2018191062.tif 000018