以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
まず、実施形態に係る情報処理システム1のシステム構成について、図1を参照しながら説明する。図1は、実施形態に係る情報処理システム1の一例のシステム構成を示す図である。
図1に示す情報処理システム1は、機器10と、PC端末20と、経費精算システム30とを含み、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
機器10は、ユーザが使用する各種の電子機器(例えば、MFP(Multifunction Peripheral)等の画像形成装置、スマートフォン、タブレット端末、デジタルカメラ、プロジェクタ、電子黒板等)である。
機器10は、種々の機能をそれぞれ実現する複数の処理のうちの1以上の処理を組み合わせた一連の処理により実現される各種のサービスを提供する。
ここで、機能には、例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール配信、OCR(Optical Character Recognition)処理、加工や圧縮・解凍、リポジトリへの格納等が挙げられる。また、機能には、例えば、外部サービス(例えば、経費精算システム30が提供する経費精算サービス)との連携等が挙げられる。
以降では、機器10は、経費精算サービスと連携する処理が含まれる一連の処理により実現されるサービス(当該サービスを「領収書登録サービス」とも表す。)を提供するものとする。一連の処理は、「処理フロー」とも表す。
なお、以降では、複数の機器10について、各々を区別するときは、「機器101」、「機器102」等と添え字を用いて記載する。
PC端末20は、例えば、ユーザが使用するデスクトップPC(パーソナルコンピュータ)、ノート型PC、スマートフォン、タブレット端末等である。ユーザは、経費精算システム30が提供する経費精算サービスを利用することができる。
なお、以降では、複数のPC端末20について、各々を区別するときは、「PC端末201」、「PC端末202」等と添え字を用いて記載する。
経費精算システム30は、ネットワークN1を介して、経費精算サービスを提供するコンピュータシステムである。経費精算サービスとは、旅費交通費や接待交際費等を経費として精算するためのサービスである。ユーザは、例えば、PC端末20に搭載されたブラウザを用いて、経費精算システム30にアクセスすることにより、経費精算サービスを利用することができる。
また、図1に示す情報処理システム1の構成は一例であって、他の構成であっても良い。例えば、実施形態に係る情報処理システム1には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器が領収書登録サービスを提供しても良い。
<ハードウェア構成>
次に、実施形態に係る情報処理システム1に含まれる機器10が画像形成装置である場合のハードウェア構成について、図2を参照しながら説明する。図2は、実施形態に係る機器10が画像形成装置である場合の一例のハードウェア構成を示す図である。
図2に示す機器10は、コントローラ11と、操作パネル12と、外部I/F13と、通信I/F14と、プリンタ15と、スキャナ16とを有する。また、コントローラ11は、CPU(Central Processing Unit)31と、RAM(Random Access Memory)32と、ROM(Read Only Memory)33と、NVRAM34と、HDD(Hard Disk Drive)35とを有する。
ROM33は、各種プログラムやデータを格納している不揮発性の半導体メモリである。RAM32は、プログラムやデータを一時保持する揮発性の半導体メモリである。NVRAM34は、例えば設定情報等を格納している。また、HDD35は、各種プログラムやデータを格納している不揮発性の記憶装置である。
CPU31は、ROM33やNVRAM34、HDD35等からプログラムやデータ、設定情報等をRAM32上に読み出し、処理を実行することで、機器10全体の制御や機能を実現する演算装置である。
操作パネル12は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。これにより、機器10は、外部I/F13を介して記録媒体13aの読み取り及び/又は書き込みを行うことができる。なお、記録媒体13aには、例えば、ICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
通信I/F14は、機器10をネットワークN1に接続するインタフェースである。これにより、機器10は、通信I/F14を介して通信を行うことができる。プリンタ15は、印刷データを印刷する印刷装置である。スキャナ16は、原稿を読み取って電子ファイル(画像ファイル)を生成する読取装置である。
機器10が画像形成装置である場合、当該機器10は、図2に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
次に、実施形態に係る情報処理システム1に含まれる機器10がスマートフォンである場合のハードウェア構成について、図3を参照しながら説明する。図3は、実施形態に係る機器10がスマートフォンである場合の一例のハードウェア構成を示す図である。なお、機器10がタブレット端末等である場合も同様のハードウェア構成である。
図3に示す機器10は、入力装置41と、表示装置42と、外部I/F43と、通信I/F44とを有する。また、機器10は、RAM45と、CPU46と、フラッシュメモリ47と、カメラ装置48とを有する。これらの各ハードウェアは、それぞれがバス49で接続されている。
入力装置41は、タッチパネル等であり、ユーザが各種操作信号を入力するのに用いられる。表示装置42は、ディスプレイ等であり、機器10による処理結果を表示する。
通信I/F44は、機器10をネットワークN1に接続するインタフェースである。これにより、機器10は、通信I/F44を介して通信を行うことができる。
フラッシュメモリ47は、例えばEEPROM(Electrically Erasable and Programmable Read Only Memory)等であり、プログラムやデータを不揮発性の記憶装置である。フラッシュメモリ47に格納されるプログラムやデータには、機器10全体を制御する基本ソフトウェアであるOS(Operating System)、OS上において各種機能を提供するアプリケーションソフトウェア等がある。
外部I/F43は、外部装置とのインタフェースである。外部装置には、記録媒体43a等がある。これにより、機器10は、外部I/F43を介して記録媒体43aの読み取りや書き込みを行うことができる。記録媒体43aには、例えば、SDメモリカードやUSBメモリ等がある。
RAM45は、プログラムやデータを一時保持する揮発性の半導体メモリである。CPU46は、フラッシュメモリ47等の記憶装置からプログラムやデータをRAM45上に読み出し、処理を実行することで、機器10全体の制御や機能を実現する演算装置である。カメラ装置48は、撮影範囲内を撮影することにより画像ファイル(撮影画像ファイル)を生成する撮像装置である。
機器10がスマートフォンである場合、当該機器10は、図3に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
次に、実施形態に係る情報処理システム1に含まれるPC端末20のハードウェア構成について、図4を参照しながら説明する。図4は、実施形態に係るPC端末20の一例のハードウェア構成を示す図である。
図4に示すPC端末20は、入力装置21と、表示装置22と、外部I/F23と、RAM24とを有する。また、PC端末20は、ROM25と、CPU26と、通信I/F27と、HDD28とを有する。これらの各ハードウェアは、それぞれがバス29で接続されている。
入力装置21は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置22は、ディスプレイ等を含み、PC端末20による処理結果を表示する。
通信I/F27は、PC端末20をネットワークN1に接続するインタフェースである。これにより、PC端末20は、通信I/F27を介して通信を行うことができる。
HDD28は、プログラムやデータを格納している不揮発性の記憶装置である。HDD28に格納されるプログラムやデータには、PC端末20全体を制御する基本ソフトウェアであるOS、OS上において各種機能を提供するアプリケーションソフトウェア等がある。
なお、PC端末20は、HDD28に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであっても良い。また、HDD28は、格納しているプログラムやデータを所定のファイルシステム及び/又はDBにより管理している。
外部I/F23は、外部装置とのインタフェースである。外部装置には、記録媒体23a等がある。これにより、PC端末20は、外部I/F23を介して記録媒体23aの読み取りや書き込みを行うことができる。記録媒体23aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
ROM25は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM25には、PC端末20の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM24は、プログラムやデータを一時保持する揮発性の半導体メモリである。
CPU26は、ROM25やHDD28等の記憶装置からプログラムやデータをRAM24上に読み出し、処理を実行することで、PC端末20全体の制御や機能を実現する演算装置である。
実施形態に係るPC端末20は、図4に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
[第一の実施形態]
以降では、第一の実施形態について説明する。第一の実施形態では、画像形成装置である機器10が領収書登録サービスを提供する場合について説明する。
<領収書登録サービスの概略>
まず、本実施形態に係る機器10が提供する領収書登録サービスの概略について説明する。
本実施形態に係る機器10は、原稿台(スキャナ16)に置かれた領収書をスキャンすることで生成したスキャン画像ファイルから領収書を示す領域を抽出して、領収書画像ファイルを作成し、経費精算サービスに登録する領収書登録サービスを提供する。
すなわち、本実施形態に係る機器10は、図5に示すように、例えば、3枚の領収書をスキャンすることで生成したスキャン画像ファイルG100から各領収書を示す領域R110〜R130を抽出して、領収書画像ファイルG110〜G130を作成する。そして、本実施形態に係る機器10は、作成した領収書画像ファイルG110〜G130を経費精算サービス(経費精算システム30)に登録する。
ただし、機器10により提供されるサービスは、領収書登録サービスに限られない。機器10は、例えば、スキャン画像ファイルから領収書を示す領域を抽出することにより作成した領収書画像ファイルに対して、OCR処理や暗号化処理等を行った上で、経費精算サービスに登録するサービスを提供しても良い。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について、図6を参照しながら説明する。図6は、第一の実施形態に係る情報処理システム1の一例の機能構成を示す図である。
図6に示すPC端末20は、例えばCPU26等により実行されるブラウザ200を有する。PC端末20のユーザは、ブラウザ200を介して、経費精算システム30が提供する経費精算サービスを利用することができる。
図6に示す機器10は、例えばCPU31等により実行される領収書スキャンアプリ100を有する。領収書スキャンアプリ100は、機器10のユーザが領収登録サービスを利用するためのアプリケーションプログラムである。ユーザは、機器10にインストールされた領収書スキャンアプリ100を用いて、領収書登録サービスを利用することができる。
また、図6に示す機器10は、入出力サービス処理部110と、ドキュメントサービス部120とを有する。これら各機能部は、機器10にインストールされた1以上のプログラムが、CPU31に実行させる処理により実現される。
更に、図6に示す機器10は、アプリ情報記憶部130を有する。当該記憶部は、HDD35により実現可能である。
入出力サービス処理部110は、機器10が提供するサービスに関する処理を行う。ここで、入出力サービス処理部110は、アプリ管理部111と、ロジック処理部112とを有する。
アプリ管理部111は、アプリ情報記憶部130に記憶されているアプリ情報1000を管理する。なお、アプリ情報1000とは、一連の処理により実現されるサービスを提供するためのアプリケーションである。すなわち、機器10が提供する各種のサービス(例えば、領収書登録サービス)は、アプリ情報1000により提供される。
また、アプリ管理部111は、ロジック処理部112からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100を返信する。なお、処理フロー情報1100とは、アプリ情報1000により提供されるサービスを実現する一連の処理が定義された情報である。
ロジック処理部112は、領収書スキャンアプリ100等のアプリケーションからの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100をアプリ管理部111から取得する。そして、ロジック処理部112は、アプリ管理部111から取得した処理フロー情報1100に基づいて、当該アプリ情報1000が提供するサービス(例えば、領収登録サービス)を実現する一連の処理(処理フロー)を実行する。
これにより、本実施形態に係る機器10は、領収登録サービス等の各種のサービスを提供することができる。
ドキュメントサービス部120は、処理フロー情報1100に基づく一連の処理(処理フロー)に含まれる所定の処理を実行する。ここで、ドキュメントサービス部120は、領域抽出部121を有する。
領域抽出部121は、スキャン画像ファイルから所定の領域(例えば、領収書を示す領域等)を抽出して、1以上の画像ファイル(例えば、領収書画像ファイル)を作成する。領域抽出部121は、このような所定の領域の抽出を、例えば、テンプレートマッチング等の画像処理技術を用いることで行う。
なお、ドキュメントサービス部120は、例えば、電子ファイルを暗号化又は復号する暗号化・復号部、電子ファイルを圧縮又は解凍する圧縮・解凍部、電子ファイルに対してOCR処理を行うOCR処理部等を有していても良い。
このように、ドキュメントサービス部120には、一連の処理(処理フロー)に含まれる所定の処理を実行する種々の機能部が含まれる。したがって、ドキュメントサービス部120は、これら種々の機能を提供するプログラム(モジュール)群により実現される。
アプリ情報記憶部130は、アプリ情報1000を記憶する。アプリ情報1000は、当該アプリ情報1000を識別するアプリIDと関連付けてアプリ情報記憶部130に記憶されている。なお、アプリ情報1000には、アプリケーション名が関連付けられていても良い。
ここで、アプリ情報1000には、処理フロー情報1100が含まれる。例えば、領収書登録サービスを提供するアプリ情報1000には、当該サービスを実現する一連の処理が定義された処理フロー情報1100が含まれる。
なお、アプリ情報1000には、2以上の処理フロー情報1100が含まれていても良い。
処理フロー情報1100は、上述したように、アプリ情報1000により提供されるサービスを実現する一連の処理(処理フロー)が定義された情報である。なお、処理フロー情報1100の詳細については後述する。
ここで、ロジック処理部112の詳細な機能構成について、図7を参照しながら説明する。図7は、本実施形態に係るロジック処理部112の一例の機能構成を示す図である。
図7に示すロジック処理部112は、フロー実行部301と、コンポーネント管理部302と、コンポーネント群303とを有する。
フロー実行部301は、領収書スキャンアプリ100等のアプリケーションからの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100をアプリ管理部111から取得する。そして、フロー実行部301は、アプリ管理部111から取得した処理フロー情報1100に基づく一連の処理(処理フロー)を実行する。
ここで、処理フロー情報1100に基づく一連の処理(処理フロー)は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
コンポーネント管理部302は、コンポーネントを管理する。コンポーネント管理部302は、フロー実行部301からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部301に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ(例えばRAM32)上に展開することである。
コンポーネント群303は、コンポーネントの集合である。コンポーネント群303には、領域抽出コンポーネント410と、経費精算コンポーネント420と、反復コンポーネント430とが含まれる。
領域抽出コンポーネント410は、領収書画像ファイルを作成するためのコンポーネントである。すなわち、領域抽出コンポーネント410は、ドキュメントサービス部120の領域抽出部121に処理を要求することにより、領収書を示す領域をスキャン画像ファイルから抽出して、領収書画像ファイルを作成する。
経費精算コンポーネント420は、経費精算システム30に対して各種の要求を行うためのコンポーネントである。すなわち、経費精算コンポーネント420は、経費精算システム30に対して、領収書画像ファイルが登録される台帳の作成を要求する。また、経費精算コンポーネント420は、領収書画像ファイルの台帳への登録を要求する。
反復コンポーネント430は、1以上の処理の反復を実現するためのコンポーネントである。すなわち、反復コンポーネント430は、1以上の処理を含む他の一連の処理(処理フロー)を所定の回数繰り返し実行させることで、1以上の処理の反復を実現する。
なお、コンポーネント群303には、これら以外にも、例えば、電子ファイルを圧縮するための圧縮コンポーネント、電子ファイルのデータ形式を変換するための変換コンポーネント等の各種のコンポーネントが含まれる。
また、コンポーネント群303に含まれる各コンポーネントは、コンポーネント共通I/F400を有する。コンポーネント共通I/F400は、各コンポーネントに対して共通に定義されたAPI(Application Program Interface)であり、コンポーネントを生成するためのAPIと、コンポーネントの処理を実行するためのAPIとが含まれる。
なお、コンポーネント管理部302は、例えば、機器10の起動時に、コンポーネント共通I/F400により、コンポーネント群303に含まれる各コンポーネントを生成しても良い。
ここで、本実施形態に係る領収書登録サービスを実現する一連の処理(処理フロー)が定義された処理フロー情報1100について、図8を参照しながら説明する。図8は、領収書登録サービスを実現する一連の処理が定義された処理フロー情報1100の一例を示す図である。
図8に示す処理フロー情報1100には、当該処理フロー情報1100を識別するフローID1101と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細1102とが含まれる。
フロー詳細1102には、処理フローに含まれる各処理の処理内容を定義した処理定義1111〜1113が含まれる。処理定義1111〜1113には、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」と、当該コンポーネントに対するパラメータ情報が定義される「"parameters"」とが含まれる。
具体的には、処理定義1111の「"component"」には、領域抽出コンポーネント410のコンポーネント名「"extract"」が定義されている。また、処理定義1111の「"parameters"」には、領域抽出コンポーネント410に対するパラメータ情報が定義されている。
なお、領域抽出コンポーネント410に対するパラメータ情報には、例えば、抽出対象の領域を特定するためのパラメータ情報(例えば、抽出対象である領収書の画像ファイル)等がある。
同様に、処理定義1112の「"component"」には、経費精算コンポーネント420のコンポーネント名「"expense"」が定義されている。また、処理定義1112の「"parameters"」には、経費精算コンポーネント420に対するパラメータ情報が定義されている。
処理定義1112の「"parameters"」には、経費精算システム30を利用するための認証情報(例えば、ユーザ名やパスワード、アクセストークン)等を設定するためのパラメータ情報「"auth":null」が定義されている。
なお、経費精算コンポーネント420に対するパラメータ情報には、これ以外にも、例えば、経費精算システム30に対する要求(例えば、台帳の作成要求)を設定するパラメータ情報等がある。
また、同様に、処理定義1113の「"component"」には、反復コンポーネント430のコンポーネント名「"iterate"」が定義されている。また、処理定義1113の「"parameters"」には、反復コンポーネント430に対するパラメータ情報が定義されている。
処理定義1113の「"parameters"」には、反復コンポーネント430が繰り返し実行させる一連の処理が定義された処理フロー情報1100のフローIDを示すパラメータ情報「"flowid":"flow101"」が定義されている。
なお、反復コンポーネント430に対するパラメータ情報には、これ以外にも、例えば、反復コンポーネント430が一連の処理を繰り返し実行させる回数(反復回数)を設定するためのパラメータ情報等がある。
このように、処理フロー情報1100には、一連の処理に含まれる各処理を実行するコンポーネントと、当該コンポーネントに対するパラメータ情報とが定義される。なお、各処理定義に定義された処理の実行順は、フロー詳細1102において、上から順に定義される。すなわち、図8に示す処理フロー情報1100に基づく一連の処理(処理フロー)では、処理定義1111に定義された処理、処理定義1112に定義された処理、及び処理定義1113に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報1100には、例えば、各処理定義に定義された処理の実行順を示す情報が定義されていても良い。
これにより、領域抽出コンポーネント410は、スキャン画像ファイルに含まれる領収書の領域を抽出して、1以上の領収書画像ファイルを作成することができる。また、経費精算コンポーネント420は、領収書画像ファイルを登録するための台帳を経費精算サービス上に作成することができる。
ここで、図8に示す処理フロー情報1100の処理定義1113には、反復コンポーネント430により、フローID「flow101」の処理フロー情報1100に基づく一連の処理を繰り返し実行させることが定義されている。したがって、フローID「flow101」の処理フロー情報1100について、図9を参照しながら説明する。図9は、領収書登録サービスを実現する一連の処理において、反復実行される一連の処理が定義された処理フロー情報1100の一例を示す図である。
図9に示す処理フロー情報1100には、フローID1201と、フロー詳細1202とが含まれる。
フロー詳細1202には、処理定義1211が含まれる。処理定義1211には、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」と、当該コンポーネントに対するパラメータ情報が定義される「"parameters"」とが含まれる。
具体的には、処理定義1211の「"component"」には、経費精算コンポーネント420のコンポーネント名「"expense"」が定義されている。また、処理定義1211の「"parameters"」には、経費精算コンポーネント420に対するパラメータ情報が定義されている。
処理定義1211の「"parameters"」には、経費精算システム30を利用するための認証情報(例えば、ユーザ名やパスワード、アクセストークン)等を設定するためのパラメータ情報「"auth":null」が定義されている。
なお、経費精算コンポーネント420に対するパラメータ情報には、これ以外にも、例えば、経費精算システム30に対する要求(例えば、領収書画像ファイルの登録要求)を設定するパラメータ情報等がある。
これにより、反復コンポーネント430は、図9に示す処理フロー情報1100に基づく一連の処理を繰り返し実行させることで、経費精算コンポーネント420により、1以上の領収書画像ファイルを経費精算サービスに登録することができる。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。まず、機器10のユーザが領収書登録サービスを利用して、領収書の画像ファイル(領収書画像ファイル)を経費精算サービスに登録する処理について、図10を参照しながら説明する。図10は、本実施形態に係る領収書登録サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、ユーザは、機器10を用いて、領収書登録サービスの利用画面の表示操作を行う(ステップS1001)。すると、機器10の領収書スキャンアプリ100は、領収書登録サービスの利用画面の表示操作を受け付ける。なお、領収書登録サービスの利用画面の表示操作は、例えば、領収書スキャンアプリ100の起動操作等である。
領収書スキャンアプリ100は、ユーザによる当該表示操作を受け付けると、例えば図11に示す領収書登録サービスの利用画面G200を表示する(ステップS1002)。
ここで、図11に示す領収書登録サービスの利用画面G200には、ユーザ名入力欄G210と、パスワード入力欄G220と、スキャン実行ボタンG230とが含まれる。ユーザ名入力欄G210及びパスワード入力欄G220は、経費精算サービスを利用するための認証情報の一例として、当該経費精算サービスにおけるユーザ名及びパスワードをそれぞれ入力するための入力欄である。また、スキャン実行ボタンG230は、領収書をスキャンして、スキャン画像ファイルを作成するための表示部品である。
次に、ユーザは、機器10を用いて、領収書登録サービスの利用開始操作を行う(ステップS1003)。すなわち、ユーザは、機器10のスキャナ16に1以上の領収書をセットすると共に、図11に示す領収書登録サービスの利用画面G200のユーザ名入力欄G210及びパスワード入力欄G220にユーザ名及びパスワードをそれぞれ入力する。そして、ユーザは、スキャン実行ボタンG230を押下して、領収書登録サービスの利用開始操作を行う。すると、領収書スキャンアプリ100は、領収書登録サービスの利用開始操作を受け付ける。なお、ユーザは、領収書以外にも、例えば、レシート等の経費を証明する各種の証明書をスキャナ16にセットしても良い。
領収書スキャンアプリ100は、ユーザによる当該利用開始操作を受け付けると、スキャナ16により各領収書を読み取って、これら各領収書が表示される領域を含むスキャン画像ファイルを生成する(ステップS1004)。
次に、領収書スキャンアプリ100は、処理フローの実行要求をロジック処理部112に送信する(ステップS1005)。なお、処理フローの実行要求には、本実施形態に係る領収書登録サービスを実現する処理フロー情報1100のフローID「flow001」と、スキャン画像ファイルと、認証情報(すなわち、ユーザ名及びパスワード)とが含まれる。処理フローの実行要求には、スキャン画像ファイルの代わりに、当該スキャン画像ファイルを格納している記憶装置(例えばHDD35等)における格納先パス(ファイルパス)が含まれていても良い。
ここで、当該フローID「flow001」は、例えば、領収書登録サービスの利用画面G200のスキャン実行ボタンG230に関連付けられている。ただし、当該フローID「flow001」は、例えば、領収書登録サービスの利用画面G200に関連付けられていても良い。
次に、ロジック処理部112は、処理フローの実行要求を受信すると、処理フローの実行処理を行う(ステップS1006)。すなわち、ロジック処理部112は、当該実行要求に含まれるフローID「flow001」の処理フロー情報1100に基づく一連の処理を実行する。
そして、ロジック処理部112は、処理フローの実行処理の処理結果を領収書スキャンアプリ100に返信する。これにより、本実施形態に係る機器10は、ユーザに対して、領収書登録サービスを提供することができる。
ここで、図10に示す処理フローの実行処理(ステップS1006の処理)の詳細について、図12を参照しながら説明する。図12は、本実施形態に係る領収書登録サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、領収書スキャンアプリ100から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS1201)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow001」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローID「flow001」の処理フロー情報1100を、アプリ情報記憶部130に記憶されているアプリ情報1000から取得する(ステップS1202)。すなわち、アプリ管理部111は、図8に示す処理フロー情報1100をアプリ情報記憶部130から取得する。
そして、アプリ管理部111は、アプリ情報記憶部130から取得した処理フロー情報1100をロジック処理部112に返信する。
フロー実行部301は、図8に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1203)。すなわち、フロー実行部301は、図8に示す処理フロー情報1100の処理定義1111に含まれる「"component"」に定義されているコンポーネント名「"etract"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"etract"」のコンポーネント(すなわち、領域抽出コンポーネント410)を生成する(ステップS1204)。なお、領域抽出コンポーネント410の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した領域抽出コンポーネント410をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、領域抽出コンポーネント410が展開されたメモリ(例えばRAM32)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を領域抽出コンポーネント410に送信する(ステップS1205)。
なお、コンポーネントの実行要求には、データが含まれる。ここで、データとは、領収書スキャンアプリ100から受信した処理フローの実行要求に含まれるスキャン画像ファイル(又は、当該スキャン画像ファイルの格納先パス)である。このように、フロー実行部301は、画像ファイル(又は画像ファイルの格納先パス)等の電子データを、単に「データ」として(すなわち、データ形式を意識することなく)、各コンポーネントに送信する。
また、コンポーネントの実行要求には、図8に示す処理フロー情報1100の処理定義1111に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。
領域抽出コンポーネント410は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータに対して、パラメータ情報を用いて処理を実行する(ステップS1206)。すなわち、領域抽出コンポーネント410は、ドキュメントサービス部120の領域抽出部121により、スキャン画像ファイルに含まれる領収書の領域を抽出して、領収書画像ファイルを作成する。なお、スキャン画像ファイルに複数の領収書の領域が含まれる場合、領域抽出コンポーネント410は、これら複数の領収書の領域をそれぞれ抽出して、複数の領収書画像ファイルを作成する。
また、例えば、レシートを示す領域がスキャン画像ファイルに含まれる場合には、領域抽出コンポーネント410は、当該レシートを示す領域を抽出して、レシート画像ファイルを作成しても良い。この場合、領収書登録サービスにより、レシート画像ファイルが経費精算サービスに登録される。
更に、例えば、スキャン画像ファイルに含まれる領収書の領域が傾いている場合等には、当該領域を回転等させた上で、抽出して、領収書画像ファイルを作成する。
そして、領域抽出コンポーネント410は、作成した領収書画像ファイル(又は当該領収書画像ファイルの格納先パス)を示すデータをフロー実行部301に返信する。
次に、フロー実行部301は、図8に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1207)。すなわち、フロー実行部301は、図8に示す処理フロー情報1100の処理定義1112に含まれる「"component"」に定義されているコンポーネント名「"expense"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"expense"」のコンポーネント(すなわち、経費精算コンポーネント420)を生成する(ステップS1208)。なお、経費精算コンポーネント420の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した経費精算コンポーネント420をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、経費精算コンポーネント420が展開されたメモリ(例えばRAM32)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を経費精算コンポーネント420に送信する(ステップS1209)。
なお、コンポーネントの実行要求には、図8に示す処理フロー情報1100の処理定義1112に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。
すなわち、コンポーネントの実行要求には、パラメータ情報「"auth":null」に対して、認証情報が設定されたパラメータ情報が含まれる。例えば、領収書登録サービスの利用画面G200のユーザ名入力欄G210及びパスワード入力欄G220にユーザ名「user001」及びパスワード「abcde」が入力された場合、パラメータ情報は、「"auth":"user001/abcde"」である。
また、コンポーネントの実行要求には、経費精算システム30に対して台帳の作成要求を行うためのパラメータ情報が含まれる。
経費精算コンポーネント420は、コンポーネントの実行要求を受信すると、パラメータ情報を用いて処理を実行する(ステップS1210)。すなわち、経費精算コンポーネント420は、台帳の作成要求を経費精算システム30に送信する。なお、経費精算コンポーネント420は、例えば、経費精算システム30が公開しているWebAPIを用いて、台帳の作成要求を行うことができる。また、台帳の作成要求には、認証情報が含まれる。
すると、経費精算システム30は、領収書画像ファイルを登録するための台帳を作成して、作成した台帳を識別する台帳IDを処理結果として経費精算コンポーネント420に返信する。そして、経費精算コンポーネント420は、台帳IDを示すデータをフロー実行部301に返信する。
このように、経費精算コンポーネント420は、経費精算システム30に対して台帳の作成を要求することで、領収書画像ファイルを登録するための台帳を経費精算サービス上に作成する。
次に、フロー実行部301は、図8に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1211)。すなわち、フロー実行部301は、図8に示す処理フロー情報1100の処理定義1113に含まれる「"component"」に定義されているコンポーネント名「"iterate"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"iterate"」のコンポーネント(すなわち、反復コンポーネント430)を生成する(ステップS1212)。なお、反復コンポーネント430の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した反復コンポーネント430をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、反復コンポーネント430が展開されたメモリ(例えばRAM32)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を反復コンポーネント430に送信する(ステップS1213)。
なお、コンポーネントの実行要求には、領域抽出コンポーネント410により作成された領収書画像ファイル(又は、当該領収書画像ファイルの格納先パス)を示すデータが含まれる。したがって、コンポーネントの実行要求には、領域抽出コンポーネント410により複数の領収書画像ファイルが作成された場合には、これら複数の領収書画像ファイル(又は、これら複数の領収書画像ファイルそれぞれの格納先パス)をそれぞれ示す複数のデータが含まれる。
また、コンポーネントの実行要求には、図8に示す処理フロー情報1100の処理定義1113に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。すなわち、コンポーネントの実行要求には、パラメータ情報「"flowid":"flow101"」と、上記のステップS1210で返信された台帳IDを示すパラメータ情報とが含まれる。
反復コンポーネント430は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータ(領収書画像ファイル又は当該領収書画像ファイルの格納先パス)毎に、処理フローの実行要求をフロー実行部301に送信する(ステップS1214)。すなわち、反復コンポーネント430は、領収書画像ファイル数の回数、ステップS1215の領収書の登録処理を繰り返し実行させる。なお、処理フローの実行要求には、データ(領収書画像ファイル又は当該領収書画像ファイルの格納先パス)と、フローID「flow101」と、台帳IDとが含まれる。
フロー実行部301は、処理フローの実行要求を受信すると、経費精算サービスにおいて、台帳IDで示される台帳に領収書画像ファイルを登録するための処理(領収書の登録処理)を行う(ステップS1215)。そして、フロー実行部301は、領収書の登録処理の処理結果を反復コンポーネント430に返信する。
その後、反復コンポーネント430は、ステップS1215の領収書の登録処理を繰り返し実行させた処理結果を示すデータをフロー実行部301に返信する。
ここで、領収書の登録処理(ステップS1215の処理)の詳細について、図13を参照しながら説明する。図13は、本実施形態に係る領収書の登録処理の一例を示すシーケンス図である。
まず、フロー実行部301は、反復コンポーネント430から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS1301)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow101」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローID「flow101」の処理フロー情報1100を、アプリ情報記憶部130に記憶されているアプリ情報1000から取得する(ステップS1302)。すなわち、アプリ管理部111は、図9に示す処理フロー情報1100をアプリ情報記憶部130から取得する。
そして、アプリ管理部111は、アプリ情報記憶部130から取得した処理フロー情報1100をロジック処理部112に返信する。
次に、フロー実行部301は、図9に示す処理フロー情報1100の処理定義1211に含まれる「"component"」に定義されているコンポーネント名「"expense"」のコンポーネントにコンポーネントの実行要求を送信する(ステップS1303)。すなわち、フロー実行部301は、コンポーネントの実行要求を経費精算コンポーネント420に送信する。
なお、コンポーネントの実行要求には、データ(領収書画像ファイル又は領収書画像ファイルの格納先パスが含まれる。また、パラメータ情報「"auth":null」に対して、認証情報が設定されたパラメータ情報と、経費精算システム30に対して領収書の登録要求を行うためのパラメータ情報と、台帳IDを示すパラメータ情報とが含まれる。
経費精算コンポーネント420は、コンポーネントの実行要求を受信すると、データ及びパラメータ情報を用いて処理を実行する(ステップS1304)。すなわち、経費精算コンポーネント420は、領収書の登録要求を経費精算システム30に送信する。なお、経費精算コンポーネント420は、例えば、経費精算システム30が公開しているWebAPIを用いて、領収書の登録要求を行うことができる。領収書の登録要求には、領収書画像ファイルと、台帳IDと、認証情報とが含まれる。
すると、経費精算システム30は、台帳IDにより示される台帳に領収書画像ファイルを登録して、登録結果を経費精算コンポーネント420に返信する。そして、経費精算コンポーネント420は、登録結果を示すデータをフロー実行部301に返信する。
このように、経費精算コンポーネント420は、経費精算システム30に対して領収書の登録を要求することで、経費精算サービス上の台帳に領収書画像ファイルを登録することができる。
ここで、経費精算サービス上の台帳に領収書画像ファイルが登録されることで、当該台帳には、領収書画像ファイルに対応する領収書データが登録される。なお、領収書データには、例えば、勘定科目や日付等の項目が含まれる。領収書データに含まれる各項目は、例えば、領収書画像ファイルをOCR処理した処理結果(例えば、勘定科目の項目値や日付の項目値等)が設定されていても良い。
次に、PC端末20のユーザが経費精算サービスを利用する場合の処理について、図14を参照しながら説明する。図14は、本実施形態に係る経費精算サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、ユーザは、PC端末20を用いて、経費精算サービスのログイン画面の表示操作を行う(ステップS1401)。すると、PC端末20のブラウザ200は、経費精算サービスのログイン画面の表示操作を受け付ける。なお、経費精算サービスのログイン画面の表示操作は、例えば、ブラウザ200により表示されるアドレスバーに、経費精算サービスにアクセスするためのURL(Uniform Resource Locator)を入力する操作等である。
ブラウザ200は、ユーザによる当該表示操作を受け付けると、ログイン画面の取得要求を経費精算システム30に送信する(ステップS1402)。すると、経費精算システム30は、ログイン画面を表示するための画面情報(例えば、ログイン画面がHTML(HyperText Markup Language)形式で定義された情報)を返信する。
ブラウザ200は、ログイン画面を表示するための画面情報を受信すると、当該画面情報に基づいて、例えば図15(a)に示すログイン画面G300を表示する(ステップS1403)。
ここで、図15(a)に示すログイン画面G300には、ユーザ名入力欄G310と、パスワード入力欄G320と、ログインボタンG330とが含まれる。ユーザ名入力欄G310及びパスワード入力欄G320は、経費精算サービスを利用するための認証情報の一例として、当該経費精算サービスにおけるユーザ名及びパスワードをそれぞれ入力するための入力欄である。また、ログインボタンG330は、経費精算サービスにログイン要求を送信するための表示部品である。
次に、ユーザは、PC端末20を用いて、経費精算サービスへのログイン操作を行う(ステップS1404)。すなわち、ユーザは、図15(a)に示すログイン画面G300のユーザ名入力欄G310及びパスワード入力欄G320にユーザ名及びパスワードをそれぞれ入力した上で、ログインボタンG330を押下して、ログイン操作を行う。すると、ブラウザ200は、当該ログイン操作を受け付ける。
ブラウザ200は、ユーザによる当該ログイン操作を受け付けると、ログイン要求を経費精算システム30に送信する(ステップS1405)。なお、ログイン要求には、認証情報(すなわち、ユーザ名入力欄G310及びパスワード入力欄G320に入力されたユーザ名及びパスワード)が含まれる。
すると、経費精算システム30は、受信したログイン要求に含まれる認証情報の正当性を検証した上で、ログイン結果をブラウザ200に返信する。以降では、ログイン成功を示すログイン結果が返信されたものとして説明を続ける。
ブラウザ200は、ログイン結果を受信すると、台帳一覧画面の取得要求を経費精算システム30に送信する(ステップS1406)。すると、経費精算システム30は、台帳一覧画面を表示するための画面情報(例えば、台帳一覧画面がHTML形式で定義された情報)を返信する。
ブラウザ200は、台帳一覧画面を表示するための画面情報を受信すると、当該画面情報に基づいて、例えば図15(b)に示す台帳一覧画面G400を表示する(ステップS1407)。
ここで、図15(b)に示す台帳一覧画面G400には、台帳一覧G410が含まれる。ユーザは、台帳一覧G410から所望の台帳を選択することで、選択した台帳に登録されている領収書データの編集等を行うことができる。また、台帳一覧G410に含まれる「新しい台帳を作成」アイコンを選択することで、ユーザは、新しい台帳を作成することもできる。
次に、ユーザは、PC端末20を用いて、台帳の選択操作を行う(ステップS1408)。すなわち、ユーザは、図15(b)に示す台帳一覧画面G400の台帳一覧G410から所望の台帳を選択する選択操作を行う。すると、ブラウザ200は、当該選択操作を受け付ける。以降では、ユーザは、「台帳A」アイコンを選択したものとして説明を続ける。
ブラウザ200は、ユーザによる当該選択操作を受け付けると、選択された「台帳A」の台帳画面の取得要求を経費精算システム30に送信する(ステップS1409)。すると、経費精算システム30は、「台帳A」の台帳画面を表示するための画面情報(例えば、台帳画面がHTML形式で定義された情報)を返信する。
ブラウザ200は、「台帳A」の台帳画面を表示するための画面情報を受信すると、当該画面情報に基づいて、例えば図15(c)に示す台帳画面G500を表示する(ステップS1410)。
ここで、図15(c)に示す台帳画面G500には、領収書一覧G510と、領収書編集欄G520と、切替タブG530と、申請ボタンG540とが含まれる。ユーザは、領収書一覧G510から所望の領収書を選択した上で、領収書編集欄G520において、領収書データ(例えば、勘定科目、日付等)の入力又は編集を行うことができる。
また、図15(c)に示す台帳画面G500において、ユーザが切替タブG530の押下操作を行うと、ブラウザ200は、当該操作を受け付けて、図15(d)に示す台帳画面G600に表示を切り替える。
ここで、図15(d)に示す台帳画面G600には、領収書画像G610と、切替タブG620とが含まれる。領収書画像G610には、領収書一覧G510で選択された領収書の領収書画像ファイルが表示される。これにより、ユーザは、領収書画像G610を参照した上で、図14(c)に示す台帳画面G500の領収書編集欄G520において、領収書データの入力又は編集を行うことができる。
また、図15(d)に示す台帳画面G600において、ユーザが切替タブG620の押下操作を行うと、ブラウザ200は、当該操作を受け付けて、図15(c)に示す台帳画面G500に表示を切り替える。
このように、ユーザは、領収書一覧G510から所望の領収書を選択することで、領収書画像G610を確認することができる。したがって、ユーザは、領収書画像G610を参照した上で、領収書編集欄G520に含まれる各項目(例えば、勘定科目や日付等)の入力又は編集を行うことができる。なお、領収書編集欄G520及び領収書画像G610が同一の画面内に表示されていても良い。
次に、ユーザは、PC端末20を用いて、領収書の申請操作を行う(ステップS14111)。すなわち、ユーザは、図15(c)に示す台帳画面G500又は図15(d)に示す台帳画面G600において、申請ボタンG540を押下して、領収書の申請操作を行う。すると、ブラウザ200は、当該申請操作を受け付ける。
ブラウザ200は、ユーザによる当該申請操作を受け付けると、申請された領収書の経費精算要求を経費精算システム30に送信する(ステップS1402)。すると、経費精算システム30は、例えば、ワークフロー等による経費精算処理を実行して、経費精算要求に対する結果を返信する。これにより、ユーザにより領収書データが入力又は編集された領収書が経費として精算される。
[第二の実施形態]
以降では、第二の実施形態について説明する。第二の実施形態では、機器10が、例えば、スマートフォンやタブレット端末、デジタルカメラ等である場合に、機器10が領収書を撮影して生成した撮影画像ファイルから領収書画像ファイルを作成して、経費精算サービスに登録する場合について説明する。
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の機能を有する箇所及び実質的に同一の処理を行う箇所については同一の符号を付与し、その説明を省略する。
<領収書登録サービスの概略>
まず、本実施形態に係る機器10が提供する領収書登録サービスの概略について説明する。なお、本実施形態では、機器10がスマートフォン又はタブレット端末であるものとして説明する。ただし、機器10は、カメラ装置48が搭載されていれば、例えば、デジタルカメラやゲーム機器、ウェアラブル型の情報端末等であっても良い。
本実施形態に係る機器10は、カメラ装置48で領収書を撮影することにより生成した撮影画像ファイルから領収書画像ファイルを作成し、経費精算サービスに登録する領収書登録サービスを提供する。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について、図16を参照しながら説明する。図16は、第二の実施形態に係る情報処理システム1の一例の機能構成を示す図である。
図16に示す機器10は、例えばCPU46等により実行される領収書撮影アプリ300を有する。領収書撮影アプリ300は、機器10のユーザが領収登録サービスを利用するためのアプリケーションプログラムである。ユーザは、機器10にインストールされた領収書撮影アプリ300を用いて、領収書登録サービスを利用することができる。
また、図16に示す機器10は、入出力サービス処理部110と、ドキュメントサービス部120と、領収書撮影部140とを有する。これら各機能部は、機器10にインストールされた領収書撮影アプリ300が、CPU46に実行させる処理により実現される。
領収書撮影部140は、領収書登録サービスをユーザが利用するための処理を行う。ここで、領収書撮影部140は、入力受付部141と、表示制御部142と、撮影制御部143とを有する。
入力受付部141は、ユーザによる各種操作(例えば、領収書の撮影操作等)の入力を受け付ける。表示制御部142は、各種画面(例えば、領収書の撮影を開始するための撮影開始画面等)を表示する。撮影制御部143は、カメラ装置48を制御して、領収書を撮影する。
ここで、本実施形態に係る領収書登録サービスを実現する一連の処理(処理フロー)が定義された処理フロー情報1100について、図17を参照しながら説明する。図17は、本実施形態に係る領収書登録サービスを実現する一連の処理が定義された処理フロー情報1100の一例を示す図である。
図17に示す処理フロー情報1100には、当該処理フロー情報1100を識別するフローID1301と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細1302とが含まれる。
フロー詳細1302には、処理フローに含まれる各処理の処理内容を定義した処理定義1311〜1313が含まれる。処理定義1311〜1313には、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」と、当該コンポーネントに対するパラメータ情報が定義される「"parameters"」とが含まれる。
具体的には、処理定義1311の「"component"」には、反復コンポーネント430のコンポーネント名「"iterate"」が定義されている。また、処理定義1311の「"parameters"」には、反復コンポーネント430に対するパラメータ情報が定義されている。
処理定義1311の「"parameters"」には、反復コンポーネント430が繰り返し実行させる一連の処理が定義された処理フロー情報1100のフローIDを示すパラメータ情報「"flowid":"flow102"」が定義されている。
同様に、処理定義1312の「"component"」には、経費精算コンポーネント420のコンポーネント名「"expense"」が定義されている。また、処理定義1312の「"parameters"」には、経費精算コンポーネント420に対するパラメータ情報が定義されている。
処理定義1312の「"parameters"」には、経費精算システム30を利用するための認証情報(例えば、ユーザ名やパスワード、アクセストークン)等を設定するためのパラメータ情報「"auth":null」が定義されている。
また、同様に、処理定義1313の「"component"」には、反復コンポーネント430のコンポーネント名「"iterate"」が定義されている。また、処理定義1313の「"parameters"」には、反復コンポーネント430に対するパラメータ情報が定義されている。
処理定義1313の「"parameters"」には、反復コンポーネント430が繰り返し実行させる一連の処理が定義された処理フロー情報1100のフローIDを示すパラメータ情報「"flowid":"flow101"」が定義されている。
このように、図17に示す処理フロー情報1100の処理定義1311には、反復コンポーネント430により、後述するフローID「flow102」の処理フロー情報1100に基づく一連の処理を繰り返し実行させることが定義されている。また、図17に示す処理フロー情報1100の処理定義1312には、経費精算コンポーネント420により、台帳の作成を経費精算システム30に要求することが定義されている。更に、図17に示す処理フロー情報1100には、図8に示す処理フロー情報1100の処理定義1113と同様に、フローID「flow101」の処理フロー情報1100に基づく一連の処理を繰り返し実行させることが定義されている。
ここで、図17に示す処理フロー情報1100の処理定義1311には、反復コンポーネント430により、フローID「flow102」の処理フロー情報1100に基づく一連の処理を繰り返し実行させることが定義されている。したがって、フローID「flow102」の処理フロー情報1100について、図18を参照しながら説明する。図18は、領収書登録サービスを実現する一連の処理において、反復実行される一連の処理が定義された処理フロー情報1100の一例を示す図である。
図18に示す処理フロー情報1100には、フローID1401と、フロー詳細1402とが含まれる。
フロー詳細1402には、処理定義1411が含まれる。処理定義1411には、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」と、当該コンポーネントに対するパラメータ情報が定義される「"parameters"」とが含まれる。
具体的には、処理定義1411の「"component"」には、領域抽出コンポーネント410のコンポーネント名「"extract"」が定義されている。また、処理定義1411には、領域抽出コンポーネント410に対するパラメータ情報が定義されている。
なお、領域抽出コンポーネント410に対するパラメータ情報には、例えば、抽出対象の領域を特定するためのパラメータ情報(例えば、抽出対象である領収書の画像ファイル)等がある。
これにより、反復コンポーネント430は、図18に示す処理フロー情報1100に基づく一連の処理を繰り返し実行させることで、領域抽出コンポーネント410により、1以上の撮影画像ファイルからそれぞれ領収書画像ファイルを抽出することができる。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。以降では、機器10のユーザが領収書登録サービスを利用して、領収書を撮影することで生成した撮影画像ファイルから領収書画像ファイルを抽出し、経費精算サービスに登録する処理について、図19を参照しながら説明する。図19は、本実施形態に係る領収書登録サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、ユーザは、機器10を用いて、領収書登録サービスの利用画面の表示操作を行う(ステップS1901)。すると、機器10の領収書撮影部140は、入力受付部141により、領収書登録サービスの利用画面の表示操作を受け付ける。なお、領収書登録サービスの利用画面の表示操作は、例えば、領収書撮影アプリ300の起動操作等である。
領収書撮影部140は、ユーザによる当該操作を受け付けると、表示制御部142により、例えば図20(a)に示す領収書登録サービスの利用画面G700を表示する(ステップS1902)。
ここで、図20(a)に示す領収書登録サービスの利用画面G700には、認証情報の入力ボタンG710と、領収書撮影の開始ボタンG720とが含まれる。認証情報の入力ボタンG710は、経費精算サービスを利用するための認証情報の入力画面に遷移するための表示部品である。また、領収書撮影の開始ボタンG720は、カメラ装置48を起動させて、領収書を撮影するための撮影開始画面に遷移するための表示部品である。
図20(a)に示す領収書登録サービスの利用画面G700において、ユーザは、認証情報の入力ボタンG710を押下して、認証情報の入力画面の表示操作を行ったものとする(ステップS1903)。すると、領収書撮影部140は、入力受付部141により、認証情報の入力画面の表示操作を受け付ける。
領収書撮影部140は、ユーザによる当該操作を受け付けると、表示制御部142により、例えば図20(b)に示す認証情報の入力画面G800を表示する(ステップS1904)。
ここで、図20(b)に示す認証情報の入力画面G800には、ユーザ名入力欄G810と、パスワード入力欄G820と、OKボタンG830と、キャンセルボタンG840とが含まれる。ユーザ名入力欄G810及びパスワード入力欄G820は、経費精算サービスを利用するための認証情報の一例であるユーザ名及びパスワードをそれぞれ入力するための入力欄である。
また、OKボタンG830は、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれ入力されたユーザ名及びパスワードを保存して、図20(a)に示す領収書登録サービスの利用画面G700に戻るための表示部品である。一方、キャンセルボタンG840は、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれ入力されたユーザ名及びパスワードを保存せずに、図20(a)に示す領収書登録サービスの利用画面G700に戻るための表示部品である。
図20(b)に示す認証情報の入力画面G800において、ユーザは、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれユーザ名及びパスワードを入力した上で、OKボタンG830を押下して、認証情報の入力操作を行ったものとする(ステップS1905)。すると、領収書撮影部140は、入力受付部141により、認証情報の入力操作を受け付ける。
領収書撮影部140は、当該入力操作を受け付けると、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれ入力されたユーザ名及びパスワードを保存する。そして、領収書撮影部140は、表示制御部142により、領収書登録サービスの利用画面G700を表示する(ステップS1906)。領収書撮影部140は、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれ入力されたユーザ名及びパスワードを、例えば、フラッシュメモリ47の所定の記憶領域に保存すれば良い。
なお、例えば、認証情報(例えばユーザ名及びパスワード等)が既に保存されている場合には、上記のステップS1903〜ステップS1906は行わなくても良い。すなわち、この場合、ユーザは、図20(a)に示す領収書登録サービスの利用画面G700において、認証情報の入力ボタンG710を押下せずに、領収書撮影の開始ボタンG720を押下して、後述するステップS1907の領収書の撮影開始操作を行っても良い。
図20(a)に示す領収書登録サービスの利用画面G700において、ユーザは、領収書撮影の開始ボタンG720を押下して、領収書の撮影開始操作を行ったものとする(ステップS1907)。すると、領収書撮影部140は、入力受付部141により、領収書の撮影開始操作を受け付ける。
領収書撮影部140は、ユーザによる当該操作を受け付けると、表示制御部142により、カメラ装置48を起動させて、例えば図20(c)に示す撮影開始画面G900を表示する(ステップS1908)。
ここで、図20(c)に示す撮影開始画面G900は、基準枠G910と、領収書撮影ボタンG920と、撮影完了ボタンG930とが含まれる。これらの基準枠G910、領収書撮影ボタンG920、及び撮影完了ボタンG930は、カメラ装置48の撮影範囲内を示す画像の上に重畳して表示される。
基準枠G910は、領収書を撮影する際の基準となるマーカである。ユーザは、基準枠G910内に撮影対象の領収書が含まれるように、当該領収書と機器10との距離や拡縮倍率等の調整することで、撮影画像内の適切な範囲に領収書が写っているように撮影することができる。領収書撮影ボタンG920は、カメラ装置48により撮影範囲内を撮影して、撮影画像ファイルを生成するための表示部品である。撮影完了ボタンG930は、領収書の撮影を終了するための表示部品である。
ここで、領収書の撮影について、図21を参照しながら説明する。図21は、領収書の撮影の一例を示す図である。
図21(a)に示すように、ユーザは、基準枠G910内に撮影対象の領収書R140が含まれるように調整した上で、領収書撮影ボタンG920を押下することで、当該領収書R140を撮影することができる。
また、図21(b)に示すように、ユーザは、例えば、領収書撮影ボタンG920を押下して領収書R140を撮影した後、続けて領収書R150を撮影することができる。このように、ユーザは、撮影完了ボタンG930を押下するまでは、複数の領収書を順に撮影することができる。
なお、ユーザは、1回の撮影で複数の領収書を撮影しても良い。すなわち、例えば図22に示すように、ユーザは、基準枠G910内に、領収書R140及び領収書R150が含まれるように調整した上で、領収書撮影ボタンG920を押下しても良い。
図20(c)に示す撮影開始画面G900において、ユーザは、基準枠G910内に撮影対象の領収書が含まれるように調整した上で、領収書撮影ボタンG920を押下して、領収書の撮影操作を行ったものとする(ステップS1909)。すると、領収書撮影部140は、入力受付部141により、領収書の撮影操作を受け付ける。
領収書撮影部140は、ユーザによる当該操作を受け付けると、撮影制御部143により、カメラ装置48で撮影範囲内を撮影して、撮影画像ファイルを生成する(ステップS1910)。
なお、上述したように、ユーザは、撮影完了ボタンG930を押下するまでは、上記のステップS1910の領収書の撮影操作を繰り返し行うことができる。
図20(c)に示す撮影開始画面G900において、ユーザは、撮影完了ボタンG930を押下して、撮影完了操作を行ったものとする(ステップS1911)。すると、領収書撮影部140は、入力受付部141により、撮影完了操作を受け付ける。
領収書撮影部140は、ユーザによる当該操作を受け付けると、処理フローの実行要求をロジック処理部112に送信する(ステップS1912)。なお、処理フローの実行要求には、本実施形態に係る領収書登録サービスを実現する処理フロー情報1100のフローID「flow002」と、認証情報(すなわち、ユーザ名及びパスワード)とが含まれる。また、処理フローの実行要求には、上記のステップS1910で生成された1以上の撮影画像ファイルが含まれる。処理フローの実行要求には、撮影画像ファイルの代わりに、当該撮影画像ファイルを格納している記憶装置(例えばフラッシュメモリ47等)における格納先パス(ファイルパス)が含まれていても良い。
ここで、当該フローID「flow002」は、例えば、撮影開始画面G900の撮影完了ボタンG930に関連付けられている。ただし、当該フローID「flow002」は、例えば、撮影開始画面G900に関連付けられていても良い。
次に、ロジック処理部112は、処理フローの実行要求を受信すると、処理フローの実行処理を行う(ステップS1913)。すなわち、ロジック処理部112は、当該実行要求に含まれるフローID「flow002」の処理フロー情報1100に基づく一連の処理を実行する。
そして、ロジック処理部112は、処理フローの実行処理の処理結果を領収書撮影部140に返信する。これにより、本実施形態に係る機器10は、ユーザに対して、領収書登録サービスを提供することができる。
ここで、図19に示す処理フローの実行処理(ステップS1913の処理)の詳細について、図23を参照しながら説明する。図23は、本実施形態に係る領収書登録サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、領収書撮影部140から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS2301)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow002」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローID「flow002」の処理フロー情報1100を、アプリ情報記憶部130に記憶されているアプリ情報1000から取得する(ステップS2302)。すなわち、アプリ管理部111は、図17に示す処理フロー情報1100をアプリ情報記憶部130から取得する。
そして、アプリ管理部111は、アプリ情報記憶部130から取得した処理フロー情報1100をロジック処理部112に返信する。
フロー実行部301は、図17に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2303)。すなわち、フロー実行部301は、図17に示す処理フロー情報1100の処理定義1311に含まれる「"component"」に定義されているコンポーネント名「"iterate"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"iterate"」のコンポーネント(すなわち、反復コンポーネント430)を生成する(ステップS2304)。なお、反復コンポーネント430の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した反復コンポーネント430をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、反復コンポーネント430が展開されたメモリ(例えばRAM45)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を反復コンポーネント430に送信する(ステップS2305)。
なお、コンポーネントの実行要求には、1以上のデータが含まれる。ここで、データは、領収書撮影部140から受信した処理フローの実行要求に含まれる撮影画像ファイル(又は、当該撮影画像ファイルの格納先パス)である。
また、コンポーネントの実行要求には、図17に示す処理フロー情報1100の処理定義1311に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。すなわち、コンポーネントの実行要求には、パラメータ情報「"flowid":"flow102"」が含まれる。
反復コンポーネント430は、コンポーネントの実行要求を受信すると、当該実行要求に含まれる1以上のデータ(すなわち、1以上の撮影画像ファイル)毎に、処理フローの実行要求をフロー実行部301に送信する(ステップS2306)。すなわち、反復コンポーネント430は、撮影画像ファイル数の回数、ステップS2307の領収書画像の抽出処理を繰り返し実行させる。なお、処理フローの実行要求には、データ(撮影画像ファイル又は撮影画像ファイルの格納先パス)と、フローID「flow102」とが含まれる。
フロー実行部301は、処理フローの実行要求を受信すると、撮影画像ファイルから領収書画像を抽出して、領収書画像ファイルを作成するための処理(領収書画像の抽出処理)を行う(ステップS2307)。そして、フロー実行部301は、領収書画像の抽出処理の処理結果(すなわち、撮像画像ファイルから抽出された領収書画像ファイル(又は当該領収書画像ファイルの格納先パス)を示すデータ)を反復コンポーネント430に返信する。
その後、反復コンポーネント430は、ステップS2307の領収書画像の抽出処理を繰り返し実行させた処理結果を示すデータをフロー実行部301に返信する。
ここで、領収書画像の抽出処理(ステップS2307の処理)の詳細について、図24を参照しながら説明する。図24は、本実施形態に係る領収書画像の抽出処理の一例を示すシーケンス図である。
まず、フロー実行部301は、反復コンポーネント430から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS2401)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow102」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローID「flow102」の処理フロー情報1100を、アプリ情報記憶部130に記憶されているアプリ情報1000から取得する(ステップS2402)。すなわち、アプリ管理部111は、図18に示す処理フロー情報1100をアプリ情報記憶部130から取得する。
そして、アプリ管理部111は、アプリ情報記憶部130から取得した処理フロー情報1100をロジック処理部112に返信する。
ここで、領域抽出コンポーネント410が生成されていない場合は、フロー実行部301は、ステップS2403の処理を行う。すなわち、フロー実行部301は、図18に示す処理フロー情報1100の処理定義1411に含まれる「"component"」に定義されているコンポーネント名「"extract"」のコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2403)。
一方で、領域抽出コンポーネント410が生成されている場合、フロー実行部301は、上記のステップS2403の処理を行わない。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"extract"」のコンポーネント(すなわち、領域抽出コンポーネント410)を生成する(ステップS2404)。なお。領域抽出コンポーネント410の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した領域抽出コンポーネント410をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、領域抽出コンポーネント410が展開されたメモリ(例えばRAM45)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を領域抽出コンポーネント410に送信する(ステップS2405)。
なお、コンポーネントの実行要求には、撮影画像ファイル(又は当該撮影画像ファイルの格納先パス)を示すデータが含まれる。また、コンポーネントの要求には、図18に示す処理フロー情報1100の処理定義1411に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。
領域抽出コンポーネント410は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータに対して、パラメータ情報を用いて処理を実行する(ステップS2406)。すなわち、領域抽出コンポーネント410は、ドキュメントサービス部120の領域抽出部121により、撮影画像ファイルに含まれる領収書の領域を抽出して、領収書画像ファイルを作成する。なお、撮影画像ファイルに複数の領収書の領域が含まれる場合、領域抽出コンポーネント410は、これら複数の領収書の領域をそれぞれ抽出して、複数の領収書画像ファイルを作成する。
また、例えば、レシートを示す領域がスキャン画像ファイルに含まれる場合には、領域抽出コンポーネント410は、当該レシートを示す領域を抽出して、レシート画像ファイルを作成しても良い。この場合、領収書登録サービスにより、レシート画像ファイルが経費精算サービスに登録される。
更に、例えば、撮影画像ファイルに含まれる領収書の領域が傾いている場合等には、当該領域を回転等させた上で、抽出して、領収書画像ファイルを作成する。
そして、領域抽出コンポーネント410は、作成した領収書画像ファイル(又は当該撮影画像ファイルの格納先パス)を示すデータをフロー実行部301に返信する。
図23に戻る。フロー実行部301は、反復コンポーネント430による処理結果(領収書画像の抽出処理を繰り返し実行させた処理結果)を示すデータを受信すると、図17に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2308)。すなわち、フロー実行部301は、図17に示す処理フロー情報1100の処理定義1312に含まれる「"component"」に定義されているコンポーネント名「"expense"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"expense"」のコンポーネント(すなわち、経費精算コンポーネント420)を生成する(ステップS2309)。なお、経費精算コンポーネント420の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した経費精算コンポーネント420をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、経費精算コンポーネント420が展開されたメモリ(例えばRAM45)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を経費精算コンポーネント420に送信する(ステップS2310)。
なお、コンポーネントの実行要求には、図17に示す処理フロー情報1100の処理定義1312に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。
すなわち、コンポーネントの実行要求には、パラメータ情報「"auth":null」に対して、認証情報が設定されたパラメータ情報が含まれる。例えば、認証情報の入力画面G800のユーザ名入力欄G810及びパスワード入力欄G820にユーザ名「fugafuga@hoge.com」及びパスワード「xxxxxx」が入力された上で、OKボタンG830が押下されたものとする。この場合、パラメータ情報は、例えば、「"auth":"fugafuga@hoge.com/xxxxxx"」である。
また、コンポーネントの実行要求には、経費精算システム30に対して台帳の作成要求を行うためのパラメータ情報が含まれる。
経費精算コンポーネント420は、コンポーネントの実行要求を受信すると、パラメータ情報を用いて処理を実行する(ステップS2311)。すなわち、経費精算コンポーネント420は、台帳の作成要求を経費精算システム30に送信する。なお、経費精算コンポーネント420は、例えば、経費精算システム30が公開しているWebAPIを用いて、台帳の作成要求を行うことができる。また、台帳の作成要求には、認証情報が含まれる。
すると、経費精算システム30は、領収書画像ファイルを登録するための台帳を作成して、作成した台帳を識別する台帳IDを処理結果として経費精算コンポーネント420に返信する。そして、経費精算コンポーネント420は、台帳IDを示すデータをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を反復コンポーネント430に送信する(ステップS2312)。
なお、コンポーネントの実行要求には、領域抽出コンポーネント410により作成された領収書画像ファイル(又は当該領収書画像ファイルの格納先パス)を示すデータが含まれる。したがって、コンポーネントの実行要求には、領域抽出コンポーネント410により複数の領収書画像ファイルが作成された場合には、これら複数の領収書画像ファイル(又は、これら複数の領収書画像ファイルそれぞれの格納先パス)をそれぞれ示す複数のデータが含まれる。
また、コンポーネントの実行要求には、図17に示す処理フロー情報1100の処理定義1313に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。すなわち、コンポーネントの実行要求には、パラメータ情報「"flowid":"flow101"」と、上記のステップS2311で返信された台帳IDを示すパラメータ情報とが含まれる。
反復コンポーネント430は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータ(領収書画像ファイル又は当該領収書画像ファイルの格納先パス)毎に、処理フローの実行要求をフロー実行部301に送信する(ステップS2313)。すなわち、反復コンポーネント430は、領収書画像ファイル数の回数、ステップS2314の領収書の登録処理を繰り返し実行させる。なお、処理フローの実行処理には、データ(領収書画像ファイル又は当該領収書画像ファイルの格納先パス)と、フローID「flow101」と、台帳IDとが含まれる。
フロー実行部301は、処理フローの実行要求を受信すると、経費精算サービスにおいて、台帳IDで示される台帳に領収書画像ファイルを登録するための処理(領収書の登録処理)を行う(ステップS2314)。そして、フロー実行部301は、領収書の登録処理の処理結果を反復コンポーネント430に返信する。
その後、反復コンポーネント430は、ステップS2314の領収書の登録処理を繰り返し実行させた処理結果を示すデータをフロー実行部301に返信する。なお、上記のステップS2314の領収書の登録処理は、図12のステップS1215の領収書の登録処理と同様であるため、その説明を省略する。
[第三の実施形態]
以降では、第三の実施形態について説明する。第三の実施形態では、機器10が経費精算システム30と認証連携を行う場合について説明する。なお、第三の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の機能を有する箇所及び実質的に同一の処理を行う箇所については同一の符号を付与し、その説明を省略する。
<ハードウェア構成>
まず、本実施形態に係る情報処理システム1に含まれる機器10のハードウェア構成について、図25を参照しながら説明する。図25は、第三の実施形態に係る機器10の一例のハードウェア構成を示す図である。
図25に示す機器10は、操作装置51及び本体装置61を有している。操作装置51は、本体装置61に実行させる画像処理機能の選択、スキャン等の画像処理機能を実行させるための各種設定値の入力、画像処理機能の実行を開始させるための実行指示の入力、表示画面の切り替え等、ユーザが各種操作を行う際に用いられる。
本体装置61は、操作装置51におけるユーザの各種操作に応じて、スキャン等の画像処理機能の実行等の各種の処理を実行する。
図25に示すように、機器10の操作装置51は、CPU52と、ROM53と、RAM54と、フラッシュメモリ55と、操作パネル56と、接続I/F57と、通信I/F58とを有している。これら各ハードウェアは、バス59を介して相互に接続されている。
CPU52は、RAM54をワークエリアとしてROM53又はフラッシュメモリ55に記憶された各種プログラムを実行することにより、操作装置51全体を制御する演算装置である。
ROM53は、電源を切ってもデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。RAM54は、プログラムやデータを一時保存する揮発性の半導体メモリ(記憶装置)である。
フラッシュメモリ55は、不揮発性の記憶媒体であり、CPU52が実行する各種プログラム(例えば、後述する経費精算アプリ500)や各種データを記憶する。
操作パネル56は、ユーザが各種操作を行う際に用いられる。すなわち、操作パネル56は、例えば、機器10の各種機能に対してユーザが各種操作を行うためのGUI(Graphical User Interface)表示画面や、機器10の処理結果等を表示する。
接続I/F57は、通信路71を介して本体装置61と通信するためのインタフェースである。接続I/F57には、例えば、USB規格のインタフェースが用いられる。
通信I/F58は、他の装置等と通信するためのインタフェースである。通信I/F58は、例えば、Wi−Fi規格の無線LANが用いられる。
同様に、機器10の本体装置61は、CPU62と、ROM63と、RAM64と、HDD65と、スキャナ66と、接続I/F67と、通信I/F68とを有している。これら各ハードウェアは、バス69を介して相互に接続されている。
CPU62は、RAM64をワークエリアとしてROM63又はHDD65に記憶された各種プログラムを実行することにより、本体装置61全体を制御する演算装置である。
ROM63は、電源を切ってもデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。RAM64は、プログラムやデータを一時保存する揮発性の半導体メモリ(記憶装置)である。
HDD65は、不揮発性の記憶媒体であり、CPU62が実行する各種プログラム(例えば、本実施形態を実現するプログラム)や各種データを記憶する。
スキャナ66は、原稿を読み取って電子ファイル(画像ファイル)を生成する読取装置である。
接続I/F67は、通信路71を介して操作装置51と通信するためのインタフェースである。接続I/F67には、例えば、USB規格のインタフェースが用いられる。
通信I/F68は、他の装置等と通信するためのインタフェースである。通信I/F68は、例えば、Wi−Fi規格の無線LANが用いられる。
本実施形態に係る機器10は、上記ハードウェア構成を有することにより、後述する各種処理を実現することができる。
なお、図25では、機器10が操作装置51を有している構成を一例として示したが、これに限られず、例えば、タブレット端末、スマートフォン、携帯電話、PDA等の情報処理端末が機器10の操作装置として機能しても良い。すなわち、これらの情報処理端末は、操作装置51の通信I/F58又は本体装置61の通信I/F68を介して機器10と通信することにより、当該機器10を制御することができても良い。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について、図26を参照しながら説明する。図26は、第三の実施形態に係る情報処理システム1の一例の機能構成を示す図である。
図26に示す機器10の操作装置51は、例えばCPU52等により実行される経費精算アプリ500を有する。経費精算アプリ500は、機器10のユーザが領収書登録サービスを利用するためのアプリケーションプログラムである。ユーザは、機器10の操作装置51にインストールされた経費精算アプリ500を用いて、領収書登録サービスを利用することができる。
図26に示す機器10の操作装置51は、入出力サービス処理部110と、ドキュメントサービス部120と、UI制御部150と、認証サービス処理部160とを有する。これら各機能部は、機器10の操作装置51にインストールされた経費精算アプリ500が、CPU52に実行させる処理により実現される。
また、図26に示す機器10の操作装置51は、アプリ情報記憶部130と、認証チケット情報記憶部170とを有する。これら各記憶部は、例えばフラッシュメモリ55を用いて実現可能である。
UI制御部150は、領収書登録サービスをユーザが利用するための処理を行う。ここで、UI制御部150は、入力受付部151と、表示制御部152と、認証連携部153と、ユーザ取得部154と、スキャン要求部155と、処理要求部156とを有する。
入力受付部151は、ユーザによる各種操作(例えば、領収書のスキャンを開始するためのスキャン開始操作等)の入力を受け付ける。表示制御部152は、各種画面(例えば、領収書をスキャンするための領収書スキャン画面等)を表示する。
認証連携部153は、認証要求等を認証サービス処理部160に送信する。ユーザ取得部154は、機器10にログインしているユーザ(ログインユーザ)のユーザIDを取得するための要求(ログインユーザの取得要求)を本体装置61に送信する。スキャン要求部155は、領収書をスキャンするための要求(スキャン要求)を本体装置61に送信する。処理要求部156は、領収書登録サービスに実現する一連の処理(処理フロー)を実行させるための要求(処理フローの実行要求)をロジック処理部112に送信する。
認証サービス処理部160は、経費精算システム30との間で認証連携を行うための処理を行う。すなわち、認証サービス処理部160は、経費精算システム30における認証に成功した場合、当該認証の成功に応じて返信される認証チケットと、機器10のログインユーザのユーザIDとを関連付けた認証チケット情報を認証チケット情報記憶部170に保存する。また、認証サービス処理部160は、ユーザが領収書登録サービスを利用する場合、当該ユーザのユーザIDと関連付けられて認証チケット情報記憶部170に保存されている認証チケットを取得する。
認証チケット情報記憶部170は、機器10にログインするためのユーザIDと、経費精算システム30の認証チケットとを関連付けた認証チケット情報を記憶する。ここで、認証チケット情報記憶部170に記憶されている認証チケット情報について、図27を参照しながら説明する。図27は、認証チケット情報の一例を示す図である。
図27に示すように、認証チケット情報記憶部170に記憶されている認証チケット情報には、ユーザIDと、認証チケットとが関連付けられている。
これにより、機器10にログインしたユーザは、自身のユーザIDと関連付けられている認証チケットを用いて、領収書登録サービスを利用することができる。
図26に戻る。図26に示す機器10の本体装置61は、ユーザ管理部210と、スキャン処理部220とを有する。これら各機能部は、機器10の本体装置61にインストールされた1以上のプログラムが、CPU62に実行させる処理により実現される。
また、図26に示す機器10の本体装置61は、ログインユーザ記憶部230を有する。当該記憶部は、例えばHDD65を用いて実現可能である。
ユーザ管理部210は、ログインユーザ記憶部230に記憶されているユーザIDを管理する。ユーザ管理部210は、ログインユーザの取得要求に応じて、ログインユーザ記憶部230からユーザIDを取得して、取得したユーザIDを操作装置51に返信する。
スキャン処理部220は、スキャン要求に応じて、スキャナ66によるスキャン処理を実行する。
ログインユーザ記憶部230は、機器10にログインしているユーザ(ログインユーザ)のユーザIDを記憶する。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。以降では、機器10のユーザが領収書登録サービスを利用する前に、経費精算システム30と認証連携するための設定を行う処理について、図28を参照しながら説明する。図28は、第三の実施形態に係る連携設定操作の一例を示すシーケンス図である。
まず、ユーザは、機器10の操作装置51を用いて、経費精算アプリ500の利用開始操作を行う(ステップS2801)。ユーザは、次のようにして、経費精算アプリ500の利用開始操作を行うことができる。
すなわち、まず、操作装置51の操作パネル56には、図29に示す初期画面G1100が表示されている。ユーザが、例えば、機器10の所定の位置に所定のICカードをかざすと、操作装置51の操作パネル56には、図29に示すアプリ一覧画面G1200が表示される。
そして、ユーザは、図29に示すアプリ一覧画面G1200において、経費精算アプリ500の利用を開始するための「経費精算」アイコンG1201の選択操作を行うことで、経費精算アプリ500の利用開始操作を行うことができる。
UI制御部150のユーザ取得部154は、経費精算アプリ500の利用開始操作を入力受付部151が受け付けると、ログインユーザの取得要求を本体装置61に送信する(ステップS2802)。なお、ユーザ取得部154は、例えば、本体装置61の所定のWebAPIにHTTP(Hypertext Transfer Protocol)リクエストを送信することで、ログインユーザの取得要求を行うことができる。
本体装置61のユーザ管理部210は、ログインユーザの取得要求を受信すると、機器10にログインしているユーザのユーザIDをログインユーザ記憶部230から取得する(ステップS2803)。そして、ユーザ管理部210は、取得したユーザIDを操作装置51に返信する。
次に、UI制御部150の表示制御部152は、図29に示す経費精算アプリ500のトップ画面G1300を表示する(ステップS2804)。経費精算アプリ500のトップ画面G1300には、経費精算システム30と認証連携の設定を行うための「連携設定」ボタンG1310と、領収書登録サービスを利用するための「領収書登録」ボタンG1320とが含まれる。
以降では、ユーザは、「連携設定」ボタンG1310を選択して、連携設定操作を行ったものとする(ステップS2805)。
UI制御部150の表示制御部152は、入力受付部151が連携設定操作を受け付けると、図29に示す認証情報入力画面G1400を表示する(ステップS2806)。認証情報入力画面G1400には、経費精算システム30にログインするためのユーザ名を入力するユーザ名入力欄G1401と、当該ユーザ名に対するパスワードを入力するためのパスワード入力欄G1402とが含まれる。また、認証情報入力画面G1400には、認証連携を開始するための「連携」ボタンG1403と、トップ画面G1300に戻るための「戻る」ボタンG1404とが含まれる。
ユーザは、経費精算システム30のユーザ名及びパスワードをユーザ名入力欄G1401及びパスワード入力欄G1402にそれぞれ入力した上で、「連携」ボタンG1403を選択して、認証情報の入力操作を行う(ステップS2807)。
UI制御部150の認証連携部153は、入力受付部151が認証情報の入力操作を受け付けると、認証要求を認証サービス処理部160に送信する(ステップS2808)。なお、当該認証要求には、ユーザ名入力欄G1401及びパスワード入力欄G1402にそれぞれ入力されたユーザ名及びパスワード(すなわち、経費精算システム30の認証情報)が含まれる。
認証サービス処理部160は、認証連携部153から認証要求を受信すると、当該認証要求を経費精算システム30に送信する(ステップS2809)。経費精算システム30は、当該認証要求に含まれる認証情報(ユーザ名及びパスワード)に基づく認証を行い、認証が成功した場合、認証チケットを返信する。一方で、経費精算システム30は、認証が失敗した場合、認証に失敗したことを示す情報を返信する。以降では、経費精算システム30は、認証チケットを返信したものとして説明を続ける。
認証サービス処理部160は、経費精算システム30から認証チケットが返信された場合、上記のステップS2803で返信されたユーザIDと、当該認証チケットとを関連付けた認証チケット情報を認証チケット情報記憶部170に保存する(ステップS2810)。そして、認証サービス処理部160は、認証結果をUI制御部150に返信する。これにより、認証連携に用いる認証チケットがユーザIDと関連付けて保存される。
そして、UI制御部150の表示制御部152は、図30(a)に示す設定完了画面G1510を表示する(ステップS2811)。設定完了画面G1510には、経費精算システム30と認証連携するための設定が完了したことを示すメッセージG1511が含まれる。これにより、ユーザは、経費精算システム30と認証連携するための設定が完了したことを知ることができる。
ここで、上記のステップS2809において、経費精算システム30における認証が失敗したことを示す情報が返信された場合、UI制御部150の表示制御部152は、図30(b)に示すログイン失敗画面G1520を表示する。ログイン失敗画面G1520には、経費精算システム30との認証に失敗(ログインに失敗)したことを示すメッセージG1521が含まれる。これにより、ユーザは、例えば認証情報の入力誤り等により、経費精算システム30との認証が失敗したことを知ることができる。
以上により、本実施形態に係る機器10は、経費精算システム30と認証連携するための認証チケットを、当該機器10のログインユーザのユーザIDと関連付けて保存することができる。これにより、機器10のユーザは、経費精算システム30と認証連携して、領収書登録サービスを利用することができる。
次に、機器10のユーザが領収書登録サービスを利用して、領収書の画像ファイル(領収書画像ファイル)を経費精算サービスに登録する処理について、図31を参照しながら説明する。図31は、第三の実施形態に係る領収書登録サービスを利用する場合の全体処理の一例を示すシーケンス図である。なお、ステップS3101〜ステップS3104の処理は、図28のステップS2801〜ステップS2804の処理と同様であるため、その説明を省略する。
以降では、ステップS3104で表示されたトップ画面G1300において、ユーザは、「領収書登録」ボタンG1320を選択して、領収書登録操作を行ったものとする(ステップS3105)。
UI制御部150の表示制御部152は、入力受付部151が領収書登録操作を受け付けると、図32に示すスキャン画面G1600を表示する(ステップS3106)。スキャン画面G1600には、領収書のスキャンを開始して、スキャン画像ファイルを作成するための「スキャン」ボタンG1601が含まれる。
ユーザは、本体装置61のスキャナ66に1以上の領収書をセットした上で、「スキャン」ボタンG1601を押下して、スキャン開始操作を行う(ステップS3107)。
UI制御部150のスキャン要求部155は、入力受付部151がスキャン開始操作を受け付けると、スキャン要求を、本体装置61に送信する(ステップS3108)。なお、スキャン要求部155は、例えば、本体装置61の所定のWebAPIにHTTPリクエストを送信することで、スキャン要求を行うことができる。
本体装置61のスキャン処理部220は、スキャン要求を受信すると、スキャナ66により各領収書を読み取って、これら各領収書が表示される領域を含むスキャン画像ファイルを生成する(ステップS3109)。そして、スキャン処理部220は、生成したスキャン画像ファイルを返信する。
次に、UI制御部150の認証連携部153は、認証チケットの取得要求を認証サービス処理部160に送信する(ステップS3110)。なお、認証チケットの取得要求には、ステップS3103で返信されたユーザID(すなわち、機器10のログインユーザのユーザID)が含まれる。
認証サービス処理部160は、認証チケットの取得要求を受信すると、当該取得要求に含まれるユーザIDに関連付けられている認証チケットを認証チケット情報記憶部170から取得する(ステップS3111)。そして、認証サービス処理部160は、取得した認証チケットを返信する。
次に、UI制御部150の処理要求部156は、処理フローの実行要求をロジック処理部112に送信する(ステップS3112)。なお、処理フローの実行要求には、本実施形態に係る領収書登録サービスを実現する処理フロー情報1100のフローID「flow001」と、スキャン画像ファイルと、認証チケットとが含まれる。フローID「flow001」は、例えば、図32に示すスキャン画面G1600の「スキャン」ボタンG1601に関連付けられている。
次に、ロジック処理部112は、処理フローの実行要求を受信すると、処理フローの実行処理を行う(ステップS3113)。すなわち、ロジック処理部112は、当該実行要求に含まれるフローID「flow001」の処理フロー情報1100に基づく一連の処理を実行する。そして、ロジック処理部112は、処理フローの実行処理の処理結果をUI制御部150に返信する。なお、当該処理結果には、スキャン画像ファイルに含まれる各領収書の領域の数(すなわち、スキャン画像ファイルから抽出された領収書領域の数)が含まれる。
UI制御部150の表示制御部152は、当該処理結果を受信すると、図32に示す登録完了画面G1700を表示する(ステップS3114)。登録完了画面G1700には、経費精算システム30に登録された領収書の数(すなわち、スキャン画像ファイルから抽出された領収書領域の数)を示す領収書数G1701が含まれる。これにより、ユーザは、経費精算システム30に登録された領収書の数を知ることができる。
以上のように、機器10のユーザは、予め保存された認証チケットを用いて領収書登録サービスを利用することができる。したがって、機器10のユーザは、認証情報(経費精算システム30のユーザ名及びパスワード等)を入力することなく、領収書登録サービスの利用することができる。
ここで、図31に示す処理フローの実行処理(ステップS3113の処理)の詳細について、図33を参照しながら説明する。図33は、第三の実施形態に係る領収書登録サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、UI制御部150から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS3301)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow001」が含まれる。
以降のステップS3302〜ステップS3305の処理は、図12のステップS1202〜ステップS1205の処理と同様であるため、その説明を省略する。
ステップ1205に続いて、領域抽出コンポーネント410は、図12のステップS1206と同様に、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータに対して、パラメータ情報を用いて処理を実行する(ステップS3306)。そして、領域抽出コンポーネント410は、作成した領収書画像ファイルと、作成した領収書画像ファイルの数(すなわち、領収書の数)とを示すデータをフロー実行部301に返信する。
以降のステップS3307〜ステップS3308の処理は、図12のステップS1207〜ステップ1208の処理と同様であるため、その説明を省略する。
ステップS3308に続いて、フロー実行部301は、コンポーネントの実行要求を経費精算コンポーネント420に送信する(ステップS3309)。
なお、コンポーネントの実行要求には、図8に示す処理フロー情報1100の処理定義1112に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。すなわち、コンポーネントの実行要求には、パラメータ情報「"auth":null」に対して、認証チケットが設定されたパラメータ情報が含まれる。また、コンポーネントの実行要求には、経費精算システム30に対して台帳の作成要求を行うためのパラメータ情報が含まれる。
経費精算コンポーネント420は、コンポーネントの実行要求を受信すると、パラメータ情報を用いて処理を実行する(ステップS3310)。すなわち、経費精算コンポーネント420は、台帳の作成要求を経費精算システム30に送信する。なお、経費精算コンポーネント420は、例えば、経費精算システム30が公開しているWebAPIを用いて、台帳の作成要求を行うことができる。また、台帳の作成要求には、認証チケットが含まれる。
以降のステップS3311〜ステップS3314の処理は、図12のステップS1211〜ステップS1214の処理と同様であるため、その説明を省略する。
ステップS3314に続いて、フロー実行部301は、処理フローの実行要求を受信すると、認証チケットを用いて、経費精算サービスにおいて、台帳IDで示される台帳に領収書画像ファイルを登録するための処理(領収書の登録処理)を行う(ステップS3315)。そして、フロー実行部301は、領収書の登録処理の処理結果を反復コンポーネント430に返信する。
その後、反復コンポーネント430は、ステップS3315の領収書の登録処理を繰り返し実行させた処理結果(当該処理結果には、経費精算システム30に登録された領収書の数が含まれる)を示すデータをフロー実行部301に返信する。
ここで、領収書の登録処理(ステップS3315の処理)の詳細について、図34を参照しながら説明する。図34は、第三の実施形態に係る領収書の登録処理の一例を示すシーケンス図である。なお、ステップS3401〜ステップS3402の処理は、図13のステップS1301〜ステップS1302の処理と同様であるため、その説明を省略する。
ステップS3402に続いて、フロー実行部301は、図9に示す処理フロー情報1100の処理定義1211に含まれる「"component"」に定義されているコンポーネント名「"expense"」のコンポーネントにコンポーネントの実行要求を送信する(ステップS3403)。すなわち、フロー実行部301は、コンポーネントの実行要求を経費精算コンポーネント420に送信する。
なお、コンポーネントの実行要求には、データ(領収書画像ファイル)が含まれる。また、パラメータ情報「"auth":null」に対して、認証チケットが設定されたパラメータ情報と、経費精算システム30に対して領収書の登録要求を行うためのパラメータ情報と、台帳IDを示すパラメータ情報とが含まれる。
経費精算コンポーネント420は、コンポーネントの実行要求を受信すると、データ及びパラメータ情報を用いて処理を実行する(ステップS3404)。すなわち、経費精算コンポーネント420は、領収書の登録要求を経費精算システム30に送信する。なお、経費精算コンポーネント420は、例えば、経費精算システム30が公開しているWebAPIを用いて、領収書の登録要求を行うことができる。領収書の登録要求には、領収書画像ファイルと、台帳IDと、認証チケットとが含まれる。これにより、経費精算サービス上の台帳に領収書画像ファイルが登録される。
<まとめ>
以上のように、第一の実施形態に係る機器10(例えばMFP等の画像形成装置)は、経費精算システム30と連携した領収書登録サービスをユーザに提供することができる。したがって、機器10のユーザは、当該機器10で領収書やレシート等の経費を証明する証明書をスキャンすることで、これら証明書を示す画像ファイルを経費精算システム30に登録することができる。
また、第二の実施形態に係る機器10(例えばスマートフォンやタブレット端末、デジタルカメラ等)は、当該機器10で領収書やレシート等の経費を証明する証明書を撮影することで、これらの証明書を示す画像ファイルを経費精算システム30に登録することができる。
これにより、機器10のユーザは、経費精算システム30が提供する経費精算サービスを利用して経費精算を行う場合に、領収書やレシート等の経費を証明する証明書を示す画像ファイルを経費精算システム30に容易に登録することができるようになる。
更に、第三の実施形態に係る機器10は、経費精算システム30との間で認証連携を行うための認証チケットを当該機器10に保存することができる。これにより、機器10のユーザは、経費精算システム30と認証連携を行うための設定をすることにより、認証情報(経費精算システム30のユーザ名及びパスワード)を入力することなく、領収書登録サービスを利用することができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。