図1に、本願に係る実施形態として例示される通信システム1のブロック図を示す。通信システム1は、PC(端末装置の一例)10、MFP50を備える。MFP50は、スキャン処理,印刷処理,ファックスの送受信処理等の各種処理を実行可能な装置である。なお、なお、PC10とMFP50とは、同一ネットワークに接続されており、LANを介して通信可能とされている。
PC10は、CPU(コンピュータ及び制御部の一例)12、メモリ14、LCD(表示部の一例)16、入力I/F18、ネットワークI/F20を主に備えている。これらの構成要素は、バス22を介して互いに通信可能とされている。
CPU12は、メモリ14内のプログラム(プログラムの一例)26に従って処理を実行する。プログラム26は、MFP50によるスキャン処理等を実行するためのアプリケーションプログラムである。なお、プログラム26を実行するCPU12のことを、単にプログラム名でも記載する場合がある。例えば、「プログラム26が」という記載は、「プログラム26を実行するCPU12が」ということを意味する場合がある。
また、メモリ14は、データ記憶領域(メモリの一例)28を備える。データ記憶領域28は、プログラム26等の実行に必要なデータなどを記憶する領域である。なお、メモリ14は、RAM、ROM、フラッシュメモリー、HDD、CPU12が備えるバッファなどが組み合わされて構成されている。
メモリ14は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
また、LCD16は、PC10の各種情報を表示する。なお、本願のディスプレイは、液晶ディスプレイに限らず、有機ELディスプレイ等の他の表示方式のディスプレイでも良い。入力I/F18は、キーボード、マウス等を含み、ユーザ操作を入力するためのインタフェースである。なお、入力I/F18は、キーボード等に限らず、LCD16の表示画面にタッチセンサが重畳されたタッチパネルでも良い。
ネットワークI/F20は、外部装置に信号の送受信を行うためのI/Fであり、携帯電話10とMFP50とは、同一ネットワークに接続されている。これにより、携帯電話10とMFP50とは、ネットワークI/F20及びLANを介して、データの送受信を行うことが可能とされている。
なお、本明細書では、主に、プログラムに記述された命令に従ったCPU12の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、CPU12の処理を表している。CPU12による処理は、OSを介したハードウェア制御も含む。なお「取得」は要求を必須とはしない概念で用いる。すなわち、CPU12が要求することなくデータを受信するという処理も、「CPU12がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「設定」等の処理は、入力された設定情報をメモリに記憶することで行われる。
通信システム1では、上述した構成により、PC10のプログラム26からの指令に従って、MFP50において、スキャン処理,印刷処理等の各種処理が実行される。なお、プログラム26では、ユーザ操作により、MFP50での各種処理のワークフローを作成することが可能とされている。ワークフローとは、予め設定された条件に従って各種処理を実行するためのバイナリデータであり、ユーザが各種条件を入力I/F18により入力することで作成される。例えば、ユーザが、スキャン処理を実行するためのスキャン条件,スキャン処理により作成されたスキャンデータの保存先,保存時のファイル名などをユーザが入力することで、スキャン処理のワークフローが作成される。そして、ユーザが作成したワークフローに対応するアイコンがLCD16に表示され、そのアイコンが操作されることで、MFP50において、ユーザが設定したスキャン条件に従ったスキャン処理が実行され、スキャン処理により作成されたスキャンデータが、ユーザが入力した保存先に、ユーザが入力したファイル名で保存される。このように、ワークフローを作成することで、ユーザは、任意の処理をアイコンへの操作のみで実行することが可能となる。
ただし、所定の原稿のスキャン処理時等において、断続的な一連の作業の下で、同じ条件でのスキャン処理が実行される場合がある。具体的には、例えば、備品等の購入時における断続的な一連の処理として、見積書のスキャン処理と、注文書のスキャン処理と、領収書のスキャン処理とがあり、それらの処理は一般的に同じスキャン条件で実行される。また、見積書は、複数の会社から取得し、複数の見積書のうちの任意の見積書に対して、備品等の注文書が作成される。そして、注文書の発行に応じて備品等が購入された場合に、領収書が作成される。このため、例えば、A~C社の見積書があり、B社から備品等が購入される場合に、注文書及び領収書は、B社に対してのみ作成され、B社の見積書と、B社への注文書と、B社への領収書との各々のスキャンデータを、関連付けて保存することが望ましい。また、このような一連の作業の各々に対して、ユーザがワークフローを作成していては、ユーザの負担が大きい。そこで、プログラム26では、上述した一連の作業に対するワークフローが自動で作成される。
詳しくは、プログラム26は、図2に示すメイン画面70をLCD16に表示する。メイン画面70には、印刷ボタン72とスキャンボタン74とが表示される。印刷ボタン72は、MFP50により印刷処理を実行するためのボタンであり、スキャンボタン74は、MFP50によりスキャン処理を実行するためのボタンである。そして、スキャンボタン74が操作されると、プログラム26は、設定画面(図示しない)をLCD16に表示する。設定画面には、スキャン処理を実行するためのスキャン条件等を設定するための複数の設定ボタンが表示されている。そして、設定画面において各種設定ボタンへの操作により、スキャン条件(以下、「設定条件」と記載する)(設定情報の一例)が入力された後に、スキャン開始を指示するボタンが操作されることで、プログラム26は、入力された設定条件に従ったスキャン処理の実行指令をMFP50に送信する。これにより、MFP50においてスキャン処理が実行される。
MFP50においてスキャン処理が実行されると、MFP50は、スキャン処理により作成したスキャンデータをPC10に送信し、PC10のプログラム26が、スキャンデータを取得する。そして、プログラム26は、取得したスキャンデータの保存処理を行うための設定画面100(図3参照)を表示する。図3の後方に示す設定画面100では、MFP50から取得したスキャンデータのプレビュー画像を表示する領域と、スキャンデータの保存方法を選択するための各種設定ボタン102を含む設定領域とを含む。設定画面100の設定領域では、スキャンデータの保存方法として、PC保存と、クラウド保存と、アプリ処理と、メール添付とがあり、それら複数の保存方法から任意の1の保存方法が設定される。そして、プログラム26は、スキャンデータの保存方法のうち1の保存方法が選択されることにより、さらに、選択された保存方法に応じた設定処理を行うため各種設定ボタン103を含む設定画面110が、設定画面100より前面に重ねて表示される。設定画面110にて各種設定処理を行い、OKボタン104が入力されることで、スキャンデータの保存処理が実行される。図3では、保存方法としてPC保存が設定ボタン102で設定された場合に設定画面が表示された例を示しており、設定画面には、保存時のデータ形式,保存先のファイルパス,保存時のファイル名等を設定するための設定ボタン103が含まれる。なお、設定ボタン102、103を操作することにより入力される情報も設定情報の一例である。
この際、スキャンデータの保存方法としてPC保存が設定された場合には、保存時のデータ形式,保存先のファイルパス,保存時のファイル名等が設定されるため、プログラム26は、スキャンデータをMFP50から取得すると、設定条件に応じた形式のスキャンデータを、設定条件に応じたファイルパスのファイルに、設定条件に応じたファイル名でPC10のデータ記憶領域28に保存する。これにより、スキャンデータが、プログラム26により指定されたデータ記憶領域28のファイルに保存される。また、スキャンデータの保存方法としてクラウド保存が設定された場合には、保存時のデータ形式,保存先のクラウドサービス名,保存時のファイル名等が設定されるため、プログラム26は、設定条件に応じた形式のスキャンデータと、設定条件に応じたファイル名での保存を示すコマンドとを、設定条件に応じたクラウドサービス名のクラウドに送信する。これにより、スキャンデータがクラウドに保存される。
また、スキャンデータの保存方法としてアプリ処理が設定された場合には、データ形式,アプリ処理を実行するアプリケーション名等が設定されるため、プログラム26は、設定条件に応じた形式のスキャンデータを、設定条件に応じたアプリケーション名のアプリケーションに出力する。これにより、アプリケーションによってスキャンデータに対して画像処理等を行うことができる。また、スキャンデータの保存方法としてメール添付が設定された場合には、データ形式,メーラ名等が設定されるため、プログラム26は、設定条件に応じた形式のスキャンデータを、設定条件に応じたメーラ名のメーラに出力する。これにより、スキャンデータが、メールに添付され、任意の端末装置に送信される。
また、プログラム26は、MFP50からスキャンデータを取得すると、取得したスキャンデータが見積書のデータであるか否かを判断する。具体的には、例えば、プログラム26は、OCR(Optical character recognitionの略)を利用して、スキャンデータに基づく画像に、「見積書」の文字列があるか否かを判断する。なお、見積書に記載されている「見積書」の文字列では、文字と文字との間に比較的大きなスペースが挿入されている場合もあるため、文字と文字との間のスペースを考慮して、「見積書」の文字列の有無を判断することが好ましい。また、プログラム26は、例えば、設定条件に含まれるスキャンデータの保存時のファイル名に、「見積書」の文字列があるか否かを判断してもよい。
そして、プログラム26は、取得したスキャンデータが見積書のデータであると判断すると、その見積書のスキャンデータ(第1データの一例)に基づく画像、つまり、見積書の画像から、OCRを利用して、所定の情報を取得する。なお、ここでの所定の情報は、見積書の発行日,見積書の有効期限,見積書を発行した会社名,見積書ナンバー等である。そして、プログラム26は、取得した所定の情報を含む情報を、見積書情報として、データ記憶領域28に保存する。この際、見積書情報は、データ記憶領域28の見積書データベースに保存される。また、見積書情報には、スキャンデータから取得した上記所定の情報だけでなく、見積書情報の保存日時,見積書情報の識別番号,見積書情報の基となる見積書のスキャンデータの保存方法(設定条件でのスキャンデータの保存方法)等が含まれる。
なお、上述したように、見積書と注文書と領収書との各々のスキャンデータを関連付けて保存することが望ましいため、プログラム26は、それら複数の書類のスキャンデータを、PC10のデータ記憶領域28において、任意の1のフォルダに保存する。ただし、見積書と注文書と領収書との各々のスキャンデータをデータ記憶領域28の任意の1のフォルダに保存するためには、プログラム26は、スキャンデータを、設定条件に応じた保存先に保存した後も、任意のタイミングで、そのスキャンデータにアクセスできることが必要である。しかしながら、設定条件として、スキャンデータの保存方法がPC保存に設定されている場合に、スキャンデータはPC10に保存されるため、プログラム26は、そのスキャンデータにアクセスすることができるが、スキャンデータの保存方法がクラウド保存に設定されている場合に、スキャンデータはクラウドに送信されるため、プログラム26は、そのスキャンデータにアクセスすることができない。また、設定条件としてスキャンデータの保存方法がアプリ処理に設定されている場合に、スキャンデータはプログラム26と異なるアプリケーションに出力されるため、プログラム26は、そのスキャンデータにアクセスすることができない。また、スキャンデータの保存方法がメール添付に設定されている場合に、スキャンデータはPC10以外の端末装置に送信されるため、プログラム26は、そのスキャンデータにアクセスすることができない。
このため、設定条件としてスキャンデータの保存方法が、クラウド保存,アプリ処理,メール添付の何れかに設定されている場合に、プログラム26は、スキャンデータを設定条件に応じた保存先に保存する前に、予め設定された設定ファイル(設定領域の一例)にスキャンデータのコピーを保存する。これにより、スキャンデータの保存方法が、クラウド保存,アプリ処理,メール添付の何れかに設定されている場合であっても、MFP50から取得したスキャンデータが設定条件に応じた保存先に保存された後も、プログラム26は、そのスキャンデータに、任意のタイミングでアクセスすることが可能となる。なお、スキャンデータのコピーが設定ファイルに保存された場合に、その設定ファイルのファイルパスが、先に説明した見積書情報に含まれる。また、スキャンデータのコピーが設定ファイルに保存されない場合、つまり、設定条件として、スキャンデータの保存方法がPC保存に設定されている場合には、設定条件で設定されているファイルパス、つまり、設定条件に応じたスキャンデータの保存先のファイルパスが、先に説明した見積書情報に含まれる。これにより、プログラム26は、見積書データベースに保存された見積書情報に基づいて、MFP50から取得したスキャンデータに、任意のタイミングでアクセスすることが可能となる。
このように、ユーザが設定画面100において設定条件を設定し、見積書のスキャン処理が実行されると、その見積書のスキャンデータが設定条件に応じた保存先に保存されるとともに、その見積書に関する情報、つまり、見積書情報が見積書データベースに保存される。そして、例えば、ユーザが、A~C社の3社から見積書を取得し、それら3社の見積書のスキャン処理を実行することで、それら3社の見積書のスキャンデータの各々が、各スキャンデータの設定条件に応じた保存先に保存されるとともに、3社の見積書の各々の見積書情報が見積書データベースに保存される。そして、例えば、A~C社の3社のうちのB社から備品等が購入される場合に、ユーザは、B社への注文書を作成し、その注文書のスキャン処理を実行する。この際、ユーザは、上述した手順と同様に、注文書のスキャン処理を実行する。
つまり、ユーザが、メイン画面70において、スキャンボタン74を操作すると、プログラム26は、設定画面100をLCD16に表示する。そして、設定画面100において設定条件が入力された後に、OKボタン104が操作されることで、プログラム26は、入力された設定条件に従ったスキャン処理の実行指令をMFP50に送信する。これにより、MFP50においてB社の注文書のスキャン処理が実行される。MFP50においてスキャン処理が実行されると、プログラム26は、MFP50からB社の注文書のスキャンデータを取得し、取得したスキャンデータの保存処理を、設定条件に従って実行する。この際、ユーザが、B社の注文書のスキャン処理時の設定条件において、B社の注文書のスキャンデータの保存先を、B社の見積書のスキャン処理時の設定条件でのスキャンデータの保存先と同じに設定していれば、B社の見積書のスキャンデータと、B社の注文書のスキャンデータとを同じ保存先に保存できる。ただし、B社の注文書のスキャン処理時の設定条件の設定時において、このような設定を強いることは、ユーザの負担となる。
そこで、プログラム26は、MFP50から取得したスキャンデータが注文書のスキャンデータ(第2データの一例)である場合に、そのスキャンデータに基づく画像、つまり、注文書の画像から、OCRを利用して、所定の情報を取得する。なお、ここでの所定の情報は、注文書の発行日,注文書を発行した会社名,見積書ナンバー,注文書ナンバー等である。そして、プログラム26は、取得した所定の情報を含む情報を、注文書情報として、データ記憶領域28に保存する。この際、注文書情報は、データ記憶領域28の注文書データベースに保存される。また、注文書情報には、注文書のスキャンデータから取得した上記所定の情報だけでなく、注文書情報の保存日時,注文書情報の識別番号,注文書情報の基となる注文書のスキャンデータの保存方法(設定条件でのスキャンデータの保存方法),注文書情報の基となる注文書のスキャンデータの保存先のファイルパス(設定条件でのスキャンデータの保存先のファイルパス)等が含まれる。
なお、プログラム26は、上述したように、MFP50からスキャンデータを取得すると、OCRを利用して、そのスキャンデータが見積書のデータであるか否かを判断しているが、この際、スキャンデータが見積書のスキャンデータでないと判断されると、プログラム26は、OCRを利用して、そのスキャンデータが注文書のデータであるか否かを判断する。そして、そのスキャンデータが注文書のデータであると判断された場合に、プログラム26は、上記手順で、注文書情報を注文書データベースに保存する。
このように、プログラム26は、注文書情報を注文書データベースに保存すると、その注文書情報に含まれる見積書ナンバー(識別子の一例)が、見積書データベースに保存されている見積書情報に存在しているか否かを判断する。この際、例えば、先にA~C社の見積書のスキャン処理が実行されている場合には、上述した手順に従って、A~C社の見積書情報が見積書データベースに保存されている。このような場合に、B社の注文書の注文書情報に含まれる見積書ナンバーは、見積書データベースに保存されているB社の見積書情報に存在すると判断される。これにより、見積書データベースに保存されているA~C社の見積書情報のなかから、B社の注文書情報に対応するB社の見積書情報が特定される。
そして、B社の注文書情報に対応するB社の見積書情報が特定されると、プログラム26は、データ記憶領域28に新たなフォルダ(以下、「関連書類フォルダ」と記載する)を作成する。この際、関連書類フォルダのフォルダ名は、注文書情報と見積書情報とに共通する見積書ナンバー、つまり、B社の見積書の見積書ナンバーとされる。そして、プログラム26は、MFP50から取得したB社の注文書のスキャンデータのコピーを、当該スキャンデータが設定条件において設定されている保存先に保存される前に、関連書類フォルダに保存する。また、プログラム26は、特定された見積書情報、つまり、注文書情報に含まれる見積書ナンバーを含む見積書情報に基づいて、B社の見積書のスキャンデータを取得し、その見積書のスキャンデータのコピーを、関連書類フォルダに保存する。これにより、B社の見積書のスキャンデータと、B社の注文書のスキャンデータとが、関連付けて1のフォルダに保存される。なお、関連書類フォルダのフォルダパス(保存情報の一例)は、関連書類フォルダに保存された注文書、つまり、B社の注文書に対応する注文情報として、注文書データベースに保存される。
また、プログラム26は、注文書情報に含まれる見積書ナンバーが、見積書データベースに保存されている見積書情報に存在していると判断された場合に、その注文書情報に応じた注文書、つまり、B社の注文書のスキャン処理時に設定された設定条件に基づいて、B社の領収書のスキャン処理のワークフロー(以下、「領収書ワークフロー」と記載する)を作成する。詳しくは、注文書のスキャン処理時に設定画面100において入力された設定条件に従ったスキャン処理を実行し、そのスキャン処理により作成されたスキャンデータを、設定条件に従って保存するための領収書ワークフローを、プログラム26は作成する。つまり、注文書のスキャン処理と同じスキャン条件に従ってスキャン処理を実行し、そのスキャン処理により作成されたスキャンデータを、注文書のスキャンデータと同じ形式で、注文書のスキャンデータと同じ保存先に保存するための領収書ワークフローを、プログラム26は作成する。なお、領収書ワークフローが作成されると、その領収書ワークフローの識別情報(識別情報の一例)が、関連書類フォルダに保存された注文書、つまり、B社の注文書に対応する注文情報として、注文書データベースに保存される。
また、プログラム26は、B社の領収書ワークフローを作成すると、図4に示すように、その領収書ワークフローに対応するアイコン(以下、「領収書ワークフローアイコン」と記載する)76を、メイン画面70に表示する。このように、複数の見積書がスキャン処理された後に、1の注文書のスキャン処理が実行され、その1の注文書に記載されている見積書ナンバーが、それら複数の見積書の何れかに記載されている場合に、その1の注文書のスキャン処理時に設定された設定条件に基づいて領収書ワークフローが自動で作成されるとともに、その領収書ワークフローに従ったスキャン処理を実行するための領収書ワークフローアイコン76が、自動でメイン画面70に表示される。つまり、注文書が作成された場合には、通常、その注文書の送付により、備品などが購入され、その購入に対して領収書が作成されることを考慮すると、必ず使用される領収書のワークフローが自動で作成され、そのワークフローに応じた領収書ワークフローアイコン76がメイン画面70に表示される。これにより、必要なワークフローの作成及びアイコンの表示がなされ、不必要なワークフローの作成及びアイコンの表示が抑制される。
なお、関連書類フォルダに見積書のスキャンデータ及び注文書のスキャンデータが保存されると、プログラム26は、LCD16に確認画面(図示省略)を表示する。確認画面には、確認ボタンが表示されており、その確認ボタンが操作されると、プログラム26は、関連書類フォルダを開き、関連書類フォルダに保存されている見積書のスキャンデータ及び注文書のスキャンデータのファイル名をLCD16に表示する。
また、メイン画面70に表示された領収書ワークフローアイコン76が操作されると、プログラム26は、領収書ワークフローに従ったスキャン処理を実行する。つまり、プログラム26は、領収書ワークフローに従ったスキャン処理の実行指令をMFP50に送信し、その実行指令に応じたスキャンデータをMFP50から取得する。そして、プログラム26は、領収書ワークフローに従ったスキャンデータの保存処理を実行する。なお、プログラム26は、上述したように、自動で作成される領収書ワークフローだけでなく、ユーザ操作によりワークフローを作成することも可能とされており、ユーザ操作によりワークフローが作成された場合に、そのワークフローに応じたアイコンがメイン画面70に表示される。そして、そのアイコンが操作されると、プログラム26は、ユーザ操作により作成されたワークフローに従ったスキャン処理を実行する。
このように、メイン画面70に表示された領収書ワークフローアイコン76、若しくは、ユーザ操作により作成されたワークフローに応じたアイコンが操作されることで、領収書ワークフロー、若しくは、ユーザ操作により作成されたワークフローに従ったスキャン処理が実行される。ただし、領収書ワークフローに従ったスキャン処理が実行された場合には、領収書ワークフローに従ったスキャンデータの保存処理だけでなく、先に説明した関連書類フォルダへのスキャンデータの保存処理も実行される。
詳しくは、何らかのワークフローに従ったスキャン処理が実行されると、プログラム26は、実行したワークフローの識別情報が、注文書データベースに保存されている注文書情報に含まれているか否かを判断する。この際、実行したワークフローの識別情報が注文書情報に含まれている場合には、実行したワークフローは領収書ワークフローであるため、プログラム26は、その注文書情報に含まれている関連書類フォルダのフォルダパスと、見積書ナンバーとを取得する。そして、プログラム26は、取得したフォルダパスにより特定される関連書類フォルダに、領収書ワークフローに従って得られたスキャンデータ、つまり、B社の領収書のスキャンデータのコピーを保存する。これにより、B社の見積書のスキャンデータと、B社の注文書のスキャンデータと、B社の領収書のスキャンデータとが、関連付けて1のフォルダに保存される。
また、プログラム26は、領収書ワークフローに従ったスキャン処理を実行すると、関連書類フォルダのフォルダパスと同時に注文書情報から取得した見積書ナンバーを利用して、見積書情報及び注文書情報を削除する。つまり、プログラム26は、取得した見積書ナンバーを含む注文書情報を注文書データベースにおいて特定し、その注文書情報を注文書データベースから削除する。また、プログラム26は、取得した見積書ナンバーを含む見積書情報を見積書データベースにおいて特定し、その見積書情報を見積書データベースから削除する。さらに、プログラム26は、領収書ワークフローに従ったスキャン処理を実行すると、実行した領収書ワークフローを削除するとともに、削除した領収書ワークフローに応じた領収書ワークフローアイコン76をメイン画面70において非表示とする。これにより、データ記憶領域28におけるデータ量の抑制を図るとともに、メイン画面70での不要なアイコン表示を無くすことができる。
なお、関連書類フォルダに見積書のスキャンデータと注文書のスキャンデータと領収書のスキャンデータとが保存された場合にも、プログラム26は、LCD16に確認画面を表示する。そして、確認画面において、確認ボタンが操作されることで、プログラム26は、関連書類フォルダを開き、関連書類フォルダに保存されている見積書のスキャンデータと、注文書のスキャンデータと、領収書のスキャンデータとのファイル名をLCD16に表示する。
また、領収書ワークフローが自動で作成され、そのワークフローに応じた領収書ワークフローアイコン76がメイン画面70に表示されていても、ユーザが、ユーザ設定により領収書のスキャン処理を実行する場合がある。つまり、領収書ワークフローアイコン76がメイン画面70に表示されているにも拘らず、ユーザがスキャンボタン74を操作し、設定画面100において設定条件を設定することで、設定条件に従って領収書のスキャン処理が実行される場合がある。このような場合にも、領収書のスキャンデータが、関連書類フォルダに保存される。
詳しくは、プログラム26は、スキャンボタン74への操作により設定画面100をLCD16に表示した後に、その設定画面100で設定された設定条件に従って、スキャン処理の実行指令を、MFP50に送信する。これにより、プログラム26は、MFP50からスキャンデータを取得する。そして、プログラム26は、MFP50からスキャンデータを取得すると、上述したように、OCRを利用して、そのスキャンデータが見積書若しくは注文書のデータであるか否かを判断する。この際、スキャンデータが見積書と注文書との何れのデータでないと判断されると、プログラム26は、OCRを利用して、そのスキャンデータが領収書のデータであるか否かを判断する。そして、そのスキャンデータが領収書のデータであると判断された場合に、プログラム26は、領収書のスキャンデータであると判断されたデータから、OCRを利用して、見積書ナンバーを取得する。
続いて、プログラム26は、取得した見積書ナンバーが、注文書データベースに保存されている注文書情報に存在しているか否かを判断する。この際、取得した見積書ナンバーが注文書情報に存在している場合に、MFP50から取得した領収所のスキャンデータは、その注文書情報が示す注文書のスキャンデータと見積書ナンバーが共通しており、その領収書と、その注文書とは一連の作業の下で取り扱われる書類である。そこで、プログラム26は、領収書のスキャンデータから取得した見積書ナンバーが存在する注文書情報に含まれる関連書類フォルダのフォルダパスを取得し、そのフォルダパスが示す関連書類フォルダに、領収書のスキャンデータを保存する。これにより、一連の作業の下で取り扱われる見積書と注文書と領収書、つまり、B社の見積書と注文書と領収書との各々のスキャンデータが、関連付けて1のフォルダに保存される。
なお、プログラム26が、スキャンボタン74への操作によりB社の領収書のスキャンデータを取得し、その領収書のスキャンデータを関連書類フォルダに保存している場合には、自動で作成された領収書ワークフロー、つまり、B社の領収書のスキャン処理を実行するためのワークフローは、不要となる。また、その領収書ワークフローを実行するための領収書ワークフローアイコン76も不要となる。このため、プログラム26が、スキャンボタン74への操作によりB社の領収書のスキャンデータを取得し、その領収書のスキャンデータを関連書類フォルダに保存している場合に、領収書ワークフローを削除するとともに、領収書ワークフローアイコン76をメイン画面70において非表示とする。
また、一連の作業の下で取り扱われるB社の見積書と注文書と領収書との各々のスキャンデータが関連書類フォルダに保存されれば、それらの複数の書類に共通する見積書ナンバーを含む見積書情報及び注文書情報も不要となる。そこで、プログラム26は、B社の見積書と注文書と領収書とに共通する見積書ナンバー、つまり、領収書のスキャンデータから取得された見積書ナンバーを含む見積書情報及び注文書情報を、見積書データベース及び注文書データベースから削除する。
なお、スキャンボタン74への操作により、関連書類フォルダに見積書のスキャンデータと注文書のスキャンデータと領収書のスキャンデータとが保存された場合にも、プログラム26は、LCD16に確認画面を表示する。そして、確認画面において、確認ボタンが操作されることで、プログラム26は、関連書類フォルダを開き、関連書類フォルダに保存されている見積書のスキャンデータと、注文書のスキャンデータと、領収書のスキャンデータとのファイル名をLCD16に表示する。
なお、上述したスキャンボタン74への操作によるスキャン処理、若しくは、領収書ワークフローアイコン76への操作によるスキャン処理等は、CPU12においてプログラム26が実行されることによって行われる。以下に、図5乃至図12を用いて、プログラム26のフローが実行される際の処理を説明する。
まず、プログラム26は、メイン画面70においてスキャンボタン74が操作されると、図5に示すように、設定画面100をLCD16に表示する(S100)。次に、プログラム26は、設定画面100のOKボタン104が操作されたことに応じて、設定条件に従ってスキャン処理を実行するための指令をMFP50に送信する(S102)。
続いて、プログラム26は、スキャン処理を実行するための指令の送信に応じて、スキャンデータをMFP50から受信する(S106)。次に、プログラム26は、受信したスキャンデータが見積書のデータであるか否かを判断する(S108)。そして、受信したスキャンデータが見積書のデータである場合(S108:YES)に、見積書対応処理実行サブルーチン(S110)が実行される。
見積書対応処理実行サブルーチンでは、プログラム26は、図6に示すように、スキャンデータの保存先はPC10であるか否かを判断する(S200)。つまり、プログラム26は、設定条件においてスキャンデータの保存方法がPC保存であるか否かを判断する。この際、スキャンデータの保存先がPC10でない場合(S200:NO)に、プログラム26は、予め設定された設定ファイルにスキャンデータのコピーを保存する(S202)。そして、プログラム26は、設定条件に従ったスキャンデータの保存処理を実行する(S204)。ここで、スキャンデータの保存方法がクラウド保存である場合には、スキャンデータを保存するコマンドをクラウドに送信する。スキャンデータの保存方法がアプリ処理の場合は、スキャンデータをアプリケーションに出力する。スキャンデータの保存方法がメール添付の場合は、スキャンデータをメーラに出力する。すなわち、スキャンデータの保存処理とは、プログラム26自身が記憶領域にスキャンデータを保存するまでの処理を行うものに限らず、他のアプリケーション等がスキャンデータを記憶領域に保存するために、スキャンデータを他のアプリケーション等に出力する処理も含む。また、S200でスキャンデータの保存先がPC10である場合(S200:YES)に、S202の処理がスキップされ、プログラム26は、設定条件に従ったスキャンデータの保存処理を実行する(S204)。
次に、スキャンデータの保存処理が実行されると、プログラム26は、スキャンデータに基づいて、OCRを利用して、見積書情報に必要な情報、つまり、見積書ナンバー,見積書の発行日等を取得する(S206)。そして、プログラム26は、S206で取得した情報を含む見積書情報を、見積書データベースに保存する(S208)。これにより、見積書対応処理実行サブルーチンが終了する。そして、見積書対応処理実行サブルーチンが終了すると、図5に示すように、本フローが終了する。
また、S108でスキャンデータが見積書のデータでない場合(S108:NO)に、プログラム26は、受信したスキャンデータが注文書のデータであるか否かを判断する(S112)。そして、受信したスキャンデータが注文書のデータである場合(S112:YES)に、注文書対応処理実行サブルーチン(S114)が実行される。
注文書対応処理実行サブルーチンでは、プログラム26は、図7に示すように、スキャンデータに基づいて、OCRを利用して、注文書情報に必要な情報、つまり、見積書ナンバー,注文書ナンバー,注文書の発行日等を取得する(S300)。そして、プログラム26は、S300で取得した情報を含む注文書情報を、注文書データベースに保存する(S302)。次に、プログラム26は、注文書情報に含まれる見積書ナンバーが、見積書データベースに存在するか否かを判断する(S304)。この際、注文書情報に含まれる見積書ナンバーが、見積書データベースに存在する場合(S304:YES)に、プログラム26は、関連書類フォルダを作成する(S306)。
次に、プログラム26は、関連書類フォルダに、見積書のスキャンデータと、注文書のスキャンデータとを保存する(S308)。続いて、プログラム26は、関連書類フォルダのフォルダパスを注文書情報として注文書データベースに保存する(S310)。そして、プログラム26は、図8に示すように、領収書ワークフローを作成し(S312)、領収書ワークフローアイコン76をメイン画面70に表示する(S314)。続いて、プログラム26は、領収書ワークフローの識別情報を注文書情報として注文書データベースに保存する(S316)。
次に、プログラム26は、確認画面をLCD16に表示する(S318)。そして、プログラム26は、確認画面の確認ボタンが操作されたか否かを判断する(S320)。この際、確認ボタンが操作された場合(S320:YES)に、プログラム26は、関連書類フォルダを開く(S322)。そして、プログラム26は、設定条件に従ったスキャンデータの保存処理を実行する(S324)。これにより、注文書対応処理実行サブルーチンが終了する。また、S320で確認ボタンが操作されていない場合(S320:NO)、及び、S304で注文書情報に含まれる見積書ナンバーが、見積書データベースに存在しない場合(S304:NO)に、S324の処理が実行され、注文書対応処理実行サブルーチンが終了する。そして、注文書対応処理実行サブルーチンが終了すると、図5に示すように、本フローが終了する。
また、S112でスキャンデータが注文書のデータでない場合(S112:NO)に、プログラム26は、受信したスキャンデータが領収書のデータであるか否かを判断する(S116)。そして、受信したスキャンデータが領収書のデータでない場合(S116:NO)、すなわち、断続的な一連の作業の下で同じ条件で実行されるスキャン処理とは無関係にスキャン処理が実行されたスキャンデータである場合に、プログラム26は、設定条件に従ったスキャンデータの保存処理を実行し(S117)、本フローが終了する。一方、受信したスキャンデータが領収書のデータである場合(S116:YES)に、領収書対応処理実行サブルーチンが実行される。
領収書対応処理実行サブルーチンでは、プログラム26は、図9に示すように、スキャンデータに基づいて、OCRを利用して、見積書ナンバーを取得する(S400)。そして、プログラム26は、S400で取得した見積書ナンバーが、見積書データベースに存在するか否かを判断する(S402)。この際、見積書ナンバーが見積書データベースに存在する場合(S402:YES)に、プログラム26は、その見積書ナンバーを含む見積書情報を見積書データベースから削除する(S404)。そして、S406に進む。一方、見積書ナンバーが見積書データベースに存在しない場合(S402:NO)に、S404の処理がスキップされ、S406に進む。
S406では、プログラム26は、S400で取得した見積書ナンバーが、注文書データベースに存在するか否かを判断する(S406)。この際、見積書ナンバーが見積書データベースに存在する場合(S406:YES)に、プログラム26は、領収書ワークフローを削除する(S408)。次に、プログラム26は、領収書ワークフローアイコン76をメイン画面70において非表示とする(S410)。続いて、プログラム26は、図10に示すように、注文書データベースから関連書類フォルダのフォルダパスを取得する(S412)。そして、プログラム26は、関連書類フォルダに領収書のスキャンデータを保存する(S414)。
次に、プログラム26は、確認画面をLCD16に表示する(S416)。そして、プログラム26は、確認画面の確認ボタンが操作されたか否かを判断する(S418)。この際、確認ボタンが操作された場合(S418:YES)に、プログラム26は、関連書類フォルダを開く(S420)。そして、S422に進む。一方、確認ボタンが操作されていない場合(S418:NO)に、S420の処理がスキップされ、S422に進む。S422では、プログラム26は、S400で取得した見積書ナンバーを含む注文書情報を注文書データベースから削除する(S422)。そして、プログラム26は、設定条件に従ったスキャンデータの保存処理を実行する(S424)。これにより、領収書対応処理実行サブルーチンが終了する。また、S406で見積書ナンバーが見積書データベースに存在しない場合(S406:NO)に、S424の処理が実行され、領収書対応処理実行サブルーチンが終了する。そして、領収書対応処理実行サブルーチンが終了すると、図5に示すように、本フローが終了する。
また、プログラム26は、領収書ワークフローアイコン76若しくは、ユーザがユーザ操作により作成したワークフローを実行するためのアイコンが操作されると、図11に示すように、操作されたアイコンに応じたワークフローに従ったスキャン処理を実行するための指令をMFP50に送信する(S500)。次に、プログラム26は、スキャン処理を実行するための指令の送信に応じて、スキャンデータをMFP50から受信する(S502)。そして、プログラム26は、ワークフローの設定条件に従ったスキャンデータの保存処理を実行する(S504)。
次に、プログラム26は、実行したワークフローの識別情報が注文書データベースに存在するか否かを判断する(S506)。この際、実行したワークフローの識別情報が注文書データベースに存在しない場合(S506:NO)に、本フローが終了する。一方、実行したワークフローの識別情報が注文書データベースに存在する場合(S506:YES)に、プログラム26は、注文書データベースから、関連書類フォルダのフォルダパスと、見積書ナンバーとを取得する(S508)。そして、プログラム26は、取得したフォルダパスにより特定される関連書類フォルダに、領収書のスキャンデータのコピーを保存する(S510)。
次に、プログラム26は、図12に示すように、確認画面をLCD16に表示する(S512)。そして、プログラム26は、確認画面の確認ボタンが操作されたか否かを判断する(S514)。この際、確認ボタンが操作された場合(S514:YES)に、プログラム26は、関連書類フォルダを開く(S516)。そして、S518に進む。一方、確認ボタンが操作されていない場合(S514:NO)に、S516の処理がスキップされ、S518に進む。
S518では、プログラム26は、S508で取得した見積書ナンバーを含む見積書情報を見積書データベースから削除する(S518)。次に、プログラム26は、S508で取得した見積書ナンバーを含む注文書情報を注文書データベースから削除する(S520)。続いて、プログラム26は、領収書ワークフローを削除する(S522)。さらに、プログラム26は、領収書ワークフローアイコン76をメイン画面70において非表示とする(S524)。これにより、本フローが終了する。
なお、S106を実行するCPU12は、第1取得手段及び第2取得手段の一例である。S202を実行するCPU12は、第3保存手段の一例である。S204を実行するCPU12は、第1保存手段の一例である。S206を実行するCPU12は、第1特定手段の一例である。S208を実行するCPU12は、第1記憶制御手段の一例である。S300を実行するCPU12は、第2特定手段の一例である。S304を実行するCPU12は、判断手段の一例である。S308,S414,S510を実行するCPU12は、関連保存手段の一例である。S308,S414,S510で関連書類フォルダに保存された各スキャンデータのコピーが関連情報の一例である。S312を実行するCPU12は、作成手段の一例である。S314を実行するCPU12は、表示制御手段の一例である。S324を実行するCPU12は、第2保存手段の一例である。S410を実行するCPU12は、非表示制御手段の一例である。S500,S502,S510を実行するCPU12は、実行手段の一例である。S518を実行するCPU12は、削除手段の一例である。
<実施形態の効果>
上記した実施形態によれば、以下の効果を奏する。
上記実施形態では、プログラム26が、見積書ナンバーが付与された見積書のスキャンデータと、当該見積書ナンバーと共通のナンバーが付与された注文書のスキャンデータとを、MFP50から取得した場合に、その見積書のスキャンデータと注文書のスキャンデータとに共通する見積書ナンバーが付与された領収書のスキャン処理を実行するための領収書ワークフローを、プログラム26が作成する。さらに、プログラム26は、その領収書ワークフローを実行するための領収書ワークフローアイコン76をメイン画面70に表示する。そして、その領収書ワークフローアイコン76が操作されることで、領収書ワークフローに従った領収書のスキャン処理が実行される。このように、見積書と注文書とに共通する見積書ナンバーが付与された領収書に対応するワークフローが自動で作成されることで、不必要なワークフローの作成が抑制され、必要なワークフローのみを自動で好適に作成することができる。
また、上記実施形態では、見積書のスキャンデータに基づいて、見積書ナンバーが特定され、注文書のスキャンデータに基づいて、見積書ナンバーが特定される。そして、見積書ナンバーが共通する見積書のスキャンデータと注文書のスキャンデータとが、関連書類フォルダに保存される。これにより、一連の作業の下で取り扱われる見積書及び注文書の各々のスキャンデータを、関連書類フォルダに確実に保存することができる。
また、上記実施形態では、プログラム26が、見積書ナンバーが付与された見積書のスキャンデータと、当該見積書ナンバーと共通のナンバーが付与された注文書のスキャンデータとを、MFP50から取得した場合に、その見積書のスキャンデータと、その注文書のスキャンデータとを、1のフォルダ、つまり、関連書類フォルダに保存する。これにより、一連の作業の下で取り扱われる見積書と注文書との各々のスキャンデータを、1のフォルダに保存することができる。
また、上記実施形態では、自動で作成された領収書ワークフローに従ったスキャン処理によるスキャンデータが、見積書のスキャンデータと注文書のスキャンデータとともに、関連書類フォルダに保存される。これにより、一連の作業の下で取り扱われる見積書と注文書と領収書との各々のスキャンデータを、1のフォルダに保存することができる。
また、上記実施形態では、設定条件に応じたスキャンデータの保存先がPC10のデータ記憶領域28でない場合、つまり、設定条件に応じて保存されたスキャンデータにプログラム26がアクセスすることができない場合に、スキャンデータは、設定条件に応じた保存先に保存されるだけでなく、そのスキャンデータのコピーが、データ記憶領域28の予め設定された設定ファイルに保存される。これにより、プログラム26は、設定条件に応じた保存先がアクセス不能な領域であっても、設定ファイルにアクセスすることで、スキャンデータを取得することができる。
また、上記実施形態では、見積書のスキャンデータに基づいて見積書ナンバーが取得されると、その見積書ナンバーを含む見積書情報が、見積書データベースに保存される。そして、注文書のスキャンデータに基づいて見積書ナンバーが取得されると、注文書の見積書ナンバーと同じナンバーが、見積書データベースに存在するか否かが判断される。この際、注文書の見積書ナンバーと同じナンバーが、見積書データベースに存在する場合に、領収書ワークフローが自動で作成される。これにより、見積書と注文書とに共通する見積書ナンバーが付与された領収書に対応して、ワークフローを好適に自動で作成することが可能となる。
また、上記実施形態では、領収書ワークフローに従ったスキャン処理が実行されると、そのスキャン処理によるスキャンデータから、見積書ナンバーが取得される。そして、その見積書ナンバーと同じナンバーを含む見積書情報が、見積書データベースから削除される。これにより、不要な情報によるデータ容量の圧迫を抑制することが可能となる。
また、上記実施形態では、領収書ワークフローアイコン76への操作でなく、スキャンボタン74への操作により、プログラム26が、領収書のスキャンデータを取得した場合に、領収書ワークフローアイコン76が非表示とされる。これにより、不要なアイコンの表示を防止することができる。
また、上記実施形態では、関連書類フォルダのフォルダパスと、領収書ワークフローの識別情報とが注文書情報として、注文書データベースに保存される。そして、領収書ワークフローに従ったスキャン処理が実行されると、実行された領収書ワークフローの識別情報と同じ注文書情報に保存されたフォルダパスにより特定される関連書類フォルダに、領収書のスキャンデータが保存される。これにより、領収書のスキャンデータを、一連の作業の下で取り扱われる見積書及び注文書の各々のスキャンデータと同じフォルダに保存することができる。
<変形例>
なお、本発明は、上記実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。具体的には、例えば、上記実施形態では、見積書ナンバーを識別子として採用し、見積書ナンバーが共通する見積書と注文書と領収書とが関連書類フォルダに保存されているが、見積書ナンバーに限定されず、会社名などが共通する見積書と注文書と領収書とが関連書類フォルダに保存されてもよい。つまり、例えば、B社が発行した見積書と、B社宛の注文書と、B社宛の領収書とが、「B社」を識別子として、関連書類フォルダに保存されてもよい。
また、上記実施形態では、設定条件に応じた保存先がPC10以外である場合に、見積書のスキャンデータのコピーが設定ファイルに、一旦、保存された後に、その設定ファイルに保存された見積書のスキャンデータコピーが、関連書類フォルダに保存されているが、見積書のスキャンデータのコピーが保存される領域を関連書類フォルダとして扱ってもよい。すなわち、注文書のスキャンデータを取得した際に、見積書ナンバーが同じ見積書のスキャンデータのコピーが保存されたフォルダ内に、取得した注文書のスキャンデータのコピーを保存してもよい。さらに、そのフォルダ内に、領収書のスキャンデータのコピーを保存してもよい。
また、上記実施形態では、設定条件に応じた保存先がクラウドである場合に、見積書のスキャンデータのコピーが設定ファイルに保存されているが、見積書のスキャンデータのコピーが設定ファイルに保存されず、見積書のスキャンデータが必要な場合に、プログラム26が、クラウドから見積書のスキャンデータを取得してもよい。
領収書ワークフローの設定条件を注文書のスキャンデータを取得し保存する際の設定情報と同じにしたが、これに限らず、例えば、見積書のスキャンデータを取得し保存する際の設定情報と同じにしてもよい。
関連書類フォルダには、各スキャンデータのコピーを保存したが、各スキャンデータにアクセス可能なパスを含むショートカット情報を保存してもよい。この場合、ショートカット情報が関連情報の一例となる。
また、上記実施形態では、注文書情報に含まれる見積書ナンバーが、見積書データベースに存在しない場合は、領収書ワークフローを作成しないが、見積書データベースに見積書ナンバーが存在しない場合であっても、スキャンした注文書情報に含まれる見積書ナンバーしたがって、領収書ワークフローを作成してもよい。
また、上記実施形態では、一連の作業の下で取り扱われる書類として、見積書,注文書,領収書が採用されているが、種々の一連の作業の下で取り扱われる書類を採用することが可能である。また、スキャンデータに限定されず、文書データ,写真データ等の種々のデータに本発明を適用することができる。
また、上記実施形態では、CPU12によって図5乃至図12に示す処理が実行される例を説明したが、これら処理は、CPU12に限らず、ASICや他の論理集積回路により実行されてもよいし、これら処理が、CPU等やASIC、他の論理集積回路が協働することにより実行されてもよい。