JP2018185685A - 情報処理装置およびその制御方法およびプログラム - Google Patents
情報処理装置およびその制御方法およびプログラム Download PDFInfo
- Publication number
- JP2018185685A JP2018185685A JP2017087592A JP2017087592A JP2018185685A JP 2018185685 A JP2018185685 A JP 2018185685A JP 2017087592 A JP2017087592 A JP 2017087592A JP 2017087592 A JP2017087592 A JP 2017087592A JP 2018185685 A JP2018185685 A JP 2018185685A
- Authority
- JP
- Japan
- Prior art keywords
- workflow
- condition
- provider
- workflow definition
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】複数の拡張ソフトを組み合わせたワークフローの編集を容易化する。
【解決手段】ワークフローの変更条件が設定されると、それを格納する。その際に、ワークフロー定義情報を、設定された変更条件にしたがって編集する。
【選択図】図13
【解決手段】ワークフローの変更条件が設定されると、それを格納する。その際に、ワークフロー定義情報を、設定された変更条件にしたがって編集する。
【選択図】図13
Description
本発明は、たとえば画像形成装置等においてワークフローを実行するための情報処理装置およびその制御方法およびプログラムに関する。
近年、オフィスに設置される画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張される機能(以降、拡張機能)は、ソフトウェアプログラム(以降、拡張ソフト)によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしてはキヤノン株式会社のMEAP(登録商標)などがあげられる。
また、ユーザが選択した拡張ソフトを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている(例えば、特許文献1)。特にある目的に応じて、特定の入力から出力を行うように作られた拡張ソフトは、アプリケーションソフトウェア(以降、アプリ)と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで入力から出力までの一連の処理(以降、ワークフロー)を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。また、ワークフローを定義する手段として、定義を示した情報が用いられ、実行装置においてそれらワークフローの定義に基づいた処理が実施される。ワークフローは、サービスの処理を組み合わせたワークフローを定義した情報(定義ファイル)を用いて、画像形成装置上の複数の機能を連結するよう構成されている。
ユーザにワークフローが導入された後、ワークフローの一部分に処理の追加/変更/削除を行う場合、ワークフローの定義ファイルを編集する必要がある。複数のワークフローが導入されている場合は、複数のワークフローの定義ファイルを編集することはユーザにとって手間となる。また、ワークフローの編集において、XMLなどを編集するには、編集者にとって大きな手間となる。
本発明は上記従来例に鑑みて成されたもので、既存のワークフローの編集を容易に行うための技術を提供することを目的とする。
上記目的を達成するために本発明は以下の構成を有する。
一連の拡張プログラムを含むワークフローを定義したワークフロー定義情報(443から446)を管理するためのワークフロー管理手段(440)と、
前記ワークフロー定義情報に従って前記拡張プログラムを実行するためのワークフロー実行手段(430)とを有し、
前記ワークフロー管理手段は、前記ワークフロー定義情報の内容を変更するための条件に従って、前記ワークフロー定義情報の編集を行うことを特徴とする情報処理装置。
前記ワークフロー定義情報に従って前記拡張プログラムを実行するためのワークフロー実行手段(430)とを有し、
前記ワークフロー管理手段は、前記ワークフロー定義情報の内容を変更するための条件に従って、前記ワークフロー定義情報の編集を行うことを特徴とする情報処理装置。
本発明によれば、ワークフローの編集を容易に行うことができる。それによりワークフロー編集の誤りを減少させ、また生産性を向上させることができる。
[第一実施形態]
以下、本発明を実施するための第一の実施形態について図面を用いて説明する。図1は、本発明の実施形態における、画像処理システムの構成を示す図である。本システムは、LAN110を介して接続されるMFP101と、端末となるPC(コンピューター)102とから構成される。LAN110上の装置は相互に通信可能である。MFP101は、スキャナ、プリンタを有する画像形成装置である。加えて、装置上で動作する拡張ソフト(拡張ソフトウェアあるいはアプリケーションあるいは拡張プログラムとも呼ぶ)を追加、実行させるためのソフトウェアプラットホームを持つ。PC102は情報処理装置であり、MFP101に対して、設定や拡張ソフトの追加、削除などを行うためのPCである。また、LAN110はWANなどの外部ネットワークとも接続されていても良い。図1の画像処理システムは、拡張ソフトによって定義されるワークフローを実行する。そのためワークフロー処理システムと呼ぶこともある。また、より一般的に情報処理システムと呼ぶこともある。
以下、本発明を実施するための第一の実施形態について図面を用いて説明する。図1は、本発明の実施形態における、画像処理システムの構成を示す図である。本システムは、LAN110を介して接続されるMFP101と、端末となるPC(コンピューター)102とから構成される。LAN110上の装置は相互に通信可能である。MFP101は、スキャナ、プリンタを有する画像形成装置である。加えて、装置上で動作する拡張ソフト(拡張ソフトウェアあるいはアプリケーションあるいは拡張プログラムとも呼ぶ)を追加、実行させるためのソフトウェアプラットホームを持つ。PC102は情報処理装置であり、MFP101に対して、設定や拡張ソフトの追加、削除などを行うためのPCである。また、LAN110はWANなどの外部ネットワークとも接続されていても良い。図1の画像処理システムは、拡張ソフトによって定義されるワークフローを実行する。そのためワークフロー処理システムと呼ぶこともある。また、より一般的に情報処理システムと呼ぶこともある。
<MFPのハードウェア構成>
図2は、本発明の実施形態における、MFPのハードウェア構成を示すブロック図である。CPU211を含む制御部210は、MFP101全体の動作を制御する。CPU211は、ROM212やHDD214に記憶された制御プログラムやアプリケーションなどの拡張ソフトウェアを読み出して読取制御や送信制御などの各種制御処理あるいはアプリケーション処理を実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD214は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。
図2は、本発明の実施形態における、MFPのハードウェア構成を示すブロック図である。CPU211を含む制御部210は、MFP101全体の動作を制御する。CPU211は、ROM212やHDD214に記憶された制御プログラムやアプリケーションなどの拡張ソフトウェアを読み出して読取制御や送信制御などの各種制御処理あるいはアプリケーション処理を実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD214は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。
操作部I/F215は、操作部219と制御部210とを接続する。操作部219には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。プリンタI/F216は、プリンタ220と制御部210とを接続する。プリンタ220で印刷すべき画像データはプリンタI/F216を介して制御部210からプリンタ220に転送され、プリンタ220において記録媒体上に印刷される。スキャナI/F217は、スキャナ221と制御部210とを接続する。スキャナ221は、原稿上の画像を読み取って画像データを生成し、スキャナI/F217を介して制御部210に入力する。ネットワークI/F218は、制御部210(MFP101)をLAN110に接続する。ネットワークI/F218は、LAN110上またはWAN120上の他の装置との間で各種情報を送受信する。
<PCのハードウェア構成>
図3は、本発明の実施形態における、PC102のハードウェア構成を示すブロック図である。CPU311を含む制御部310は、PC102全体の動作を制御する。CPU311は、ROM312やHDD314に記憶された制御プログラムを読み出して各種制御処理を実行する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、各種のプログラムやデータを記憶する。
図3は、本発明の実施形態における、PC102のハードウェア構成を示すブロック図である。CPU311を含む制御部310は、PC102全体の動作を制御する。CPU311は、ROM312やHDD314に記憶された制御プログラムを読み出して各種制御処理を実行する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、各種のプログラムやデータを記憶する。
表示部I/F315は、表示部318と制御部310とを接続する。キーボードI/F316は、キーボード319と制御部310とを接続する。CPU311は、キーボード319を介したユーザからの指示を認識し、認識した指示に応じて表示部318に表示する画面を遷移させる。
ネットワークI/F317は、制御部310(サーバ102)をLAN110に接続する。ネットワークI/F317は、LAN110上の他の装置との間で各種情報を送受信する。
<MFPのソフトウェア構成>
図4は、本発明の第一の実施形態における、MFPのソフトウェア構成を示すブロック図である。MFP101のHDD214に記憶されているプログラム(ソフトウェア)を、CPU211がRAM213に読み出し、解析、実行することで、後述の処理が実行される。それによって図4に示した各機能ブロックが実現される。なおMFP101のソフトウェア機能ブロックはこれに限らず、ハードウェアを制御するための制御プログラムや、PC102等のWebブラウザからのアクセスに応じてサービスするWebサーバ等も備えている。
図4は、本発明の第一の実施形態における、MFPのソフトウェア構成を示すブロック図である。MFP101のHDD214に記憶されているプログラム(ソフトウェア)を、CPU211がRAM213に読み出し、解析、実行することで、後述の処理が実行される。それによって図4に示した各機能ブロックが実現される。なおMFP101のソフトウェア機能ブロックはこれに限らず、ハードウェアを制御するための制御プログラムや、PC102等のWebブラウザからのアクセスに応じてサービスするWebサーバ等も備えている。
●拡張ソフト管理部
拡張ソフト管理部410は、MFP101上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図4では、拡張ソフトとして7つの拡張ソフト411〜417が機能プロバイダとしてMFP101にインストールされている。機能プロバイダは、拡張ソフトの一種であるが、アプリケーション(アプリ)ではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは入力なら入力、出力なら出力といった特定の機能を提供する拡張ソフトであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。例えば、「スキャンしてプレビュー表示の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」「プレビュー」「送信」の3つの機能をひとつのアプリで実現する。一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の3つの機能プロバイダが必要になる。さらに、それら3つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部430が必要になる。
拡張ソフト管理部410は、MFP101上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図4では、拡張ソフトとして7つの拡張ソフト411〜417が機能プロバイダとしてMFP101にインストールされている。機能プロバイダは、拡張ソフトの一種であるが、アプリケーション(アプリ)ではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは入力なら入力、出力なら出力といった特定の機能を提供する拡張ソフトであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。例えば、「スキャンしてプレビュー表示の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」「プレビュー」「送信」の3つの機能をひとつのアプリで実現する。一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の3つの機能プロバイダが必要になる。さらに、それら3つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部430が必要になる。
また、アプリは、MFP101が元々備えている機能(例えばコピー機能やファクス送信機能)を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部420に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部420経由でワークフロー処理部430の指示によって呼び出される。
さらに、機能プロバイダは、機能プロバイダ管理部420が規定するルール(以降、機能プロバイダインターフェース)を満たすようにプログラミングされている。機能プロバイダインターフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインターフェースである。機能プロバイダインターフェースは、機能プロバイダが提供する機能の種類(以降、機能タイプ)ごとに定められている。機能プロバイダは、機能プロバイダインターフェースに基づいてワークフロー処理部430から呼び出される。
なお、1つの機能プロバイダは目的に応じて、複数種類のインターフェースを持つ場合がある。例えば、スキャン機能を実現する機能プロバイダであれば、「スキャン設定画面の表示」の目的のためと「スキャンジョブの実行」の目的のためといったように、目的別に複数種類のインターフェースを用意することができる。また、複数種類の機能プロバイダをMFP101にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類インストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類インストールしてもよい。同じ機能タイプの機能プロバイダは同じ機能プロバイダインターフェースを持つため、拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
標準スキャンプロバイダ411と簡単スキャンプロバイダ412は、ともにスキャン機能を提供する機能プロバイダ(機能タイプ=スキャン)である。機能タイプが「スキャン」の機能プロバイダを総称してスキャンプロバイダと呼ぶ。スキャンプロバイダは、機能タイプが「スキャン」の機能プロバイダのために定義された機能プロバイダインターフェース(スキャンプロバイダインターフェース)を実現する。標準スキャンプロバイダ411は、一般的なユーザ向けのスキャン設定画面を持つ。一方、簡単スキャンプロバイダ412は、MFP101の操作に不慣れな初心者向けのスキャン設定画面を持つ。
組込OCRプロバイダ413とWeb OCRプロバイダ414は、ともにOCR機能を提供する機能プロバイダ(機能タイプ=OCR)である。機能タイプが「OCR」の機能プロバイダを総称してOCRプロバイダと呼ぶ。OCRプロバイダは、機能タイプが「OCR」の機能プロバイダのために定義された機能プロバイダインターフェース(OCRプロバイダインターフェース)を実現する。組込OCRプロバイダ413は、MFP101上で文字認識処理を行うことでOCR機能を提供する。一方、Web OCRプロバイダ414は、外部のWebサーバ(例えばPC102が有するWebサーバの機能、またはWANに接続されたWebサーバ)が提供する文字認識処理を、Webブラウザー450を介して呼び出すことでOCR機能を提供する。
SMB送信プロバイダ415は、送信機能を提供する機能プロバイダ(機能タイプ=ファイル送信)である。SMB送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインターフェース(ファイル送信プロバイダインターフェース)を実現する。SMB送信プロバイダ415は、たとえばFTPなどのファイル転送プロトコルにしたがってファイルを送信する。
E−mail送信プロバイダ416は、送信機能を提供する機能プロバイダ(機能タイプ=ファイル送信)である。E−mail送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインターフェース(ファイル送信プロバイダインターフェース)を実現する。E−mail送信プロバイダ416は、たとえばSMTPなどのメール送信プロトコルに従ってファイルを送信する。
プレビュープロバイダ417は、スキャン機能を提供する機能プロバイダ(機能タイプ=スキャン)によって生成された画像を、操作部219に表示するプレビュー機能を提供する機能プロバイダ(機能タイプ=プレビュー)である。プレビュープロバイダは、機能タイプが「プレビュー」の機能プロバイダのために定義された機能プロバイダインターフェース(プレビュープロバイダインターフェース)を実現する。
以上で説明した411〜417の7つの機能プロバイダは一例であり、MFP101には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
●機能プロバイダ管理部
機能プロバイダ管理部420は、MFP101にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部420は、機能プロバイダ登録部421、機能プロバイダ検索部422、機能プロバイダ情報テーブル423、及び機能プロバイダI/F情報テーブル424を持つ。
機能プロバイダ管理部420は、MFP101にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部420は、機能プロバイダ登録部421、機能プロバイダ検索部422、機能プロバイダ情報テーブル423、及び機能プロバイダI/F情報テーブル424を持つ。
機能プロバイダ登録部421は、各機能プロバイダからの依頼を受けて、機能プロバイダ情報テーブル423に、各機能プロバイダの機能タイプや設定可能な値などの情報を登録する。各機能プロバイダはMFPにインストールされ実行状態になった時に機能プロバイダ登録部421に対して自身の登録を行う。
機能プロバイダ検索部422は、後述するワークフロー処理部430から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル423の情報をもとに機能プロバイダを特定する。機能プロバイダ検索部423は、検索結果として機能プロバイダをひとつに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。
機能プロバイダ情報テーブル423は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェース、機能プロバイダに設定可能な値、WF定義情報など、機能プロバイダに関する情報を保持する。
機能プロバイダI/F情報テーブル424は、機能プロバイダの機能タイプID、機能タイプの名称、機能プロバイダインターフェース、設定インターフェース、実行インターフェース、共通インターフェースなど、機能プロバイダインターフェースに関する情報を保持する。
●ワークフロー処理部
ワークフロー処理部430は、後述するワークフロー定義ファイル445、446に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。このワークフロー定義ファイルに定義された一連の処理をワークフローと呼ぶ。またワークフロー定義ファイルのことをワークフロー定義情報と呼ぶ場合もある。
ワークフロー処理部430は、後述するワークフロー定義ファイル445、446に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。このワークフロー定義ファイルに定義された一連の処理をワークフローと呼ぶ。またワークフロー定義ファイルのことをワークフロー定義情報と呼ぶ場合もある。
●ワークフロー管理部
ワークフロー管理部440は、ワークフロー定義ファイルの管理を実施する。具体的には、ワークフロー定義ファイルのインストール、アンインストール、またはワークフローの編集条件を、設定UI442を介してユーザから受け付け、管理する。
ワークフロー管理部440は、ワークフロー定義ファイルの管理を実施する。具体的には、ワークフロー定義ファイルのインストール、アンインストール、またはワークフローの編集条件を、設定UI442を介してユーザから受け付け、管理する。
ワークフロー編集条件テーブル441は、ワークフローを変更するための条件を管理するテーブルである。具体的には、ワークフローを変更するための処理条件と、変更する処理内容、及び設定項目等を管理する。ワークフロー編集条件テーブル441に設定される各種情報は設定UI442を介してユーザから入力される。
設定UI442は、ワークフロー編集条件テーブル441の設定、またはワークフロー定義ファイルのインストール、アンインストールなどの設定を行うためのUIである。本実施形態では、Webブラウザー450、またはPC102に搭載されるWebブラウザーを介して設定UI442はユーザに提供され、ユーザからの指示を受け付ける。
ワークフロー定義ファイル443は、機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義する。ワークフロー定義ファイル444は、ワークフロー定義ファイル443と定義内容が異なる別のワークフローを定義するものである。実行用ワークフロー定義ファイル445は、機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義するもので、ワークフロー処理部430によって実行される。実行用ワークフロー定義ファイルは、ワークフロー定義ファイルに基づいて生成されるもので、設定された条件にしたがって編集されている。ワークフロー定義ファイル446は、ワークフロー定義ファイル445と定義内容が異なる別のワークフローを定義するものである。尚、本実施形態では、ワークフロー定義ファイル443に対応した実行用ワークフロー定義ファイルが実行用ワークフロー定義ファイル445であり、ワークフロー定義ファイル444に対応した実行用ワークフロー定義ファイルが実行用ワークフロー定義ファイル446とする。実行用ワークフロー定義ファイルは、編集前のワークフロー定義ファイルに対して条件に応じて編集を施したものである。実行用ワークフロー定義ファイルを実行用ワークフロー定義情報と呼ぶこともある。なお図4ではワークフロー定義ファイルの例を複数定義しているが、数を限定するものではない。
<機能プロバイダ情報テーブル及び機能プロバイダI/F情報テーブル>
図5に、本発明の実施形態における、機能プロバイダ情報テーブル423及び機能プロバイダI/F情報テーブル424の例を示す。機能プロバイダ情報テーブル423は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェース、機能プロバイダに設定可能な値、ワークフロー(WF)定義など、機能プロバイダに関する情報を機能プロバイダごとに関連づけて保持する。機能プロバイダIDは、たとえば後述するワークフロー編集条件テーブルに含まれる処理の欄に記述される値に対応する。機能プロバイダタイプは、FPタグに記述されたタイプに相当する。機能プロバイダインターフェースは、
機能プロバイダI/F情報テーブル424は、機能プロバイダの機能タイプ、機能タイプの名称、機能プロバイダインターフェース、設定インターフェース、実行インターフェース、共通インターフェースなど、機能プロバイダインターフェースに関する情報を、機能プロバイダごとに関連づけて保持する。設定インターフェースは機能プロバイダの持つ設定画面を呼び出すための機能プロバイダインターフェースである。実行インターフェースは機能プロバイダのもつ実行処理を呼び出すための機能プロバイダインターフェースである。共通インターフェースは、各機能プロバイダに共通して定義されているインターフェースである。
図5に、本発明の実施形態における、機能プロバイダ情報テーブル423及び機能プロバイダI/F情報テーブル424の例を示す。機能プロバイダ情報テーブル423は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェース、機能プロバイダに設定可能な値、ワークフロー(WF)定義など、機能プロバイダに関する情報を機能プロバイダごとに関連づけて保持する。機能プロバイダIDは、たとえば後述するワークフロー編集条件テーブルに含まれる処理の欄に記述される値に対応する。機能プロバイダタイプは、FPタグに記述されたタイプに相当する。機能プロバイダインターフェースは、
機能プロバイダI/F情報テーブル424は、機能プロバイダの機能タイプ、機能タイプの名称、機能プロバイダインターフェース、設定インターフェース、実行インターフェース、共通インターフェースなど、機能プロバイダインターフェースに関する情報を、機能プロバイダごとに関連づけて保持する。設定インターフェースは機能プロバイダの持つ設定画面を呼び出すための機能プロバイダインターフェースである。実行インターフェースは機能プロバイダのもつ実行処理を呼び出すための機能プロバイダインターフェースである。共通インターフェースは、各機能プロバイダに共通して定義されているインターフェースである。
図6は、本発明の実施形態における、ワークフローを実行するための、MFP101の操作部219に表示されるUIの例である。ボタン601は、実行用ワークフロー定義ファイル445に定義されたワークフローを実行するためのボタンである。ボタン602は、実行用ワークフロー定義ファイル446に定義されたワークフローを実行するためのボタンである。ユーザによって各ボタンが押下されることにより、ワークフロー処理部430により各ワークフローが実行される。このUI(トップメニューとも呼ぶ)は、たとえばMFP101の電源投入された後などに表示される初期画面であってもよい。
図7は、本発明の実施形態における、ワークフロー定義ファイルの第1の具体的な記述例である。本例では、ワークフロー定義ファイル443を例に説明する。本実施形態ではワークフロー定義ファイルはXML形式のファイルとして表現されているが、XML形式に限定されるものではなく、他の形式のファイルであってもよい。
Workflowタグ701は、以下の記述がワークフローの定義であることを示している。FPタグ702は、Workflowタグ701の子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。FPタグ702のno属性は、ワークフローにおける機能プロバイダの実行順を定義しており、「no="1"」は最初に実行する機能プロバイダであることを示している。FPタグ702のtype属性は、実行する機能プロバイダの機能プロバイダタイプを定義しており、「type="SCAN"」はスキャンプロバイダであることを示している。
Conditionタグ703は、FPタグ702の子要素で、FPタグ702に記述した機能プロバイダの検索条件を定義する。ここでは機能プロバイダとしてスキャンプロバイダの検索条件を定義するためのものである。
Actionタグ704は、FPタグ702の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Actionタグのno属性とmethod属性は、それぞれFPタグで定義された機能プロバイダの中での実行順と呼び出すインターフェースとを定義している。Actionタグ704は、スキャンプロバイダの実行において「showSettingUI」を1番目に呼び出す旨を定義している。Actionタグ705は、FPタグ702の子要素であり、スキャンプロバイダの実行において「doScan」を3番目に呼び出す旨を定義している。呼び出す際の設定であるParameterタグや、「doScan」を実行した結果の出力を定義するOutputタグを含む。Parameterタグには、たとえば機能プロバイダ情報テーブル423に定義された「設定可能な値」のうちから選択された設定値が記述される。Outputタグには出力のタイプおよび名称(識別情報)などが記述される。この例ではタイプはドキュメントであり、名称はfooである。
FP706タグは、no属性とtype属性で、2番目に実行する機能プロバイダがOCRプロバイダであることを定義している。子要素はFPタグ702と同様の構成である。FP706タグの子要素であるActionタグは、OCRプロバイダの実行において「doOCR」を4番目に呼び出す旨を定義している。Inputタグには、OCRプロバイダによる文字認識の対象となる入力のタイプがドキュメントであり、名称がfooであることが記述されている。Outputタグには、OCRプロバイダの出力のタイプはストリング即ち文字列であり、名称はbarであることが記述されている。
FP707タグは、no属性とid属性で、3番目に実行する機能プロバイダがE−mail送信プロバイダであることを定義している。FPタグは機能プロバイダを、FPタグ702、706のようにtype属性を使って機能タイプで指定することもできるし、FPタグ707のようにid属性を使って一意に指定することもできる。FP707タグの子要素である最初のActionタグは、E−mail送信プロバイダの実行において設定インターフェースである「showSetting」を2番目に呼び出す旨を定義している。二番目のActionタグは、E−mail送信プロバイダの実行において実行インターフェースである「doSend」を5番目に呼び出す旨を定義している。そのInputタグには、E−mail送信プロバイダによるE−mail送信の対象となる入力として、タイプがドキュメントであり、名称がfooである入力と、タイプがストリングであり、名称がbarである入力とが記述されている。
図7に定義されたワークフローでは、まずスキャンプロバイダの設定UI、E−mail送信プロバイダの設定UI、スキャンプロバイダの実行、OCRプロバイダの実行、E−mail送信プロバイダの実行、の順に処理が進む。
図8は、本発明の実施形態におけるワークフロー定義ファイルの具体的な記述例の第2の例である。Workflowタグ801は、以下の記述がワークフローの定義であることを示している。FP802タグは、no属性とid属性で、1番目に実行する機能プロバイダが簡易スキャンプロバイダであることを定義している。以降のその他タグの説明は図7と同様であるため省略する。
<ワークフロー編集条件テーブル>
図9は本発明の実施形態における、ワークフロー編集条件テーブル441の例である。本実施形態では、ワークフロー編集条件テーブル910、ワークフロー編集条件テーブル920と二つのケースについての例をあげる。条件番号911は条件を一意に識別するための条件番号である。条件912は編集条件である。編集種別913は、追加、削除、変更など、編集の種別を示す。処理914は、編集種別が追加の場合には追加すべき処理を、変更の場合には変更後の処理を示す。設定値915は編集処理に関係する設定値を示す。編集所条件912は、編集種別が追加の場合には、追加すべき対象を挿入する位置を示し、編集種別が変更の場合には、変更すべき編集対象を示し、編集種別が削除の場合には、削除すべき編集対象を示す。
図9は本発明の実施形態における、ワークフロー編集条件テーブル441の例である。本実施形態では、ワークフロー編集条件テーブル910、ワークフロー編集条件テーブル920と二つのケースについての例をあげる。条件番号911は条件を一意に識別するための条件番号である。条件912は編集条件である。編集種別913は、追加、削除、変更など、編集の種別を示す。処理914は、編集種別が追加の場合には追加すべき処理を、変更の場合には変更後の処理を示す。設定値915は編集処理に関係する設定値を示す。編集所条件912は、編集種別が追加の場合には、追加すべき対象を挿入する位置を示し、編集種別が変更の場合には、変更すべき編集対象を示し、編集種別が削除の場合には、削除すべき編集対象を示す。
ワークフロー編集条件テーブル910の例では、条件が1つ登録されている。条件番号1は、条件がPre_doSENDであり、送信処理の前を意味する。さらに、編集種別がADDであるため、編集内容が追加処理であることを示す。さらに、編集される処理914がSEND_SMBであることから、送信処理の前に、SMB送信の処理を追加することを意味している。また、設定値915の設定内容には、SMB送信に関する具体的な設定項目が含まれる。ワークフロー編集条件テーブル920の例では、条件が2つ登録されている。条件番号1は条件がSENDであり、編集種別がCHANGEすなわち変更、さらに変更となる処理がSEND_SMBであることから、送信処理をSMB送信の処理に変更する、ことが示される。同様に、条件番号2に対しては、条件がOCRで、編集種別がDELETEとなっているため、OCRの処理を削除することを意味している。尚、条件は送信処理の前の他に、スキャン実行前、OCR処理前、またそれらの処理後など、様々である。さらに、変更となる処理も、各拡張ソフト、及びその処理が指定可能である。
図10は、本発明の実施形態におけるワークフロー編集条件テーブル441の内容を、ユーザが変更するためのUIの例である。すなわちこのUIがワークフロー編集条件をユーザに設定させる条件設定のためのユーザインタフェース(UI)となる。本UIは、PC102に搭載されるWebブラウザー等のプログラムから、LAN101を介してMFP101に接続されて、MFP101の持つWebサーバにより提供されるデータに基づいて表示される。図9に示す条件テーブルの各項目に対して設定可能であり、ユーザは本UIを介して条件テーブルの各種情報を入力、または選択することによってMFP101の有するワークフロー編集条件テーブル411が更新される。
<ワークフロー定義ファイルのインストール処理>
図11は、本発明の第一の実施形態における、WF定義ファイル443のインストールの処理フローを説明するフローチャートである。ユーザがPC102を介して、LAN110に接続されたMFP101に対して、フロー定義ファイルをインストールする。本フローは、MFP101がワークフロー定義ファイルを受信した場合に開始される。したがってその実行主体はCPU211である。尚、インストールの処理についてはワークフロー管理部440によって制御されるが、インストールにおけるUI,また手順については説明を省略する。
図11は、本発明の第一の実施形態における、WF定義ファイル443のインストールの処理フローを説明するフローチャートである。ユーザがPC102を介して、LAN110に接続されたMFP101に対して、フロー定義ファイルをインストールする。本フローは、MFP101がワークフロー定義ファイルを受信した場合に開始される。したがってその実行主体はCPU211である。尚、インストールの処理についてはワークフロー管理部440によって制御されるが、インストールにおけるUI,また手順については説明を省略する。
S1102は、ワークフロー定義ファイルの受信ステップである。ワークフロー管理部440は、LAN110を介して、PC102からワークフロー定義ファイルを、ネットワークI/F218を経由して受信する。
S1103は、ワークフロー定義ファイルを記憶するステップである。ワークフロー管理部440は、S1102で受信したワークフロー定義ファイルを、HDD214に記憶する。
S1104は、実行用ワークフロー定義ファイルの生成ステップである。ワークフロー管理部440は、S1103にて記憶されたワークフロー定義に対して、ワークフロー編集条件テーブル441に設定された条件に従い、ワークフローの編集を実施し、実行用ワークフロー定義ファイルを生成し、S1105にて本フローを終了する。ワークフロー定義ファイルに対応するワークフロー編集条件テーブル441がない場合には、実行用ワークフロー定義ファイルは元のワークフロー定義ファイルと同じものであってよい。
図12は、本発明の第一の実施形態における、ワークフロー編集条件テーブル441の条件が変更された場合の、ワークフロー管理部440における処理フローを説明するフローチャートである。本フローは、図10に示す条件設定のUIより、条件が変更された場合にS1201より開始される。S1202は、条件の更新ステップである。ワークフロー管理部440は、設定UI442を介してユーザより受け付けた条件情報を、ワークフロー編集条件テーブル441に記憶し、ワークフロー編集条件テーブル441を更新する。
S1203は、実行用ワークフロー定義ファイルの検索ステップである。ワークフロー管理部440によって管理されている実行用ワークフロー定義ファイルを検索し、S1204の実行用ワークフロー定義ファイルの更新ステップに遷移する。S1204は、実行用ワークフロー定義ファイルの更新ステップである。S1202にて更新された条件に従い、ワークフロー管理部440によって管理されている、実行用ワークフロー定義ファイルを解析し、更新された条件に従って編集処理が実施される。S1205は、未処理のワークフロー定義ファイルが存在するか否かを判断する判断ステップである。ワークフロー管理部440は、更新された条件に従って編集処理が実施されていない実行用ワークフロー定義ファイルが存在するか否かを判断する。存在する場合はS1203の実行用ワークフロー定義ファイルの読み込みステップに遷移する。全ての実行用ワークフロー定義ファイルが更新された条件に従って編集されたと判断された場合は、S1206に遷移し、本フローを終了する。尚、本実施形態では、実行用のワークフロー定義ファイル445、及び446の2つの実行用ワークフロー定義ファイルが存在するため、2つの実行用ワークフロー定義ファイルに対して、更新された条件に従って編集が行われる。2つとも編集が完了した場合は、S1206に遷移する。
<実行用ワークフロー定義ファイルの更新処理>
図13は、本発明の第一の実施形態における、ワークフロー管理部440における、ワークフロー定義ファイルの編集処理の処理フローを説明するフローチャートである。本フローは、S1104の実行用ワークフロー定義ファイルの生成ステップ、及びS1204の実行用ワークフロー定義ファイルの更新ステップ内の処理フローである。本例では、実行用ワークフロー定義ファイル443の生成を説明する。また、ワークフロー編集条件テーブル441には図9のワークフロー編集条件テーブル910に示す条件が設定されているものとする。S1301は、開始ステップであり、S1104、及びS1204ステップの開始に該当する。
図13は、本発明の第一の実施形態における、ワークフロー管理部440における、ワークフロー定義ファイルの編集処理の処理フローを説明するフローチャートである。本フローは、S1104の実行用ワークフロー定義ファイルの生成ステップ、及びS1204の実行用ワークフロー定義ファイルの更新ステップ内の処理フローである。本例では、実行用ワークフロー定義ファイル443の生成を説明する。また、ワークフロー編集条件テーブル441には図9のワークフロー編集条件テーブル910に示す条件が設定されているものとする。S1301は、開始ステップであり、S1104、及びS1204ステップの開始に該当する。
S1302は、ワークフロー定義ファイルの読み込みステップである。ワークフロー管理部440は、HDD214に記憶されているワークフロー定義ファイル443をRAM213に読み込む。S1204によって開始された場合は、ワークフロー定義ファイル443に代えて実行用ワークフロー定義ファイル445が読み込まれるが、以降の処理はS1104の場合とS1204の場合と同じであるため、以降はワークフロー定義ファイル443が読み込まれた場合の説明とする。S1303は、ワークフロー定義ファイルで定義された処理の解析ステップである。具体的には、図7に示すワークフロー定義ファイル443の、FPタグ及びその子要素であるActionタグを抽出する。抽出したタグは元のワークフロー定義ファイルに記述されたタグと紐づけておくことが望ましい。あるいは抽出することなく、それらのタグの位置を特定するだけでもよい。S1304は、条件の照合ステップである。ワークフロー管理部440は、ワークフロー条件テーブル910を参照し、そこに記述された条件に順に着目する。そして着目した条件に該当する処理(すなわちFPタグ)を、処理対象のワークフロー定義ファイルから特定する。具体的にはワークフロー管理部440は、ワークフロー条件テーブル910の条件番号1の情報に着目する。条件番号1の条件は、Pre_doSENDであり、doSENDの前、すなわち子要素であるActionタグにメソッドとしてdoSENDが記述されたTypeがSENDのFPタグの前、が条件である。そのため、該当するタグ、すなわちFPタグのTypeがSENDであり、かつその子要素として持つActionタグがdoSENDであるような項目が、S1303にて解析されたワークフロー定義ファイルに存在するか否かを照合する。条件としては、このほかに例えば、処理の後ろであることを示す「Post_」などがある。
S1305は、着目した条件に一致する項目があるか否かの判断ステップである。すなわち、ステップS1303で抽出あるいは特定したFPタグに、条件に該当するものがあるか判定する。着目した条件に一致する処理が存在しない場合は、S1310の、未処理の条件の有無を判断するステップに遷移する。一方、S1304にて照合された結果該当の処理(すなわち該当するFPタグ)がワークフロー定義ファイルにある場合は、その条件に対応する編集種別の内容によって以降の処理を振り分ける。該当する条件の編集種別はADD(追加)、DELETE(削除)、CHANGE(変更)のいずれかが定義され、ADDの場合はワークフロー定義ファイルに、処理に対応するワークフロー定義を追加するステップS1306に遷移する。CHANGEの場合は、ワークフロー定義ファイルに含まれた、処理に対応するワークフロー定義を変更するステップS1307に遷移する。DELETEの場合はワークフロー定義ファイルから処理に対応するワークフロー定義を削除するステップS1308に遷移する。なおここでいう「ワークフロー定義」とは、図5に例示した機能プロバイダ情報テーブル423の最右欄に定置された、処理(或いは機能)ごとにワークフロー内での記述を定義した「WF(ワークフロー)定義」を指す。図5(a)ではSEND_SMBのみについて定義されているが、他の機能についてもそれぞれ定義されている。本例では、条件1の変更種別がADDであるため、S1306に遷移する。
S1306は、ワークフロー定義ファイルに、条件に定義された処理に対応するワークフロー定義を追加するステップである。本ステップでは、着目している条件912に関連付けられた処理914を参照し、処理に該当するワークフロー定義情報を、ワークフロー定義ファイル443に追加する。具体的には、たとえば、機能プロバイダ情報テーブル423を参照し、着目した条件912に関連付けられた処理914に相当する機能プロバイダIDを検索する。そしてヒットした機能プロバイダIDに関連付けられたワークフロー定義(WF定義)をワークフロー定義ファイルから読み、それを条件に従った個所に追加する。図9(a)の例では、処理がSEND_SMBであり、機能プロバイダ情報テーブル423のSEND_SMBに関連付けられたワークフロー定義情報を、既存のSENDの前に追加する。既に3つの処理が存在するため、追加された定義情報のFPタグのnoには4を設定する。さらに、条件に関連付けられた設定を追加した定義情報に反映させる。SEND_SMBの処理には、本例では、Actionとして、showSettingUI、及びdoSENDが存在するが、ワークフロー編集条件テーブル910の設定値欄915にshowSettingUI=noが指定されている。そのため、追加するワークフロー定義情報にはshowSettingUIを含まない。そこでメソッドとしてshowSettingUIを指定したActionタグは、追加するワークフロー定義には含めない。また設定値915に定義されたDestinatioに従って、SEND_SMBによるファイルの送信先が設定される。同様に、S1307、及びS1308の処理においても、それぞれの条件に関連付けられた処理、及び設定値の内容と、機能プロバイダ情報テーブル423に関連付けられた情報に従ってワークフロー定義の変更、削除を実施する。S1307においては、たとえば図9(b)の第二の条件では、機能OCRが削除される。削除の単位はFPタグである。またたとえば図9(b)の先頭の条件では、機能SENDを機能SEND_SMBに変更される。
S1309は、ワークフローの整合を処理するステップであり、追加、変更、削除したワークフロー定義情報が、ワークフローとして成立するよう、整合性を編集する。各処理のActionタグには、処理の実行順を示すno属性が定義されており、追加、変更、削除した処理に応じて、以降に実施される処理のno属性を変更する。例えば、本例では、SEND_SMBのdoSENDを、SEND_E−MailのdoSENDの前に実行する追加処理であるため、5番をSEND_SMBのdoSENDのActionタグのno属性に指定する。さらに、SEND_E−mailのActionタグの、doSENDに該当するno属性を5から6に変更する。以降に実施される処理についても、Actionタグのno属性を修正し、ワークフローの整合を図る。
S1310は、未処理の条件が存在するか否かの判断ステップであり、ワークフロー編集条件テーブル441を参照し、未処理の条件が存在する場合は、次の条件に着目し、S1304の条件の照合ステップに遷移する。全ての条件に対しての照合が完了した場合は、S1311の実行用ワークフロー定義ファイルの記憶ステップに遷移する。
S1311は、実行用ワークフロー定義ファイルの記憶ステップであり、編集されたワークフロー定義ファイルを、HDD214に記憶する。尚、本フローがS1204によって開始された場合は、既に存在する実行用ワークフロー定義ファイルを上書きする。以上のように、ワークフロー定義ファイルを条件に従って編集し、本フローを終了する。
図14は、本発明の実施形態における、実行用ワークフロー定義ファイルの例であり、ワークフロー定義ファイル443を、ワークフロー条件テーブル910に設定された条件に従って編集しれた実行用ワークフロー定義ファイル445の例である。ワークフロー編集条件テーブル910の情報に従って、図7に示すワークフロー定義ファイルが編集され、ワークフロー編集条件テーブル910に従ってSEND_SMBの処理が追加された状態となっている。SEND_SMB処理は、FPタグ1401以下の部分である。条件から、SEND_SMB機能は、既存のSENDすなわちSEND_E−mailの前、すなわちOCRとSEND_E−mailとの間に挿入される。そこで、SEND_SMBのActionタグのno属性はno="5"とされ、SEND_E−mailのActionタグのno属性は、がno="6"に繰り下げられる。
<ワークフローの実行シーケンス>
図15は、本発明の第一の実施形態における、ワークフローの実行の流れの一例を示したシーケンス図である。ワークフロー定義ファイル445には図14で説明した内容が記述されているものとして、以下のステップの説明を行う。
ステップS1501において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。ステップS1502において、実行指示に対応するワークフロー定義ファイル445を読み込む。
図15は、本発明の第一の実施形態における、ワークフローの実行の流れの一例を示したシーケンス図である。ワークフロー定義ファイル445には図14で説明した内容が記述されているものとして、以下のステップの説明を行う。
ステップS1501において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。ステップS1502において、実行指示に対応するワークフロー定義ファイル445を読み込む。
ステップS1503において、ワークフロー処理部430は、機能プロバイダ管理部420に対して、ワークフロー定義ファイル445に記載されている機能プロバイダの検索を指示する。ワークフロー定義ファイル445には、「機能タイプがスキャンの機能プロバイダ」「機能タイプがOCRの機能プロバイダ」そして「機能プロバイダIDがSEND_E−mail、及びSEND_SMBの機能プロバイダ」が記載されているため、その4つの検索条件を指定して指示する。ステップS1504において、機能プロバイダ管理部420は、機能プロバイダ情報テーブル423をもとに検索条件に一致する機能プロバイダを特定する。検索条件に一致するスキャンプロバイダが複数存在した場合は、最も優先順位の高いスキャンプロバイダを検索結果とする。本例では、標準スキャンプロバイダ411、組み込みOCRプロバイダ413そしてSMB送信プロバイダ415、E−mail送信プロバイダ416が特定されるものとする。ステップS1505において、機能プロバイダ管理部420は、機能プロバイダの検索結果をワークフロー処理部430に通知する。
ステップS1506において、ワークフロー処理部430は、ワークフロー定義ファイル445に定義されている呼び出し順(Actionタグのno属性)に従って、標準スキャンプロバイダ411の設定インターフェースを呼び出す。ステップS1507において、ワークフロー処理部430から設定インターフェースの呼び出しを受けた標準スキャンプロバイダ411は、指示に従ってスキャン設定画面を表示する。ステップS1508において、標準スキャンプロバイダ411は、スキャン設定の結果をワークフロー処理部430に通知する。
ステップS1509において、ワークフロー処理部430は、ワークフロー定義ファイル440に定義されている呼び出し順に従って、E−mail送信プロバイダ416の設定インターフェースを呼び出す。ステップS1510において、ワークフロー処理部430から設定インターフェースの呼び出しを受けたE−mail送信プロバイダ416は、指示に従って送信設定画面を表示する。ステップS1511において、E−mail送信プロバイダ416は、送信設定の結果をワークフロー処理部430に通知する。
ステップS1512において、ワークフロー処理部430は、ワークフロー定義ファイル445に定義されている呼び出し順に従って、標準スキャンプロバイダ411の実行インターフェースを呼び出す。ステップS1513において、ワークフロー処理部430から実行インターフェースの呼び出しを受けた標準スキャンプロバイダ411は、指示に従ってスキャン処理を実行する。ステップS1514において、標準スキャンプロバイダ411は、スキャン処理の結果をワークフロー処理部430に通知する。
ステップS1515において、ワークフロー処理部430は、ワークフロー定義ファイル440に定義されている呼び出し順に従って、組み込みOCRプロバイダ413の実行インターフェースを呼び出す。ステップS1516において、ワークフロー処理部430から実行インターフェースの呼び出しを受けた組み込みOCRプロバイダ413は、指示に従ってOCR処理を実行する。ステップS1517において、組み込みOCRプロバイダ413は、OCR処理の結果をワークフロー処理部430に通知する。
ステップS1518において、ワークフロー処理部430は、ワークフロー定義ファイル445に定義されている呼び出し順に従って、SMB送信プロバイダ415の実行インターフェースを呼び出す。ステップS1519において、ワークフロー処理部430から実行インターフェースの呼び出しを受けたSMB送信プロバイダ415は、指示に従って送信処理を実行する。ステップS1520において、SMB送信プロバイダ415は、送信処理の結果をワークフロー処理部430に通知する。
ステップS1521において、ワークフロー処理部430は、ワークフロー定義ファイル445に定義されている呼び出し順に従って、E−mail送信プロバイダ416の実行インターフェースを呼び出す。ステップS1522において、ワークフロー処理部430から実行インターフェースの呼び出しを受けたE−mail送信プロバイダ416は、指示に従って送信処理を実行する。ステップS1523において、SMB送信プロバイダ415は、送信処理の結果をワークフロー処理部430に通知する。
以上のように、前述の実施形態において説明した手順により、複数の機能プロバイダを組み合わせて一連の処理として実行する。以上のように、本実施形態に係る発明を実施した画像形成装置上において、ワークフロー定義ファイルのインストール処理、及びユーザからのワークフロー編集条件を受け付け、該条件に従いワークフロー定義ファイルを編集し、実行することが可能となる。このため、MFP101が複数のワークフロー定義ファイルを有していたとしても、条件に従って全てのワークフロー定義ファイルを対象として編集することができる。この場合、ユーザの負担はワークフロー変種条件ファイルの設定のみであり、負担の大幅な軽減が可能となり、編集誤りを低減させ、ワークフローのメンテナンスの生産性を向上させることができる。
[第二実施形態]
以下、本発明を実施するための第二の実施形態について図面を用いて説明する。第二の実施形態においては、図1から図3、及び図5から図10、また図14の内容は第一の実施形態と同じである。第1実施形態と共通の構成及び機能に関しては説明を省略する。
以下、本発明を実施するための第二の実施形態について図面を用いて説明する。第二の実施形態においては、図1から図3、及び図5から図10、また図14の内容は第一の実施形態と同じである。第1実施形態と共通の構成及び機能に関しては説明を省略する。
図16は、本発明の第二の実施形態における、MFPのソフトウェア構成を示すブロック図である。MFP101のHDD214に記憶されているプログラム(ソフトウェア)を、CPU211がRAM213に読み出し、解析、実行することで、後述の処理が実行される。図16と第一実施形態の図4との相違点は、ワークフロー処理部430の実行する処理の内容と、ワークフロー管理部440が実行する処理の内容と、ワークフロー管理部440が実行用ワークフロー定義ファイルを持たないことと、この三点にある。他は図4と同様であるのでそれらについての説明は省略する。
詳しくは後述するが、ワークフロー処理部430は、後述するワークフロー定義ファイル445、446と、ワークフロー編集条件テーブル441に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。
ワークフロー管理部440は、ワークフロー定義ファイルの管理を実施する。具体的には、ワークフロー定義ファイルのインストール、アンインストール、またはワークフローの編集条件を、設定UI442を介してユーザから受け付け、管理する。本実施形態では、第一の実施形態と異なり、ワークフロー管理部440は、実行用ワークフロー定義ファイルを作成したり、更新したりすることはない、
<ワークフロー定義ファイルのインストール>
図17は、本発明の第二の実施形態におけるワークフロー定義ファイル443のインストールの処理フローを説明するフローチャートである。ユーザがPC102を介して、LAN110に接続されたMFP101に対して、ワークフロー定義ファイルをインストールする。本フローは、MFP101がワークフロー定義ファイルを受信した場合に開始される。尚、インストールの処理についてはワークフロー管理部440によって制御されるが、インストールにおけるUI,また手順については説明を省略する。S1702は、ワークフロー定義ファイルの受信ステップである。ワークフロー管理部440は、LAN110を介して、PC102からワークフロー定義ファイルを、ネットワークI/F218を経由して受信する。S1703は、ワークフロー定義ファイルを記憶するステップである。ワークフロー管理部440は、S1702で受信したワークフロー定義ファイルを、HDD214に記憶し、S1703に遷移して本フローを終了する。
<ワークフロー定義ファイルのインストール>
図17は、本発明の第二の実施形態におけるワークフロー定義ファイル443のインストールの処理フローを説明するフローチャートである。ユーザがPC102を介して、LAN110に接続されたMFP101に対して、ワークフロー定義ファイルをインストールする。本フローは、MFP101がワークフロー定義ファイルを受信した場合に開始される。尚、インストールの処理についてはワークフロー管理部440によって制御されるが、インストールにおけるUI,また手順については説明を省略する。S1702は、ワークフロー定義ファイルの受信ステップである。ワークフロー管理部440は、LAN110を介して、PC102からワークフロー定義ファイルを、ネットワークI/F218を経由して受信する。S1703は、ワークフロー定義ファイルを記憶するステップである。ワークフロー管理部440は、S1702で受信したワークフロー定義ファイルを、HDD214に記憶し、S1703に遷移して本フローを終了する。
<ワークフロー編集条件テーブルの編集>
図18は、本発明の第二の実施形態における、ワークフロー編集条件テーブル440の条件が変更された場合の、ワークフロー管理部440における処理フローを説明するフローチャートである。本フローは、図10に示す条件設定のUIより、条件が変更された場合にS1801より開始される。S1802は、条件の更新ステップである。ワークフロー管理部440は、設定UI442を介してユーザより受け付けた条件情報を、ワークフロー編集条件テーブル441に記憶し、ワークフロー編集条件テーブル441を更新し、S1803に遷移して本フローを終了する。
図18は、本発明の第二の実施形態における、ワークフロー編集条件テーブル440の条件が変更された場合の、ワークフロー管理部440における処理フローを説明するフローチャートである。本フローは、図10に示す条件設定のUIより、条件が変更された場合にS1801より開始される。S1802は、条件の更新ステップである。ワークフロー管理部440は、設定UI442を介してユーザより受け付けた条件情報を、ワークフロー編集条件テーブル441に記憶し、ワークフロー編集条件テーブル441を更新し、S1803に遷移して本フローを終了する。
<ワークフロー定義ファイルの編集>
図19は、本発明の第二の実施形態のワークフロー管理部440における、ワークフロー定義ファイルの編集処理の処理フローを説明するフローチャートである。本例では、第一の実施形態とは異なり、実行用ワークフロー定義ファイルを生成しない。ワークフローを実行する際に、ワークフロー編集条件テーブルを動的に反映したワークフロー定義ファイルに従ってワークフローは実行される。また、ワークフロー編集条件テーブル441には図9のワークフロー編集条件テーブル910に示す条件が設定されているものとする。本例においては、ワークフロー定義ファイル910が読み込まれた場合の処理を説明する。
図19は、本発明の第二の実施形態のワークフロー管理部440における、ワークフロー定義ファイルの編集処理の処理フローを説明するフローチャートである。本例では、第一の実施形態とは異なり、実行用ワークフロー定義ファイルを生成しない。ワークフローを実行する際に、ワークフロー編集条件テーブルを動的に反映したワークフロー定義ファイルに従ってワークフローは実行される。また、ワークフロー編集条件テーブル441には図9のワークフロー編集条件テーブル910に示す条件が設定されているものとする。本例においては、ワークフロー定義ファイル910が読み込まれた場合の処理を説明する。
S1901は、開始ステップであり、ワークフロー処理部430が、ユーザからのワークフロー実行指示を受け、ワークフロー定義ファイルがRAM213に読み込まれた場合に開始される。S1902は、処理の解析ステップである。ワークフロー定義ファイル443を解析し、処理の解析を行う。具体的には、図7に示すワークフロー定義ファイルの、FPタグ、及びActionタグを抽出あるいは特定する。S1903は、条件の照合ステップである。ワークフロー管理部440は、ワークフロー条件テーブル441を参照し、条件の情報を抽出あるいは特定する。本例では、まず条件番号1の情報を抽出あるいは特定する。条件番号1の条件は、Pre_doSENDであるため、FPタグのTypeがSENDであり、かつActionタグがdoSENDの項目が、S1902にて解析された処理に存在するか否かを照合する。S1904は、条件に一致する処理があるか否かの判断ステップである。S1903にて、照合された結果該当の処理がある場合は、その変更種別の内容によって以降の処理を振り分ける。該当する条件の変更種別はADD、DELETE、CHANGEのいずれかが定義され、ADDの場合はS1905のワークフロー定義を追加するステップに遷移する。CHANGEの場合は、S1906のワークフロー定義を変更するステップに遷移し、DELETEの場合はS1907のワークフロー定義を削除するステップに遷移する。本例では、条件1の変更種別がADDであるため、S1905に遷移する。また、条件に一致する処理が存在しない場合は、S1909の未処理の条件を判断するステップに遷移する。S1905は、ワークフロー定義ファイルに、条件に定義された処理を追加するステップである。本ステップでは、条件に関連付けられた、処理を参照し、処理に該当する定義情報を、ワークフロー定義ファイルに追加する。具体的には、処理に該当する機能プロバイダ情報テーブル423を参照し、各処理に該当するワークフロー定義を、条件に従った個所に追加する。本例では、処理がSEND_SMBであり、機能プロバイダ情報テーブル423のSEND_SMBに関連付けられたワークフロー定義情報を追加する。既に3つの処理が存在するため、追加された定義情報のnoタグは4を設定する。さらに、条件に関連付けられた設定を追加した定義情報に反映させる。SEND_SMBの処理には、本例では、Actionとして、showSettingUI、及びdoSENDが存在するが、条件にshowSettingUI=noが指定されているため、追加する定義情報にshowSettingUIを含まない。同様に、S1906、及びS1907の処理においても、それぞれの条件に関連付けられた処理、及び設定値の内容と、機能プロバイダ情報テーブル423に関連付けられた情報に従ってワークフロー定義の変更、削除を実施する。
S1908は、ワークフローの整合を処理するステップであり、追加、変更、削除したワークフロー定義情報が、ワークフローとして成立するよう、整合性を編集する。各処理のActionタグには、処理の実行順を示すno属性が定義されており、追加、変更、削除した処理に応じて、以降に実施される処理のno属性を変更する。例えば、本例では、SEND_SMBのdoSENDを、SEND_E−MailのdoSENDの前に実行する追加処理であるため、5番をSEND_SMBのdoSENDのActionタグのno属性に指定する。さらに、SEND_E−mailのActionタグの、doSENDに該当するno属性を5から6に変更する。以降に実施される処理についても、Actionタグのno属性を修正し、ワークフローの整合を図る。
S1909は、未処理の条件が存在するか否かの判断ステップであり、条件テーブル441を参照し、未処理の条件が存在する場合は、次の条件を参照し、S1903の条件の照合ステップに遷移する。全ての条件に対しての照合が完了した場合は、S1910の実行用ワークフロー定義ファイルの確定ステップに遷移する。
S1910は、実行用ワークフロー定義ファイルの確定ステップであり、編集されたワークフロー定義情報を、実行用ワークフロー情報として確定し、S1911に遷移し本フローを終了する。
尚、本フローによって確定されたワークフロー定義情報は、図14に示す実行用ワークフロー定義ファイルの内容と同じであり、RAM213に展開されているものとする。
<ワークフローの実行シーケンス>
図20は、本発明の第二の実施形態におけるMFP101上のワークフローの実行の流れの一例を示したシーケンス図である。ワークフロー定義ファイル445には図14で説明した内容が記述されているものとして、以下のステップの説明を行う。
図20は、本発明の第二の実施形態におけるMFP101上のワークフローの実行の流れの一例を示したシーケンス図である。ワークフロー定義ファイル445には図14で説明した内容が記述されているものとして、以下のステップの説明を行う。
ステップS2001において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。ステップS2002において、実行指示に対応するワークフロー定義ファイル445を読み込む。ステップS2003において、S2002にて読み込んだワークフロー定義ファイルの情報に対して、図19に示した処理を実行し、実行用のワークフロー情報を生成する。
ステップS2004において、ワークフロー処理部430は、機能プロバイダ管理部420に対して、S2003にて生成された実行用ワークフロー情報に記載されている機能プロバイダの検索を指示する。S2003にて生成された実行用ワークフロー情報には、「機能タイプがスキャンの機能プロバイダ」「機能タイプがOCRの機能プロバイダ」そして「機能プロバイダIDがSEND_E−mail、及びSEND_SMBの機能プロバイダ」が存在するため、その4つの検索条件を指定して指示する。ステップS2005において、機能プロバイダ管理部420は、機能プロバイダ情報テーブル423をもとに検索条件に一致する機能プロバイダを抽出する。検索条件に一致するスキャンプロバイダが複数存在した場合は、最も優先順位の高いスキャンプロバイダを検索結果とする。本例では、標準スキャンプロバイダ411、組み込みOCRプロバイダ413そしてSMB送信プロバイダ415、E−mail送信プロバイダ416が抽出されるものとする。ステップS2006において、機能プロバイダ管理部420は、機能プロバイダの検索結果をワークフロー処理部430に通知する。
ステップS2007において、ワークフロー処理部430は、S2003にて生成された実行用ワークフロー情報に定義されている呼び出し順(Actionタグのno属性)に従って、標準スキャンプロバイダ411の設定インターフェースを呼び出す。ステップS2008において、ワークフロー処理部430から設定インターフェースの呼び出しを受けた標準スキャンプロバイダ411は、指示に従ってスキャン設定画面を表示する。ステップS2009において、標準スキャンプロバイダ411は、スキャン設定の結果をワークフロー処理部430に通知する。
ステップS2010において、ワークフロー処理部430は、S2003にて生成された実行用ワークフロー情報に定義されている呼び出し順に従って、E−mail送信プロバイダ416の設定インターフェースを呼び出す。ステップS2011において、ワークフロー処理部430から設定インターフェースの呼び出しを受けたE−mail送信プロバイダ416は、指示に従って送信設定画面を表示する。ステップS2012において、E−mail送信プロバイダ416は、送信設定の結果をワークフロー処理部430に通知する。
ステップS2013において、ワークフロー処理部430は、S2003にて生成された実行用ワークフロー情報に定義されている呼び出し順に従って、標準スキャンプロバイダ411の実行インターフェースを呼び出す。ステップS2014において、ワークフロー処理部430から実行インターフェースの呼び出しを受けた標準スキャンプロバイダ411は、指示に従ってスキャン処理を実行する。ステップS2015において、標準スキャンプロバイダ411は、スキャン処理の結果をワークフロー処理部430に通知する。
ステップS2016において、ワークフロー処理部430は、S2003にて生成された実行用ワークフロー情報に定義されている呼び出し順に従って、組み込みOCRプロバイダ413の実行インターフェースを呼び出す。ステップS2017において、ワークフロー処理部430から実行インターフェースの呼び出しを受けた組み込みOCRプロバイダ413は、指示に従ってOCR処理を実行する。ステップS2018において、組み込みOCRプロバイダ413は、OCR処理の結果をワークフロー処理部430に通知する。
ステップS2019において、ワークフロー処理部430は、ワークフロー定義ファイル445に定義されている呼び出し順に従って、SMB送信プロバイダ415の実行インターフェースを呼び出す。ステップS2020において、ワークフロー処理部430から実行インターフェースの呼び出しを受けたSMB送信プロバイダ415は、指示に従って送信処理を実行する。ステップS2021において、SMB送信プロバイダ415は、送信処理の結果をワークフロー処理部430に通知する。
ステップS2022において、ワークフロー処理部430は、ワークフロー定義ファイル445に定義されている呼び出し順に従って、E−mail送信プロバイダ416の実行インターフェースを呼び出す。ステップS2023において、ワークフロー処理部430から実行インターフェースの呼び出しを受けたE−mail送信プロバイダ416は、指示に従って送信処理を実行する。ステップS2024において、SMB送信プロバイダ415は、送信処理の結果をワークフロー処理部430に通知する。
以上のように、前述の実施形態において説明した手順により、複数の機能プロバイダを組み合わせて一連の処理として実行する。以上のように、本発明を実施した画像形成装置上において、ワークフロー定義ファイルのインストール処理、及びユーザからのワークフロー編集条件を受け付け、該条件に従いワークフロー定義ファイルを編集し、実行することが可能となる。本実施形態では実行用ワークフロー定義ファイルを保存しておかないために、たとえば実行されないワークフローのために、ワークフロー編集条件テーブルに従った編集を行う必要がない。本実施形態では、ワークフローを構成するものとして、ワークフロー処理部が、機能プロバイダを呼び出す構成で説明したが、拡張ソフトであるアプリがワークフロー処理部の役割を行い、他の拡張ソフトを呼び出す構成であってもよい。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 MFP、102 PC、110 LAN、430 ワークフロー処理部、440ワークフロー管理部、450 Webブラウザ
Claims (11)
- 一連の拡張プログラムを含むワークフローを定義したワークフロー定義情報を管理するためのワークフロー管理手段と、
前記ワークフロー定義情報に従って前記拡張プログラムを実行するためのワークフロー実行手段とを有し、
前記ワークフロー管理手段は、前記ワークフロー定義情報の内容を変更するための条件に従って、前記ワークフロー定義情報の編集を行うことを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記条件には、前記ワークフロー定義情報に含まれた編集の対象と、編集の種類とを含むことを特徴とする情報処理装置。 - 請求項2に記載の情報処理装置であって、
前記ワークフロー管理手段は、前記ワークフロー定義情報の編集として、前記編集の対象の追加、前記編集の対象の変更および前記編集の対象の削除の少なくともいずれかを行い、
前記条件には、前記編集として追加を行う場合には追加される位置が、前記編集として変更を行う場合には変更後の対象が含まれることを特徴とする情報処理装置。 - 請求項1乃至3のいずれか一項に記載の情報処理装置であって、
前記ワークフロー定義情報をインストールするためのインストール手段をさらに有し、
前記ワークフロー管理手段は、前記インストール手段によってワークフロー定義情報がインストールされた場合に、前記条件に従って前記ワークフロー定義情報を編集することを特徴とする情報処理装置。 - 請求項1乃至4のいずれか一項に記載の情報処理装置であって、
前記ワークフロー管理手段は、編集した前記ワークフロー定義情報を、編集前のワークフロー定義情報とは別の実行用ワークフロー定義情報として管理し(445、446)、
前記ワークフロー実行手段は、前記実行用ワークフロー定義情報をもとに前記拡張プログラムを実行することを特徴とする情報処理装置。 - 請求項1乃至4のいずれか一項に記載の情報処理装置であって、
前記ワークフロー管理手段は、前記ワークフロー実行手段により前記ワークフロー定義情報に従った前記拡張プログラムを実行する際に、前記ワークフロー定義情報を前記条件に従って編集し、
前記ワークフロー実行手段は、編集した前記ワークフロー定義情報をもとに前記拡張プログラムを実行することを特徴とする情報処理装置。 - 請求項1乃至6のいずれか一項に記載の情報処理装置であって、
前記条件を設定させるための条件設定手段をさらに有し、
前記ワークフロー管理手段は、前記条件設定手段によって条件が変更された場合、前記ワークフロー定義情報を、変更された前記条件に従って編集することを特徴とする情報処理装置。 - 請求項7に記載の情報処理装置であって、
前記条件設定手段は、前記情報処理装置に接続された端末に対して前記条件を設定するためのユーザインタフェースを提供し、該ユーザインタフェースを介した入力を前記条件として設定することを特徴とする情報処理装置。 - 請求項1乃至8のいずれか一項に記載の情報処理装置であって、
前記ワークフロー管理手段は、管理している全てのワークフロー定義情報に対して、前記条件に応じて編集することを特徴とする情報処理装置。 - 情報処理装置の制御方法であって、
一連の拡張プログラムを含むワークフローを定義したワークフロー定義情報を管理するためのワークフロー管理工程と、
前記ワークフロー定義情報に従って前記拡張プログラムを実行するためのワークフロー実行工程とを有し、
前記ワークフロー管理工程では、前記ワークフロー定義情報の内容を変更するための条件に従って、前記ワークフロー定義情報の編集を行うことを特徴とする情報処理装置の制御方法。 - コンピューターを、請求項1乃至9のいずれか一項に記載の情報処理装置として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017087592A JP2018185685A (ja) | 2017-04-26 | 2017-04-26 | 情報処理装置およびその制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017087592A JP2018185685A (ja) | 2017-04-26 | 2017-04-26 | 情報処理装置およびその制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018185685A true JP2018185685A (ja) | 2018-11-22 |
Family
ID=64355873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017087592A Pending JP2018185685A (ja) | 2017-04-26 | 2017-04-26 | 情報処理装置およびその制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018185685A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020107125A (ja) * | 2018-12-27 | 2020-07-09 | 株式会社リコー | 情報処理システム、サーバ装置、情報処理方法、及びプログラム |
-
2017
- 2017-04-26 JP JP2017087592A patent/JP2018185685A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020107125A (ja) * | 2018-12-27 | 2020-07-09 | 株式会社リコー | 情報処理システム、サーバ装置、情報処理方法、及びプログラム |
JP7196600B2 (ja) | 2018-12-27 | 2022-12-27 | 株式会社リコー | 情報処理システム、サーバ装置、情報処理方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5276328B2 (ja) | 情報処理装置、その制御方法、及びプログラム | |
US7827553B2 (en) | Registering processing flow in accordance with user parameter | |
US8373878B2 (en) | Cooperative job flow creating apparatus, cooperative job flow creating method, service processing apparatus, service processing method, management server, flow conversion method, job flow execution method, program, and storage medium | |
JP5199761B2 (ja) | 情報処理装置と画像入力装置、文書配信システムとそれらの制御方法 | |
JP4756947B2 (ja) | 情報処理装置及び方法 | |
JP5388541B2 (ja) | 画像処理装置、画像処理システム、それらの制御方法、プログラム、及び記憶媒体 | |
JP2007109182A (ja) | ワークフローシステムおよびオブジェクト生成装置 | |
US10122882B2 (en) | Information processing apparatus, control method for information processing apparatus, and program storage medium, relating to displaying setting screens associated with extension software | |
CN103116478A (zh) | 信息处理系统、信息处理设备及按钮处理方法 | |
US8055998B2 (en) | Processing instructions in a changed document object | |
JP2006126941A (ja) | 画像処理装置、画像処理方法、画像処理制御プログラム、及び記憶媒体 | |
JP7037310B2 (ja) | 画像処理装置とその制御方法、及びプログラム | |
JP2018185685A (ja) | 情報処理装置およびその制御方法およびプログラム | |
JP2007274583A (ja) | 管理システム、画像処理装置、管理装置及びそれらの制御方法、プログラム | |
CN115801963A (zh) | 服务器、控制服务器的方法和存储介质 | |
JP4817669B2 (ja) | データ処理装置、データ処理方法、及びプログラム | |
US20090064201A1 (en) | Image Forming Apparatus, Application Management Method, and Computer-Readable Recording Medium Having Application Management Program | |
JP2004288055A (ja) | サービス処理システム、サービス処理方法及びサービス処理プログラム | |
JP2006018492A (ja) | 文書処理装置、文書処理方法及び文書処理プログラム | |
JP2016081162A (ja) | 管理装置、情報処理装置、管理装置の制御方法、情報処理装置の制御方法、及びプログラム | |
US10484552B2 (en) | Information processing apparatus and information processing method for creating workflow | |
JP4710215B2 (ja) | 情報管理装置、情報管理方法、及び情報管理プログラム | |
JP6878976B2 (ja) | 情報処理装置、情報処理システム、管理方法及びプログラム | |
JP6790944B2 (ja) | 情報処理装置、情報処理システム、管理方法及びプログラム | |
JP2017050813A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム |