JP2017182573A - 情報処理装置、情報処理装置の制御方法、及びプログラム - Google Patents
情報処理装置、情報処理装置の制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2017182573A JP2017182573A JP2016070912A JP2016070912A JP2017182573A JP 2017182573 A JP2017182573 A JP 2017182573A JP 2016070912 A JP2016070912 A JP 2016070912A JP 2016070912 A JP2016070912 A JP 2016070912A JP 2017182573 A JP2017182573 A JP 2017182573A
- Authority
- JP
- Japan
- Prior art keywords
- provider
- function
- function provider
- workflow
- confirmation result
- 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
Abstract
【課題】 ワークフローを実行する前に、ワークフローで用いられる機能プロバイダが要求されるジョブを実行できる状態であるか事前確認して、その応答結果を通知する。【解決手段】情報処理装置において、所定のジョブを実行する前に、前記ワークフローで使用される各機能プロバイダに対して、機能プロバイダが正常に動作する状態であるかを確認する確認要求を行う。そして、当該確認要求に対する各機能プロバイダから応答される事前確認結果にエラー通知が含まれていると判断した場合、対応する機能プロバイダの事前確認結果を通知する構成を特徴とする。【選択図】 図8
Description
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
近年、オフィスに設置される情報処理装置である画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張する機能(以降、拡張機能)は、ソフトウェアプログラム(以降、拡張ソフト)によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしてはキヤノン株式会社のMEAP(登録商標)などがあげられる。
特に、ある特定の目的のために作られた拡張ソフトは、アプリケーションソフトウェア(以降、アプリ)と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで目的の処理を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。
また、アプリの中には、ワークフローアプリという実現手段がある。これは、機能の種類ごとに定められたインターフェースを持つ拡張ソフトである機能プロバイダという部品を、特定の処理としてフローとして組み合わせる。このフローを実行することで、様々な機能を組み合わせたアプリの実現を可能にする技術である。
一方、ユーザがワークフローアプリに実行指示した後に、ワークフローアプリが実際にジョブを実行することになるが、ワークフローアプリ実行時にエラーで終了することがある。しかし、ワークフローのジョブを実際に実行する前に知ることができる問題もある。このような実行時のエラーを防ぐために、ユーザからワークフローアプリに実行指示されたときに、ワークフローを実行できるか否かを判定し、実行できないと判定された際に、実行できない理由を表示させる情報処理装置が知られている。(例えば、特許文献1)
従来技術では、ワークフローに対する処理が実行できるか否かを、機能プロバイダであるプラグインではなく、機能プロバイダに処理を指示するワークフローアプリであるコアサービスで判断を行っている。また実行できない理由の表示もワークフローアプリで行っている。特許文献のようにワークフローアプリが機能プロバイダでの詳細なジョブ処理内容や、事前確認内容を把握できるような、ワークフローアプリと機能プロバイダが密に結合するような構成であれば、ワークフローアプリで事前確認処理を実行できる。
しかし、ワークフローアプリと機能プロバイダが疎に結合しており、呼び出される機能プロバイダが実行時に初めて決定し、ジョブ処理実行を機能プロバイダに移譲するような構成の場合、ワークフローアプリでは事前確認を行うことはできない。
すなわち、ワークフローアプリと機能プロバイダが疎に結合している構成では、ワークフローアプリは、実行時に決定する機能プロバイダや、各機能プロバイダでの詳細なジョブ処理内容や事前条件を全て把握するのは困難である。したがって、ワークフローアプリで、フロー実行時に事前確認を行うことができないという課題があった。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、ワークフローを実行する前に、ワークフローで用いられる機能プロバイダが要求されるジョブを実行できる状態であるか事前確認して、その応答結果を通知できる仕組みを提供することである。
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
所定のジョブを実行する情報処理装置であって、特定の機能処理を実行する機能プロバイダを用いて所定のジョブワークフロー定義ファイルに記載されたワークフローを実行する実行手段と、前記所定のジョブを実行する前に、前記ワークフローで使用される各機能プロバイダに対して、機能プロバイダが正常に動作する状態であるかを確認する確認要求を行う要求手段と、前記要求手段による確認要求に対する各機能プロバイダから応答される事前確認結果にエラー通知が含まれているかどうかを判断する判断手段と、各機能プロバイダからの事前確認結果にエラー通知が含まれていると判断した場合、対応する機能プロバイダの事前確認結果を通知する通知手段と、を備えることを特徴とする。
本発明によれば、ワークフローを実行する前に、ワークフローで用いられる機能プロバイダが要求されるジョブを実行できる状態であるか事前確認して、その応答結果を通知できる。
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態の画像処理システムのシステム構成の一例を示す図である。本システムは、LAN110を介して接続されるMFP101と、WAN120を介して接続されるサーバから構成される。LAN110上の装置とWAN上の装置はお互いのネットワークを通して、相互に通信可能である。図1は典型的なネットワーク構成の例であり、各装置がLAN110またはWAN120のどちらにあっても構わない。
図1において、MFP101は、スキャナ、プリンタを有する画像形成装置である。加えて、装置上で動作する拡張ソフトを追加、実行させるためのソフトウェアプラットホームを持つ。MFP101は、さらに公衆回線網とつながりファクス送受信が可能である。サーバ102は、MFP101と連携して各種処理を行うサーバ102である。例えば、MFP101から、様々なプロトコル、例えばSMB(Server Message Blockの略称)やFTP(File Transfer Protocolの略称)で画像データを受信するファイルサーバであったりする。またMFP101から処理依頼を受けてOCR(光学文字認識)処理を実行するアプリケーションサーバであったりする。またMFP101から依頼を受けてメールを送信するメールサーバであったりする。またMFP101からの要求に従ってHTMLを送信するWebサーバであったりする。サーバは一台とは限らず、目的に応じて複数のサーバが存在してもよい。
図2は、図1に示したMFP101の構成を示すブロック図である。
図2において、CPU211を含む制御部210は、MFP101全体の動作を制御する。CPU211は、ROM212やHDD214に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD214は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。操作部I/F215は、操作部220と制御部210とを接続する。操作部219には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。
図2において、CPU211を含む制御部210は、MFP101全体の動作を制御する。CPU211は、ROM212やHDD214に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD214は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。操作部I/F215は、操作部220と制御部210とを接続する。操作部219には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。
プリンタI/F216は、プリンタ221と制御部210とを接続する。プリンタ221で印刷すべき画像データはプリンタI/F216を介して制御部220からプリンタに転送され、プリンタ221において記録媒体上に印刷される。スキャナI/F217は、スキャナ222と制御部210とを接続する。スキャナ222は、原稿上の画像を読み取って画像データを生成し、スキャナI/F217を介して制御部に入力する。またスキャナI/F217には、不図示の画像解析ボードが接続され、画像解析ボードにより入力された画像データに対してOCR処理を行ったりする。
ネットワークI/F218は、制御部210(MFP101)をLAN110に接続する。ネットワークI/Fは、LAN110上またはWAN上の他の装置との間で各種情報を送受信する。モデム219は、制御部210(MFP101)を公衆回線網130に接続する。モデム219は、公衆回線網上の他の装置との間でファクスを送受信する。
図3は、図1に示したサーバ102の構成を示すブロック図である。
図において、CPU311を含む制御部310は、サーバ全体の動作を制御する。CPU311は、ROM312やHDD314に記憶された制御プログラムを読み出して各種制御処理を実行する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、各種のプログラムやデータを記憶する。
図において、CPU311を含む制御部310は、サーバ全体の動作を制御する。CPU311は、ROM312やHDD314に記憶された制御プログラムを読み出して各種制御処理を実行する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、各種のプログラムやデータを記憶する。
表示部I/F315は、表示部318と制御部310とを接続する。キーボードI/F316は、キーボード319と制御部310とを接続する。CPU311は、キーボード319を介したユーザからの指示を認識し、認識した指示に応じて表示部318に表示する画面を遷移させる。
ネットワークI/F317は、制御部310(サーバ102)をWAN120に接続する。ネットワークI/F317は、LAN110上またはWAN120上の他の装置との間で各種情報を送受信する。
ネットワークI/F317は、制御部310(サーバ102)をWAN120に接続する。ネットワークI/F317は、LAN110上またはWAN120上の他の装置との間で各種情報を送受信する。
図4は、本実施形態のMFP101におけるソフトウェア構成図である。MFP101のHDDに記憶されているプログラム(ソフトウェア)を、CPUがRAMに読み出し、解析、実行することで、図8、図9、図13、図14、図15および図16のフローチャートの処理が実行される。
図4において、拡張ソフト管理部410は、MFP101上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図4では、拡張ソフトとして411〜417の7つの機能プロバイダがMFP101にインストールされている。
機能プロバイダは、拡張ソフトの一種であるが、アプリではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは入力なら入力、出力なら出力といった特定の機能に特化したものであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。
例えば、「スキャンしてOCR処理の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」「OCR処理」「送信」の3つの機能を3つのアプリで実現する。
例えば、「スキャンしてOCR処理の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」「OCR処理」「送信」の3つの機能を3つのアプリで実現する。
一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「OCR機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の3つの機能プロバイダが必要になる。さらに、それら3つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部430が必要になる。なお、ワークフロー処理部430は、特定の機能処理を実行する機能プロバイダを用いて所定のジョブワークフロー定義ファイルに記載されたワークフローを実行する。その際、ワークフローを実行する前に、機能プロバイダが正常に動作する状態であるかを確認する確認要求を、例えば図8に示すように実行する。
また、アプリは、MFP101が元々備えている機能(例えばコピー機能やファクス送信機能)を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。
一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部420に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部420経由でワークフロー処理部430の指示によって呼び出される。
さらに、機能プロバイダは、後述する機能プロバイダ管理部420が規定するルール(以降「機能プロバイダインターフェース」)を満たすようにプログラミングされている。機能プロバイダインターフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインターフェースである。機能プロバイダインターフェースは、機能プロバイダが提供する機能の種類(以降「
機能タイプ」)ごとに定められている。機能プロバイダは、機能プロバイダインターフェースに基づいてワークフロー処理部430から呼び出される。
機能タイプ」)ごとに定められている。機能プロバイダは、機能プロバイダインターフェースに基づいてワークフロー処理部430から呼び出される。
なお、1つの機能プロバイダは目的に応じて、複数種類のインターフェースを持つ場合がある。例えば、スキャン機能を実現する機能プロバイダであれば、「スキャン設定画面の表示」の目的のためのインターフェースと「スキャンジョブの実行」の目的のためのインターフェースといったように、目的別に複数種類のインターフェースを用意することができる。
また、複数種類の機能プロバイダをMFP101にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類インストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類インストールしてもよい。同じ機能タイプの機能プロバイダは同じソフトウェアインターフェースを持つため、拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
標準スキャンプロバイダ411は、スキャン機能を提供する機能プロバイダ(機能タイプ=スキャン)である。機能タイプが「スキャン」の機能プロバイダを総称してスキャンプロバイダと呼ぶ。スキャンプロバイダは、機能タイプが「スキャン」の機能プロバイダのために定義された機能プロバイダインターフェース(スキャンプロバイダインターフェース)を実現する。標準スキャンプロバイダ411は、一般的なユーザ向けのスキャン設定画面を持つ。また標準スキャンプロバイダ411は、標準スキャンプロバイダ411が正常に機能を提供できるか否かを判断する事前確認機能を持つ。例えば、標準スキャンプロバイダ411は、例えばスキャナI/F217を通じてスキャナ222の接続状況を確認したりする。
組込OCRプロバイダ412とWeb OCRプロバイダ413は、ともにOCR機能を提供する機能プロバイダ(機能タイプ=OCR)である。機能タイプが「OCR」の機能プロバイダを総称してOCRプロバイダと呼ぶ。OCRプロバイダは、機能タイプが「OCR」の機能プロバイダのために定義された機能プロバイダインターフェース(OCRプロバイダインターフェース)を実現する。組込OCRプロバイダ412は、MFP101上で文字認識処理を行うことでOCR機能を提供する。一方、Web OCRプロバイダ413は、外部のWebサーバ(例えばサーバ)が提供する文字認識処理を呼び出すことでOCR機能を提供する。また組込OCRプロバイダ412やWeb OCRプロバイダ413は、組込OCRプロバイダ412やWeb OCRプロバイダ413が正常に機能を提供できるか否かを判断する事前確認機能を持つ。例えば、組込OCRプロバイダ412はスキャナI/F217を通じて画像解析ボードの接続状況を確認したり、画像解析ボードを有効化するために必要なオプションライセンス情報がHDDに保存されているかを確認したりする。また、例えば、Web OCRプロバイダ413は、ネットワークI/F218を通じてサーバ102との接続状態を確認したり、サーバ102でのOCR処理を依頼するのに必要なアカウントが設定されているかを確認したりする。
SMB取得プロバイダ414とBox取得プロバイダ415は、ファイル取得機能を提供する機能プロバイダ(機能タイプ=ファイル取得)である。機能タイプが「ファイル取得」の機能プロバイダを総称してファイル取得プロバイダと呼ぶ。ファイル取得プロバイダは、機能タイプが「ファイル取得」の機能プロバイダのために定義された機能プロバイダインターフェース(ファイル取得プロバイダインターフェース)を実現する。SMB取得プロバイダ414は、ネットワークI/Fを通じて外部のファイルサーバ(例えばサーバ)からSMBプロトコルによりファイルを取得する機能を提供する。一方、Box取得プロバイダ415は、MFP101のHDD上に設けられたファイル格納機能であるBoxからファイルを取得する機能を提供する。またSMB取得プロバイダ414やBox取得プロバイダ415は、SMB取得プロバイダ414やBox取得プロバイダ415が正常に機能を提供できるか否かを判断する事前確認機能を持つ。
例えば、SMB取得プロバイダ414は、ネットワークI/F218を通じてサーバ102への接続状況を確認したり、サーバ102に接続するためのアカウント設定を確認したり、サーバ102に取得すべきファイルが格納されているか確認したりする。
また、例えば、Box取得プロバイダ415は、MFP101上のBox機能を搭載しているかを確認したり、アカウント設定を確認したり、Box上に取得すべきファイルが格納されているか確認したりする。
FAX送信プロバイダ416とメール送信プロバイダ417は、ファイル送信機能を提供する機能プロバイダ(機能タイプ=ファイル送信)である。機能タイプが「ファイル送信」の機能プロバイダを総称してファイル送信プロバイダと呼ぶ。ファイル送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインターフェース(ファイル送信プロバイダインターフェース)を実現する。
FAX送信プロバイダ416は、モデム219を通じて公衆回線網130に接続されている外部のファクスに対してファイルを取得する機能を提供する。一方、メール送信プロバイダ417は、ネットワークI/F218を通じてメールサーバ(例えばサーバ)に対してメール送信を依頼する機能を提供する。またFAX送信プロバイダ416やメール送信プロバイダ417は、FAX送信プロバイダ416やメール送信プロバイダ417が正常に機能を提供できるか否かを判断する事前確認機能を持つ。
例えば、FAX送信プロバイダ416は、モデム219の装着状況を確認したり、モデム219を有効化するためのライセンスがHDD214に格納されているか確認したりする。またFAX送信プロバイダ416は、ファクス送信時に使用する送信元情報の設定を確認したり、モデム219を通じて公衆回線網への接続状況を確認したりする。また、例えば、メール送信プロバイダ417は、ネットワークI/F218を通じてサーバ102への接続状況を確認したり、サーバ102に接続するためのアカウント設定を確認したりする。
各機能プロバイダは、MFP101に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインターフェースを実現する。
以上で説明した411〜417の7つの機能プロバイダは一例であり、MFP101には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
各機能プロバイダは、MFP101に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインターフェースを実現する。
以上で説明した411〜417の7つの機能プロバイダは一例であり、MFP101には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
機能プロバイダ管理部420は、MFP101にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部420は、機能プロバイダ登録部421、機能プロバイダ検索部422、機能プロバイダ情報テーブル423、機能プロバイダインターフェース424定義を持つ。
機能プロバイダ登録部421は、各機能プロバイダからの依頼を受けて、機能プロバイダ情報テーブル423に、各機能プロバイダの機能タイプや設定可能な値などの情報を登録する。機能プロバイダ検索部422は、後述するワークフロー処理部430から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル423の情報をもとに条件に一致する機能プロバイダを特定する。機能プロバイダ検索部422は、検索結果として機能プロバイダを1つに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。機能プロバイダインターフェース定義424は、機能プロバイダインターフェースを定義している。
ワークフロー処理部430は、後述するワークフロー定義ファイル440に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。本発明では、ワークフローとは、複数の機能プロバイダを組み合わせた一連の処理を差すものとする。
ワークフロー定義ファイル440は、ワークフロー処理部430が呼び出す機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義する。なお、図ではワークフロー定義ファイルを例として1つ定義しているが、1つに限定するものではなく、MFP101上に複数のワークフロー定義ファイルが存在してもよい。
図5は、図4に示した機能プロバイダ情報テーブル423の一例を示す図である。
図5において、機能プロバイダ情報テーブル423は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェースなど、機能プロバイダに関する情報を保持する。
図5において、機能プロバイダ情報テーブル423は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェースなど、機能プロバイダに関する情報を保持する。
図6は、本実施形態における機能プロバイダインターフェース定義の例を示す図である。本実施形態では機能プロバイダインターフェースはプログラムのソースコード形式で表現されているが、これに限定されるものではなく、他の形式であってもよい。
図6において、601はスキャンプロバイダインターフェースの定義で、「show Setting UIdo Scan」「do Scan With Setting UI」「pre Check」という4つのインターフェースを定義している。スキャンプロバイダは、で定義している3つのインターフェースを必ず備えている。
「show Setting UI」はスキャン設定画面を表示するためのインターフェースで、Parameterを受け取り、結果をboolean(真偽値)で返す。ユーザがスキャン設定を確定するとtrue(真)を返し、ユーザがスキャン設定をキャンセルするとfalse(偽)を返す。Parameterは、インターフェースを呼び出す際の設定値で、ワークフロー定義ファイル440で定義される。「do Scan」はスキャン実行のためのインターフェースで、Parameterを受け取り、結果をDocumentというデータ形式で返す。「do can」は「show Setting UI」でユーザが設定した値またはParameterで指定された設定値でスキャンを実行する。「do Scan With Setting UI」は、スキャン設定画面を表示後、ユーザが設定画面で確定した値でスキャンを実行する。「pre Check」はスキャン事前情報確認を実行するためのインターフェースで、Parameterを受け取り、結果をCheck Resultという事前確認結果情報の形式で返す。
同様に、602はOCRプロバイダインターフェースの定義、603はファイル取得プロバイダインターフェースの定義、604はファイル送信プロバイダインターフェースの定義である。このように、機能プロバイダインターフェース定義では、各機能プロバイダが備えるインターフェース(名称、入力、出力)を定義している。
図7は、本実施形態におけるワークフロー定義ファイルの具体的な記述例を示す図である。本実施形態ではワークフロー定義ファイルはXML形式のファイルとして表現されているが、XML形式に限定されるものではなく、他の形式のファイルであってもよい。
Workflowタグ700は、以下の記述がワークフローの定義であることを示している。
Workflowタグ700は、以下の記述がワークフローの定義であることを示している。
図7において、FPタグ701は、Workflowタグの子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。FPタグ701のno属性は、ワークフローにおける機能プロバイダの実行順を定義しており、「no="1"」は最初に実行する機能プロバイダであることを示している。FPタグ701のtype属性は、実行する機能プロバイダの機能タイプを定義しており、「type="SCAN"」はスキャンプロバイダであることを示している。
Conditionタグ702は、FPタグ701の子要素で、スキャンプロバイダの検索条件を子要素であるRequiredタグとOptionalタグで定義している。Requiredタグは、検索するスキャンプロバイダの必須条件を定義しており、「DOCUMENT_FORMAT(ファイル形式)」の設定値として「PDF」を設定可能なスキャンプロバイダが必須である旨を示している。Optionalタグは、検索するスキャンプロバイダのオプション条件を定義しており、「ORIGINAL_TYPE(原稿種類)」の設定値として「TEXT」を設定可能なスキャンプロバイダを優先的に使用する旨を示している。
ここで必須条件とオプション条件の違いを説明する。機能プロバイダの検索処理において、必須条件は必ず満たすべき条件であり、必須条件を満たす機能プロバイダが存在しない場合、検索結果は「なし」となる。一方、オプション条件は、オプション条件を満たす機能プロバイダを優先的に使用する条件であり、オプション条件を満たす機能プロバイダが存在しない場合、オプション条件は検索条件から除外される。
Actionタグ703は、FPタグ701の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Actionタグ703のno属性とmethod属性は、FPタグで定義された機能プロバイダの中での実行順と呼び出すインターフェースを定義している。Actionタグ703は、スキャンプロバイダの実行において「do Scan With show Setting UI」を1番目に呼び出す旨を定義している。Parameterタグ704はAction703の子要素であり、Action703で定義されているインターフェース(do Scanith show Setting UI)を呼び出す際に渡す設定値を定めている。Output705タグは、「do Scan」の出力に関する定義であり、type属性で出力形式が「Document」である旨と、id属性で出力データを一意に特定するIDが「foo」である旨を定義している。
FPタグ706は、no属性とtype属性で、2番目に実行する機能プロバイダがOCRプロバイダであることを定義している。Requiredタグは、OCRプロバイダの必須条件を定義しており、「LANG(認識言語)」の設定値として「JA(日本語)」を設定可能なOCRプロバイダが必須である旨を示している。
Actionタグ707は、FPタグ706の子要素であり、OCRプロバイダの実行において「doOCR」を1番目に呼び出す旨を定義している。Inputタグは、「doScan」の入力に関する定義で、「Document」形式のデータをIDが「foo」のデータから受け取ることを示している。つまり、OCRプロバイダは、スキャンプロバイダのスキャンデータをDocument形式で受け取るということを定義している。Outputタグ708は、「doOCR」の出力に関する定義であり、type属性で出力形式が「String」である旨と、id属性で出力データを一意に特定するIDが「bar」である旨を定義している。
FPタグ709は、no属性とid属性で、3番目に実行する機能プロバイダがSMB取得プロバイダ414であることを定義している。FPタグ709は機能プロバイダを、FPタグ701、706のようにtype属性を使って機能タイプで指定することもできるし、FPタグ709のようにid属性を使って一意に指定することもできる。
Actionタグ710は、SMB取得プロバイダ414の実行において「doGet」を2番目に呼び出す旨を定義している。ParameterタグはActionタグ710の子要素であり、Actionタグ710で定義されているインターフェース(doGet)を呼び出す際に渡す設定値を定めている。Output711タグは、「doGet」の出力に関する定義であり、type属性で出力形式が「Document」である旨と、id属性で出力データを一意に特定するIDが「baz」である旨を定義している。
FPタグ712は、no属性とid属性で、番目に実行する機能プロバイダがFAX送信プロバイダ416であることを定義している。Actionタグ713は、FAX送信プロバイダ416の実行において「doSend」を2番目に呼び出す旨を定義している。Inputタグは、FAX送信プロバイダ416の「doSend」呼び出しの入力に関する定義で、「Document」のIDが「baz」のデータを「doGet」の出力から受け取ることを示している。Inputタグは、「Document」のIDが「foo」のデータを「doSend」の出力から受け取ることを示している。さらに、Inputタグは、「String」のIDが「bar」のデータを「doOCR」の出力から受け取ることを示している。
〔第1のシーケンス例〕
図8は、本実施形態におけるMFP101上のワークフロー実行の流れを示したシーケンス図である。
図8において、S801において、ユーザからのワークフロー実行指示をワークフロー処理部430が受け取る。
S802において、ワークフロー処理部430が実行指示に対するワークフロー定義ファイル440を読み込む。ここでは、図で示したワークフロー定義ファイル440のように、まず「機能タイプがSCANの機能プロバイダ」、「機能タイプがOCRの機能プロバイダ」を順に実行するように定義されているものとする。その後「機能プロバイダIDがGET_SMBの機能プロバイダ」、「機能プロバイダIDがSEND_FAXの機能プロバイダ」を順に実行するように定義されているものとする。
図8は、本実施形態におけるMFP101上のワークフロー実行の流れを示したシーケンス図である。
図8において、S801において、ユーザからのワークフロー実行指示をワークフロー処理部430が受け取る。
S802において、ワークフロー処理部430が実行指示に対するワークフロー定義ファイル440を読み込む。ここでは、図で示したワークフロー定義ファイル440のように、まず「機能タイプがSCANの機能プロバイダ」、「機能タイプがOCRの機能プロバイダ」を順に実行するように定義されているものとする。その後「機能プロバイダIDがGET_SMBの機能プロバイダ」、「機能プロバイダIDがSEND_FAXの機能プロバイダ」を順に実行するように定義されているものとする。
S803において、ワークフロー処理部430は、S819で実際にワークフローを開始する前に、機能プロバイダ管理部420に対して、ワークフロー定義ファイルに記載されている機能プロバイダの検索を指示する。ここでは「機能タイプがSCANの機能プロバイダ」、「機能タイプがOCRの機能プロバイダ」、「機能プロバイダIDがGET_SMBの機能プロバイダ」、「機能プロバイダIDがSEND_FAXの機能プロバイダ」の機能プロバイダの検索を指示する。
S804において、機能プロバイダ管理部420は、機能プロバイダ情報テーブル440をもとに検索条件に一致する機能プロバイダを抽出する。本例では、標準スキャンプロバイダ411、組込OCRプロバイダ412、SMB取得プロバイダ414、FAX送信プロバイダ416が抽出されるものとする。
S805において、機能プロバイダ管理部420は、S804での機能プロバイダの検索結果を、ワークフロー処理部430に通知する。
S805において、機能プロバイダ管理部420は、S804での機能プロバイダの検索結果を、ワークフロー処理部430に通知する。
S806において、検索結果を受け取ったワークフロー処理部430は、S805で取得した標準スキャンプロバイダ411に対して、事前確認指示を行う。すなわち、ワークフロー処理部430は、標準スキャンプロバイダ411に対して、機能プロバイダインターフェース定義424のスキャンプロバイダインターフェース601で定義されている「preCheck」メソッドの実行を指示する。
S807において、指示を受け取った標準スキャンプロバイダ411は、事前確認処理を行う。標準スキャンプロバイダ411は、事前確認処理として、スキャナI/F217を通じてスキャナ222の接続状況を確認し、正常にスキャン機能を提供できるか否かを判断する。
S808において、標準スキャンプロバイダ411は、前記S807で判断した事前確認結果を、ワークフロー処理部430に返却する。
S808において、標準スキャンプロバイダ411は、前記S807で判断した事前確認結果を、ワークフロー処理部430に返却する。
S809において、ワークフロー処理部430は、S805で取得した組込OCRプロバイダ412に対して、事前確認指示を行う。すなわち、ワークフロー処理部430は、組込OCRプロバイダ412に対して、機能プロバイダインターフェース定義424のOCRプロバイダインターフェースで定義されている「preCheck」メソッドの実行を指示する。
S810において、指示を受け取った組込OCRプロバイダ412は、事前確認処理を行う。組込OCRプロバイダ412は、事前確認処理として、スキャナI/F217を通じて画像解析ボードの接続状況を確認したり、画像解析ボードを有効化するために必要なオプションライセンス情報がHDD214に保存されているかを確認したりする。そして組込OCRプロバイダ412は、正常に組込OCR機能を提供できるか否かを判断する。S810において、組込OCRプロバイダ412は、前記ステップで判断した事前確認結果を、ワークフロー処理部430に返却する。
S812において、ワークフロー処理部430は、S805で取得したSMB取得プロバイダ414に対して、事前確認指示を行う。すなわち、ワークフロー処理部430は、SMB取得プロバイダ414に対して、機能プロバイダインターフェース定義のファイル取得プロバイダインターフェースで定義されている「preCheck」メソッドの実行を指示する。
S813において、指示を受け取ったSMB取得プロバイダ414は、事前確認処理を行う。SMB取得プロバイダ414は、事前確認処理として、ネットワークI/F218を通じてサーバ102への接続状況を確認し、サーバ102に接続するためのアカウント設定を確認し、サーバ102に取得すべきファイルが格納されているか確認する。そしてSMB取得プロバイダ414は、正常にSMBファイル取得機能を提供できるか否かを判断する。S814において、SMB取得プロバイダ414は、前記S813で判断した事前確認結果を、ワークフロー処理部430に返却する。
S815において、ワークフロー処理部430は、S805で取得したFAX送信プロバイダ416に対して、事前確認指示を行う。すなわち、ワークフロー処理部430は、FAX送信プロバイダ416に対して、機能プロバイダインターフェース定義424のFAX送信プロバイダインターフェース604で定義されている「preCheck」メソッドの実行を指示する。
S816において、指示を受け取ったFAX送信プロバイダ416は、事前確認処理を行う。FAX送信プロバイダ416は、事前確認処理として、モデム219の装着状況を確認し、モデム219を有効化するためのライセンスがHDDに格納されているか確認する。そして、FAX送信プロバイダ416は、正常にFAX送信機能を提供できるか否かを判断する。Sにおいて、FAX送信プロバイダ416は、前記ステップ816で判断した事前確認結果を、ワークフロー処理部430に返却する。
S817において、ワークフロー処理部430は、S808、S811、S814、S817で受信した事前確認結果の中から、NG、すなわち、実行不可の旨を受信した件数が0件より多いかを判断する。ワークフロー処理部430は、NGの件数が0件より大きいと判断した場合は、処理はS818に進み、そうではない場合は、処理はS819に進む。
S818において、ワークフロー処理部430が、S817において、事前確認結果のNGの件数が0より多いと判断した場合に、フローを終了させる。そして処理は終了する。
S818において、ワークフロー処理部430が、S817において、事前確認結果のNGの件数が0より多いと判断した場合に、フローを終了させる。そして処理は終了する。
S819において、ワークフロー処理部430が、S817において、事前確認結果のNGの件数が0より多くないと判断した場合に、フロー処理を実行する。すなわち、ワークフロー処理部430は、標準スキャンプロバイダ411に対してスキャン実行を指示する。
S820において、指示を受けた標準スキャンプロバイダ411は、スキャン処理を実行し、その結果をワークフロー処理部430に対して送信する。S821において、ワークフロー処理部430は、組込OCRプロバイダ412に対してOCR実行を指示する。
S822において、指示を受けた組込OCRプロバイダ412は、組込OCR処理を実行し、その結果をワークフロー処理部430に対して送信する。S823において、ワークフロー処理部430は、SMB取得プロバイダ414に対してSMBファイル取得の実行を指示する。
S824において、指示を受けたSMB取得プロバイダ414は、SMBファイル取得処理を実行し、その結果をワークフロー処理部430に対して送信する。S825において、ワークフロー処理部430は、FAX送信プロバイダ416に対してファクス送信実行を指示する。
S826において、指示を受けたFAX送信プロバイダ416は、ファクス送信処理を実行し、その結果をワークフロー処理部430に対して送信する。S827において、ワークフロー処理部430は、操作部I/F215を通じて、操作部220にフロー処理実行結果を表示する。そして、本処理は終了する。
図9は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、MFP101におけるワークフロー実行処理例である。各ステップは、MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで実現される。
S901において、まずワークフロー処理部430は、ユーザからワークフローの実行指示を受け取る。S902において、ワークフロー処理部430は、実行指示に対応するワークフロー定義ファイルを読み込む。
S901において、まずワークフロー処理部430は、ユーザからワークフローの実行指示を受け取る。S902において、ワークフロー処理部430は、実行指示に対応するワークフロー定義ファイルを読み込む。
S903において、ワークフロー処理部430はワークフロー定義ファイルからFPタグで定義された機能プロバイダの定義を実行順に1つ取り出す。ここで、実行順とは、FPタグのno要素に定義された数字の若い順を意味する。
S904において、ワークフロー処理部430は、次に実行すべき機能プロバイダがあればS905へ進み、次に事前確認を実行すべき機能プロバイダがなければ(最後の機能プロバイダまで取得し終えたら)、処理はS911に進む。
S906において、ワークフロー処理部430は、FPタグから機能プロバイダの検索条件を取得し、機能プロバイダ情報テーブル423から機能プロバイダ情報を検索する。
S906において、ワークフロー処理部430は、FPタグから機能プロバイダの検索条件を取得し、機能プロバイダ情報テーブル423から機能プロバイダ情報を検索する。
S906において、ワークフロー処理部430は機能プロバイダ検索結果を受け取り、検索条件に一致する機能プロバイダがあるかどうかをチェックする。S906において、ワークフロー処理部430は、検索結果に一致する機能プロバイダがあればS907へ処理を進める。ワークフロー処理部430は、検索に一致する機能プロバイダがなければ、S910に処理を進める。S910において、ワークフロー処理部430は、エラーを通知してワークフローの実行処理を終了する。
S907において、ワークフロー処理部430は、S905の検索結果として取得した機能プロバイダの事前確認処理を呼び出す。その際、ワークフロー処理部430は、Actionタグの子要素としてParameterタグの定義に従って、機能プロバイダに入力を与える。
S908において、ワークフロー処理部430によって呼び出された機能プロバイダが、指示に従って処理を実行する。S909において、ワークフロー処理部430は呼び出した機能プロバイダの実行完了を待ち受ける。
S908において、ワークフロー処理部430によって呼び出された機能プロバイダが、指示に従って処理を実行する。S909において、ワークフロー処理部430は呼び出した機能プロバイダの実行完了を待ち受ける。
S911において、ワークフロー処理部430は、S909で取得した事前確認の結果を確認し、事前確認がNG、すなわち実行不可となった件数が0より多いか否かを判断する。ワークフロー処理部430が、NGの件数が0より多いと判断した場合は、処理はS912に進み、事前確認処理結果エラーを通知して処理を終了する。
S913において、ワークフロー処理部430は、実行指示に対応するワークフロー定義ファイル440を再度読み込む。S914において、ワークフロー処理部430は、FPタグから機能プロバイダを取得し、機能プロバイダ情報テーブルから機能プロバイダ情報を取得する。S915において、ワークフロー処理部430は、次に実行すべき機能プロバイダがあればS916へ進み、次に事前確認を実行すべき機能プロバイダがなければ(最後の機能プロバイダまで取得し終えたら)、処理はS922に進む。
S916において、ワークフロー処理部430はワークフロー定義ファイル440から処理対象となっているFPタグの子要素であるActionタグを実行順に1つ取り出す。ここで実行順とは、Actionタグのno要素に定義された数字の若い順を意味する。
S917において、ワークフロー処理部430は、次に処理すべきActionタグ706があればS918へ進み、次に処理すべきActionタグ706がなければ(最後のActionタグ706まで取得し終えたら)S914へ戻る。
918において、ワークフロー処理部430は、Actionタグの定義に従って、S905の検索結果として取得した機能プロバイダを呼び出す。その際、ワークフロー処理部430は、Actionタグの子要素としてParameterタグまたはInputタグが定義されていれば、その定義に従って、機能プロバイダに入力を与える。例えば、ActionタグのInputタグはスキャンプロバイダの「doScan」呼び出しの入力に関する定義で、「Document」をIDが「foo」のデータから受け取ることを示している。
IDが「foo」のデータは、Actionタグ703のOutputタグで定義したファイル取得プロバイダの「doScan」の出力データである。ゆえに、ワークフロー処理部430は、自身が保持している「doScan」の出力データを、「doOCR」の呼び出し時に入力データとして与える。S919において、ワークフロー処理部430によって呼び出された機能プロバイダが、指示に従って処理を実行する。S920において、ワークフロー処理部430は呼び出した機能プロバイダの実行完了を待ち受ける。
S920において、ワークフロー処理部430は、機能プロバイダの出力を、別の機能プロバイダの入力として使用できるようHDD214またはRAM213に保存する。例えば、Actionタグ703のOutputタグはスキャンプロバイダの「doScan」呼び出しの出力に関する定義で、「doScan」の出力である「Document」データを、IDを「foo」として保存する。機能プロバイダの出力を保存したら、ワークフロー処理部430は次の機能プロバイダの定義を取得するために、S916へ処理を進める。
以上のように、前述の第実施形態において説明した手順により、複数の機能プロバイダを組み合わせて一連の処理として実行する手段および一連の処理の前に、ワークフロー処理部430が各機能プロバイダの事前確認処理を指示する。呼び出された機能プロバイダが、指示に応じて各機能プロバイダに応じた事前確認処理を実行し、その結果をワークフロー処理部430に送信する。そしてワークフロー処理部430が事前確認結果に実行不可が無ければ、ワークフローを実行する。これにより、アプリの構成変更が行われた場合でも、ユーザが再度お気に入り設定を行う手間を軽減することができる。これにより、ワークフローアプリと機能プロバイダが疎結合の構成であっても、機能プロバイダに事前確認処理を委譲することで、ユーザからワークフロー実行指示後、実際にジョブ実行する前に事前条件を確認することが可能になる。
〔第2実施形態〕
次に、本発明に係る第2実施形態について説明する。第2実施形態において、機能プロバイダの形態によって、ユーザに対して表示したい事前確認結果の形式を変更したい場合がある。
〔第2実施形態〕
次に、本発明に係る第2実施形態について説明する。第2実施形態において、機能プロバイダの形態によって、ユーザに対して表示したい事前確認結果の形式を変更したい場合がある。
そこで、本実施形態では、機能プロバイダから受信した事前確認結果に応じて、事前確認結果を変更する処理の例を説明する。なお、特に断らない限り、本実施形態について、第1実施形態と同一の番号のブロック図、シーケンス図、フローチャートや処理は、それぞれ第1実施形態の同一番号のブロック図、シーケンス図、フローチャートや処理と同一のものである。
図10は、本実施形態におけるMFP101上で、機能プロバイダ411〜417からワークフロー処理部430に返却される事前確認結果情報を示す図である。
図10は、本実施形態におけるMFP101上で、機能プロバイダ411〜417からワークフロー処理部430に返却される事前確認結果情報を示す図である。
図10の(A)において、事前確認結果情報は、後述の図において、各機能プロバイダからワークフロー処理部430に対して返却される事前確認結果情報である。図10の事前確認結果情報は、機能プロバイダインターフェース情報424の各機能プロバイダインターフェースの事前確認処理を表す「preCheck」メソッドの返し値である「CheckResult」を表す。
本実施形態では、事前確認結果情報はパラメータ形式となっているが、CSV、XMLその他フォーマットの形式のファイルであってもよい。Resultは、事前確認結果のうち、確認結果である実行可能(OK)または実行不可(NG)であることを示す。本実施形態では、事前確認結果の属性は、メッセージ属性(Message)、メソッド属性(Method)、URL属性(URL)に従い通知されるものとする。
Messageは、事前確認結果のうちメッセージ文字列を示す。Methodは、事前確認結果のうち、機能プロバイダが事前確認結果を表示させるためのメソッドをもっていた場合に、事前確認結果を表示する処理を指示するためのメソッド名を示す。URLは、事前確認結果のうち、機能プロバイダが事前確認結果を示すためのWebページがある場合、Webページを表示させるためのURLを示す。
図10の(A)は、事前確認情報のうち、確認結果とメッセージ文字列のみが含まれている例を示す。機能プロバイダにUIが無い場合、例えば組込OCRプロバイダ412の場合、図10の(A)のようなパターンとなる。
図10の(B)は、事前確認情報のうち、確認結果、メッセージ文字列、メソッド名が含まれている例を示す。機能プロバイダにUIが有る場合、例えば標準スキャンプロバイダ411、SMB取得プロバイダ414、Box取得プロバイダ415、FAX送信プロバイダ416、メール送信プロバイダ417の場合、図10の(B)のようなパターンとなる。
図10の(C)は、事前確認情報のうち、確認結果、メッセージ文字列、URLが含まれている例を示す。機能プロバイダにUIは無いが、表示用のWebページが有る場合、例えばWeb OCRプロバイダ413の場合、図10の(C)のようなパターンとなる。
図11は、MFP101内で管理している事前確認結果画面の例を示す図である。本例は、ワークフローで使用する機能プロバイダから応答される事前確認結果に従うエラー通知の詳細通知画面であって、本実施形態では、操作部の操作画面に表示する表示制御例である。
事前確認結果画面は、後述の図16において、事前確認結果を表示するための画面である。事前確認結果画面は、ワークフロー処理部430において、機能プロバイダから受信した、図10の事前確認結果情報に応じて、操作部220に表示する事前確認結果画面の一例である。
図11の(A)は、ワークフロー処理部430が、機能プロバイダから受信した事前確認結果情報が図の(A)の場合に、操作部220に表示する事前確認結果画面である。機能プロバイダ名1101は、事前確認結果がNGとなった機能プロバイダ名を示す。メッセージ1102は、事前確認結果のメッセージ文字列を示す。OKボタン1103は、事前確認結果の確認を終了する際に、ユーザによって押下されるボタンを示す。
図11の(B)は、ワークフロー処理部430が、機能プロバイダから受信した事前確認結果情報が図10の(B)の場合に、操作部に表示する事前確認結果画面である。機能プロバイダ名1111は、事前確認結果がNGとなった機能プロバイダ名を示す。メッセージ1112は、事前確認結果のメッセージ文字列を示す。詳細ボタン1113は、事前確認結果の詳細画面を機能プロバイダに表示させる場合に、ユーザによって押下されるボタンである。詳細ボタン1113がユーザによって押下された場合は、ワークフロー処理部430は、機能プロバイダに対して、図10のmethodタグで示された機能プロバイダのメソッドの実行を指示する。詳細ボタンが押下されると、後述の図12の(A)の詳細画面に遷移する。OKボタン1114は、事前確認結果の確認を終了する際に、ユーザによって押下されるボタンを示す。
図11の(C)は、ワークフロー処理部430が、機能プロバイダから受信した事前確認結果情報が図10の(C)の場合に、操作部220に表示する事前確認結果画面である。機能プロバイダ名1121は、事前確認結果がNGとなった機能プロバイダ名を示す。メッセージ1122は、事前確認結果のメッセージ文字列を示す。詳細ボタン1123は、事前確認結果の詳細画面を機能プロバイダに表示させる場合に、ユーザによって押下されるボタンである。
詳細ボタン1123がユーザによって押下された場合は、ワークフロー処理部430は、図10のURLタグ(取得先)で示されたWebページのHTMLを取得し、操作部220に表示する。詳細ボタン1113が押下されると、後述の図12の(B)の詳細画面に遷移する。OKボタン1124は、事前確認結果の確認を終了する際に、ユーザによって押下されるボタンを示す。
図12は、図1に示したMFP101内で管理している詳細結果画面を示す図である。
図12は、図1に示したMFP101内で管理している詳細結果画面を示す図である。
図12において、詳細結果画面1200は、後述の図16において、事前確認結果の詳細情報を表示するための画面である。事前確認結果画面1100は、機能プロバイダ、または、ワークフロー処理部430において、図10の事前確認結果情報に応じて、操作部220に表示する詳細結果画面の一例である。
図12の(A)は、ワークフロー処理部430が、機能プロバイダから受信した事前確認結果情報が図10の(B)の場合で、図11の(B)で詳細ボタンが押下された場合に、機能プロバイダによって操作部220に表示される詳細結果画面である。詳細結果画面1201は、ワークフロー処理部430が機能プロバイダから受信した事前確認結果情報が図10の(B)であった場合に、methodで示されたメソッドが実行された際に機能プロバイダが実行して表示する画面である。OKボタン1202は、事前確認結果の確認を終了する際に、ユーザによって押下されるボタンを示す。
図12の(B)は、ワークフロー処理部430が、機能プロバイダから受信した事前確認結果情報が図10の(C)の場合に、図11の(C)で詳細ボタン1123が押下された場合に、ワークフロー処理部430が操作部220に表示する詳細結果画面である。
詳細結果画面1211は、ワークフロー処理部430が機能プロバイダから受信した事前確認結果情報が図10の(C)であった場合に、URLで示されたWebページのHTMLを、ワークフロー処理部430が取得し表示する画面である。Web画面1212は、ワークフロー処理部430がURLから取得したHTMLを埋め込んで表示する画面を示す。OKボタン1213は、事前確認結果の確認を終了する際に、ユーザによって押下されるボタンを示す。
〔第2のシーケンス例〕
〔第2のシーケンス例〕
図13は、本実施形態におけるMFP101上のワークフロー実行の流れを示したシーケンス図である。本例は、図8で示した処理のうち、事前確認結果に応じて事前確認結果表示処理を行う処理例である。なお、図13の処理のうち、図8と同一の番号の処理は、それぞれ図8の処理と同一のものである。
図13において、S1301は、ワークフロー処理部430が、S808、S811、S814、S817で、図10の形式で事前確認結果情報を受信した際の処理である。S1301は、ワークフロー処理部430が、S808、S811、S814、S817で受信した事前確認結果情報に応じて、結果表示処理を行う。処理の詳細は図15で説明する。
図14は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、MFP101におけるワークフロー実行処理例である。各ステップは、MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで実現される。すなわち、図14は、本実施形態におけるMFP101上で、図9のフローチャートで示した処理に対して、事前確認結果に応じて事前確認結果表示処理を行う処理の流れを示す。なお、図の処理のうち、図9と同一の番号の処理は、それぞれ図9の処理と同一のものである。
S1401は、ワークフロー処理部430が、S909で、図の形式で事前確認結果情報を受信した際の処理である。S1401は、ワークフロー処理部430が、S909で受信した事前確認結果情報に応じて、結果表示処理を行う。処理の詳細は図15で説明する。
図15は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、MFP101における、S1301、S1401の事前確認結果表示処理例である。なお、各ステップは、MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで実現される。
S1501において、ワークフロー処理部430が、変数iの値がS909で受信した事前確認結果の件数以下であるか否かを判断する。なお、変数iの初期値は0である。ワークフロー処理部430が変数iの値が事前確認結果の件数以下であると判断した場合は、処理はS1502に進み、そうではないと判断した場合は、処理はS1510に進む。
S1502において、ワークフロー処理部430が、S909で受信した事前確認結果情報のうちi番目の結果情報を取り出す。
S1502において、ワークフロー処理部430が、S909で受信した事前確認結果情報のうちi番目の結果情報を取り出す。
S1503において、ワークフロー処理部430が取り出した事前確認結果の、Result(結果)の値がNG(実行不可)であるか否かを判断する。ワークフロー処理部430が取り出した事前確認結果のResultの値がNGであると判断した場合は、処理はS1504に進み、そうではない場合は、処理はS1509に進む。
S1504において、ワークフロー処理部430が取り出した事前確認結果の、Message(メッセージ文字列)の値が含まれているか否かを判断する。ワークフロー処理部430が、取り出した文字情報である事前確認結果のMessageの値が含まれていると判断した場合は、処理はS1505に進み、そうではないと判断した場合は、処理はS1506に進む。
S1505において、ワークフロー処理部430が、図11の確認結果画面に対して、事前確認結果情報から取り出したMessageの値を追加する。
S1505において、ワークフロー処理部430が、図11の確認結果画面に対して、事前確認結果情報から取り出したMessageの値を追加する。
S1506において、ワークフロー処理部430が取り出した事前確認結果の、Method(詳細画面のメソッド名)の値が含まれているか否かを判断する。ワークフロー処理部430が、取り出した事前確認結果のMethodの値が含まれていると判断した場合は、処理はS1508に進み、そうではない場合は、処理はS1507に進む。
S1507において、ワークフロー処理部430が取り出した事前確認結果の、URL(詳細画面のWebページのURL)の値が含まれているか否かを判断する。ワークフロー処理部430が、取り出した事前確認結果のURLの値が含まれていると判断した場合は、処理はS1508に進み、そうではない場合は、処理はS1509に進む。
S1508において、ワークフロー処理部430が、図11の確認結果画面に対して、詳細ボタンを追加する。S1509において、ワークフロー処理部430が、変数iの値に1を加算し、処理はS1509に進む。
S1508において、ワークフロー処理部430が、図11の確認結果画面に対して、詳細ボタンを追加する。S1509において、ワークフロー処理部430が、変数iの値に1を加算し、処理はS1509に進む。
S1510においては、ワークフロー処理部430が、事前確認結果のNG(実行不可)の件数が0よりも多いか否かを判断する。ワークフロー処理部430が、事前確認結果のNG(実行不可)の件数が0よりも多いと判断した場合は、処理はS1511に進み、そうではない場合は、処理を終了する。
S1511においては、ワークフロー処理部430が事前確認結果画面を表示する処理を行う。処理の詳細は図16で説明する。
図15の処理の結果、ワークフロー処理部430が受信した事前確認結果情報が図10の(A)の場合には、図11の(A)のようなエラー内容であるメッセージ文字列1101を表示する事前確認結果画面1110が作成される。
S1511においては、ワークフロー処理部430が事前確認結果画面を表示する処理を行う。処理の詳細は図16で説明する。
図15の処理の結果、ワークフロー処理部430が受信した事前確認結果情報が図10の(A)の場合には、図11の(A)のようなエラー内容であるメッセージ文字列1101を表示する事前確認結果画面1110が作成される。
図15の処理の結果、ワークフロー処理部430が受信した事前確認結果情報が図10の(B)の場合には、図11の(B)のようなメッセージ文字列と詳細ボタンを表示する事前確認結果画面が作成される。図15の処理の結果、ワークフロー処理部430が受信した事前確認結果情報が図10の(C)の場合には、図11の(C)のようなメッセージ文字列と詳細ボタンを表示する事前確認結果画面が作成される。
図16は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、MFP101における、S1511の事前確認結果画面の表示処理の詳細例である。各ステップは、MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで実現される。
S1601において、ワークフロー処理部430が図15で作成した事前確認結果画面を、操作部I/F215を通じて操作部220を表示制御することで表示する。
S1601において、ワークフロー処理部430が図15で作成した事前確認結果画面を、操作部I/F215を通じて操作部220を表示制御することで表示する。
S1602において、ワークフロー処理部430が表示した事前確認結果画面1100上で、ユーザによって詳細ボタンが押下されたか否かを判断する。ワークフロー処理部430が表示した事前確認結果画面1100上で、ユーザによって詳細ボタンが押下されたと判断した場合は、処理はS1603に進み、そうではない場合はS1611に進む。
S1603において、ワークフロー処理部430がS1602で押下された詳細ボタンに対応する事前確認結果にMethodが含まれているか否かを判断する。ワークフロー処理部430がS1602で押下された詳細ボタンに対応する事前確認結果にMethodが含まれていると判断した場合は、処理は1604に進み、そうではない場合は、処理はS1607に進む。
S1604において、ワークフロー処理部430が事前確認結果に基づき、機能プロバイダに対してメソッドを実行指示する。すなわち、ワークフロー処理部430が、機能プロバイダの、事前確認結果のMethodで示された詳細結果表示用のメソッドを実行指示する。なお、事前確認結果のMethodは、通知されたエラー内容に従い、ユーザがエラー解除する操作指示情報に対応づけられている。
S1605において、ワークフロー処理部430からの指示に基づき、機能プロバイダが、事前確認結果のMethodに対応する詳細結果表示用のメソッドを実行する。機能プロバイダの詳細結果表示処理によって、操作部220には図12の(A)の詳細結果画面1201のような画面が表示制御により表示される。そして、機能プロバイダがユーザによってOKボタン1202が押下されたことを確認すると、ワークフロー処理部430に対して処理完了を通知する。S1606において、ワークフロー処理部430が機能プロバイダの処理完了を待ち受ける。そして処理はS1610に進む。
S1607において、ワークフロー処理部430がS1602で押下された詳細ボタンに対応する事前確認結果にURLが含まれているか否かを判断する。ワークフロー処理部430がS1602で押下された詳細ボタンに対応する事前確認結果にURLが含まれていると判断した場合は、処理はS1608に進み、そうではない場合は、処理はS1602に進む。
S1608において、ワークフロー処理部430が、ネットワークI/F218を通じて、事前確認結果のURLに対応する詳細結果表示用のWebサーバ(例えばサーバ102)にアクセスし、URLに対応するHTMLを取得する。
S1609において、ワークフロー処理部430が、S1608において取得したHTMLを埋め込んだ詳細結果画面を表示する。すなわち、ワークフロー処理部430は、図12の(B)のように、詳細結果画面1211のWebページに対して、S1608で取得したHTMLを埋め込む。そして、ワークフロー処理部430は、操作部I/F215を通じて操作部220に、詳細結果画面を表示させる。
S1610において、ワークフロー処理部430は、S1609で表示させた詳細結果画面上のOKボタン1213又はS1605で表示された詳細結果画面上のOKボタンが押下されたか否かを判断する。ワークフロー処理部430は、S1609又はS1605で表示させた詳細結果画面上のOKボタン1213、1202が押下されたと判断した場合は、処理はS1602に進み、そうではない場合は、処理はS1610に戻る。
S1611において、ワークフロー処理部430が、事前確認結果画面1100上でOKボタン1103、OKボタン1114、OKボタン1124のいずれかが押下されたか否かを判断する。ワークフロー処理部430が、事前確認結果画面上でOKボタン1103、OKボタン1114、OKボタン1124のいずれかが押下されたと判断した場合は、処理は終了し、そうではない場合は、処理はS1602に戻る。
以上、前述の第2実施形態において説明した手順により、機能プロバイダの実装形態に応じてワークフローアプリが表示手段を適切に判断することで、ユーザに対して、事前確認結果を適切に通知することができる。すなわち、機能プロバイダが事前確認結果としてメッセージ文字列のみ返す場合は、ワークフロー処理部430は、メッセージ文字列を表示する事前確認結果画面を表示する。機能プロバイダが事前確認結果としてメッセージ文字列と機能プロバイダの詳細結果画面表示用のメソッド名を返す場合は、ワークフロー処理部430は、メッセージ文字列と詳細ボタンを表示する事前確認結果画面を表示する。
さらにワークフロー処理部430は詳細ボタンが押下された際に、機能プロバイダの詳細結果画面表示用のメソッドを実行し、詳細結果画面表示処理を機能プロバイダに移譲する。さらに、機能プロバイダが事前確認結果としてメッセージ文字列と詳細結果画面を表すWebページのURLを返す場合は、ワークフロー処理部430は、メッセージ文字列と詳細ボタンを表示する事前確認結果画面を表示する。
さらに、ワークフロー処理部430は、詳細ボタンが押下された際に、URLにアクセスして取得したHTMLを取得して、取得したHTMLを埋め込んだ詳細結果画面を表示する。これらにより、機能プロバイダの実装形態に応じてワークフローアプリが表示手段を適切に判断し、ユーザに対して、事前確認結果を適切に通知することができる。
本発明は、上述の実施形態の以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、以上の機能を実現する回路(例えばASIC)によっても実現可能である。
101 MFP
102 サーバ
102 サーバ
Claims (10)
- 所定のジョブを実行する情報処理装置であって、
特定の機能処理を実行する機能プロバイダを用いて所定のジョブワークフロー定義ファイルに記載されたワークフローを実行する実行手段と、
前記所定のジョブを実行する前に、前記ワークフローで使用される各機能プロバイダに対して、機能プロバイダが正常に動作する状態であるかを確認する確認要求を行う要求手段と、
前記要求手段による確認要求に対する各機能プロバイダから応答される事前確認結果にエラー通知が含まれているかどうかを判断する判断手段と、
各機能プロバイダからの事前確認結果にエラー通知が含まれていると判断した場合、対応する機能プロバイダの事前確認結果を通知する通知手段と、
を備えることを特徴とする情報処理装置。 - 各機能プロバイダから応答される事前確認結果にエラー通知が含まれていないと判断した場合、前記実行手段は、特定の機能処理を実行する機能プロバイダを用いて所定のジョブワークフロー定義ファイルに記載されたワークフローを開始させることを特徴とする請求項1に記載の情報処理装置。
- 前記通知手段は、
各機能プロバイダから応答される事前確認結果にエラー通知が含まれていると判断した場合、エラー内容を解析して詳細通知画面を操作画面に表示する第1の表示制御手段を備えることを特徴とする請求項1に記載の情報処理装置。 - 前記通知手段は、
各機能プロバイダから応答される事前確認結果にエラー通知が含まれていると判断した場合、エラー内容で特定される取得先から詳細通知画面を取得する手段と、
前記取得手段が取得した詳細通知画面を操作画面に表示する第2の表示制御手段を備えることを特徴とする請求項1に記載の情報処理装置。 - 前記第1の表示制御手段は、前記事前確認結果に含まれる文字情報を用いて詳細通知画面を表示することを特徴とする請求項3に記載の情報処理装置。
- 前記第2の表示制御手段は、前記事前確認結果にエラーを解除する操作指示情報が含まれている場合、当該操作指示情報を取得して表示するためのボタンを詳細通知画面に表示することを特徴とする請求項4に記載の情報処理装置。
- 前記第2の表示制御手段は、前記事前確認結果の取得先を特定する情報が含まれている場合、当該取得先を特定する情報を表示するためのボタンを詳細通知画面に表示することを特徴とする請求項4に記載の情報処理装置。
- 前記事前確認結果の属性は、メッセージ属性、メソッド属性、URL属性であることを特徴とする請求項1に記載の情報処理装置。
- 所定のジョブを実行する情報処理装置の制御方法であって、
特定の機能処理を実行する機能プロバイダを用いて所定のジョブワークフロー定義ファイルに記載されたワークフローを実行する実行工程と、
前記所定のジョブを実行する前に、前記ワークフローで使用される各機能プロバイダに対して、機能プロバイダが正常に動作する状態であるかを確認する確認要求を行う要求工程と、
前記要求工程による確認要求に対する各機能プロバイダから応答される事前確認結果にエラー通知が含まれているかどうかを判断する判断工程と、
各機能プロバイダからの事前確認結果にエラー通知が含まれていると判断した場合、対応する機能プロバイダの事前確認結果を通知する通知工程と、
を備えることを特徴とする情報処理装置の制御方法。 - 請求項9に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016070912A JP2017182573A (ja) | 2016-03-31 | 2016-03-31 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016070912A JP2017182573A (ja) | 2016-03-31 | 2016-03-31 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017182573A true JP2017182573A (ja) | 2017-10-05 |
Family
ID=60006205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016070912A Pending JP2017182573A (ja) | 2016-03-31 | 2016-03-31 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017182573A (ja) |
-
2016
- 2016-03-31 JP JP2016070912A patent/JP2017182573A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101880342B1 (ko) | 정보 처리 시스템, 정보 처리 장치, 그 제어 방법, 및 기억 매체 | |
JP6499423B2 (ja) | 情報処理システム、情報処理装置、及びその制御方法とプログラム | |
US20080263071A1 (en) | Systems and methods for driverless imaging of documents | |
JP2010021896A (ja) | 情報処理装置と画像入力装置、文書配信システムとそれらの制御方法 | |
JP2012088838A (ja) | 情報処理装置、情報処理装置を制御する制御方法、およびそのプログラム | |
EP2942911A1 (en) | Information processing apparatus, information processing system, and method | |
JP7328067B2 (ja) | 印刷装置、印刷システム | |
JP5586968B2 (ja) | 画像形成装置、デバイス連携システム、サービス提供方法、およびそのプログラム | |
JP2004288026A (ja) | サービス処理システム、サービス処理システムの処理結果確認方法、及びサービス処理プログラム | |
JP6451053B2 (ja) | 情報処理プログラム、情報処理装置、および情報処理装置の制御方法 | |
JP2012014280A (ja) | 情報送信装置、情報送信装置の制御方法及びコンピュータプログラム | |
CN102377816A (zh) | 图像形成装置及信息处理方法 | |
JP7321827B2 (ja) | 情報処理装置の制御方法、印刷設定アプリケーション、ならびに情報処理装置 | |
JP2016099813A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP2017168028A (ja) | 情報処理装置、印刷プラグイン、印刷システム及び制御方法 | |
JP7302181B2 (ja) | 情報処理システム及び情報処理方法 | |
JP6192433B2 (ja) | 情報処理端末、情報処理端末の制御方法およびプログラム | |
JP2015064760A (ja) | 画像処理システム、画像処理方法、及びプログラム | |
JP2014229026A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2008211747A (ja) | 画像処理装置、サーバ装置、タスク処理方法、記憶媒体、プログラム | |
EP3723355B1 (en) | Information processing system, method and program | |
JP2017182573A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP2022069899A (ja) | 画像形成装置、画像形成装置の制御方法、及びプログラム | |
JP2017073035A (ja) | 情報処理装置およびその制御方法 | |
JP2017136780A (ja) | 画像形成装置及びその制御方法、画像形成装置のサポートシステム及びその制御方法、並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20180306 |