以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
[第一の実施形態]
<システム構成>
まず、本実施形態に係る情報処理システム1のシステム構成について、図1を参照しながら説明する。図1は、本実施形態に係る情報処理システム1の一例のシステム構成を示す図である。
図1に示す情報処理システム1は、サービス提供システム10と、機器20と、PC端末30と、経費精算システム40とを含み、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
サービス提供システム10は、一台以上の情報処理装置で実現され、ネットワークN1を介して、種々の機能をそれぞれ実現する複数の処理のうちの1以上の処理を組み合わせた一連の処理により実現される各種のサービスを提供する。
ここで、機能には、例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール配信、OCR(Optical Character Recognition)処理、加工や圧縮・解凍、リポジトリへの格納等が挙げられる。また、機能には、例えば、外部サービス(例えば、経費精算システム40が提供する経費精算サービス)との連携等が挙げられる。
本実施形態に係るサービス提供システム10は、経費精算サービスとの連携を実現する処理が含まれる一連の処理により実現されるサービスを提供する。本実施形態に係るサービス提供システム10が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
機器20は、ユーザが使用する各種の電子機器である。すなわち、機器20は、例えば、MFP(Multifunction Peripheral)等の画像形成装置である。ユーザは、機器20を用いて、サービス提供システム10が提供する各種のサービスを利用することができる。
ただし、機器20は、画像形成装置に限られず、例えば、スマートフォン、タブレット端末、デジタルカメラ、プロジェクタ、電子黒板等であっても良い。
なお、以降では、複数の機器20について、各々を区別するときは、「機器201」、「機器202」等と添え字を用いて記載する。
PC端末30は、例えば、ユーザが使用するデスクトップPC(パーソナルコンピュータ)、ノート型PC、スマートフォン、タブレット端末等である。ユーザは、経費精算システム40が提供する経費精算サービスを利用することができる。
なお、以降では、複数のPC端末30について、各々を区別するときは、「PC端末301」、「PC端末302」等と添え字を用いて記載する。
経費精算システム40は、ネットワークN1を介して、経費精算サービスを提供するコンピュータシステムである。経費精算サービスとは、旅費交通費や接待交際費等を経費として精算するためのサービスである。ユーザは、例えば、PC端末30に搭載されたブラウザを用いて、経費精算システム40にアクセスすることにより、経費精算サービスを利用することができる。
また、図1に示す情報処理システム1の構成は一例であって、他の構成であっても良い。例えば、本実施形態に係る情報処理システム1には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム10により提供されるサービスを利用しても良い。
<ハードウェア構成>
次に、本実施形態に係る情報処理システム1に含まれるサービス提供システム10及びPC端末30のハードウェア構成について、図2を参照しながら説明する。図2は、本実施形態に係るサービス提供システム10及びPC端末30の一例のハードウェア構成を示す図である。なお、サービス提供システム10及びPC端末30は、同様のハードウェア構成を有しているため、以降では、主に、サービス提供システム10のハードウェア構成について説明する。
図2に示すサービス提供システム10は、入力装置11と、表示装置12と、外部I/F13と、RAM(Random Access Memory)14とを有する。また、サービス提供システム10は、ROM(Read Only Memory)15と、CPU(Central Processing Unit)16と、通信I/F17と、HDD(Hard Disk Drive)18とを有する。これらの各ハードウェアは、それぞれがバスBで接続されている。
入力装置11は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置12は、ディスプレイ等を含み、サービス提供システム10による処理結果を表示する。なお、入力装置11及び表示装置12の少なくとも一方は、必要なときにサービス提供システム10に接続して利用する形態であっても良い。
通信I/F17は、サービス提供システム10をネットワークN1に接続するインタフェースである。これにより、サービス提供システム10は、通信I/F17を介して通信を行うことができる。
HDD18は、プログラムやデータを格納している不揮発性の記憶装置である。HDD18に格納されるプログラムやデータには、サービス提供システム10全体を制御する基本ソフトウェアであるOS(Operating System)、OS上において各種機能を提供するアプリケーションソフトウェア等がある。
なお、サービス提供システム10は、HDD18に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであっても良い。また、HDD18は、格納しているプログラムやデータを所定のファイルシステム及び/又はDBにより管理している。
外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。これにより、サービス提供システム10は、外部I/F13を介して記録媒体13aの読み取りや書き込みを行うことができる。記録媒体13aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM15には、サービス提供システム10の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM14は、プログラムやデータを一時保持する揮発性の半導体メモリである。
CPU16は、ROM15やHDD18等の記憶装置からプログラムやデータをRAM14上に読み出し、処理を実行することで、サービス提供システム10全体の制御や機能を実現する演算装置である。
本実施形態に係るサービス提供システム10及びPC端末30は、図2に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
次に、本実施形態に係る情報処理システム1に含まれる機器20が画像形成装置である場合のハードウェア構成について、図3を参照しながら説明する。図3は、本実施形態に係る機器20の一例のハードウェア構成を示す図である。
図3に示す機器20は、コントローラ21と、操作パネル22と、外部I/F23と、通信I/F24と、プリンタ25と、スキャナ26とを有する。また、コントローラ21は、CPU31と、RAM32と、ROM33と、NVRAM34と、HDD35とを有する。
ROM33は、各種プログラムやデータを格納している不揮発性の半導体メモリである。RAM32は、プログラムやデータを一時保持する揮発性の半導体メモリである。NVRAM34は、例えば設定情報等を格納している。また、HDD35は、各種プログラムやデータを格納している不揮発性の記憶装置である。
CPU31は、ROM33やNVRAM34、HDD35等からプログラムやデータ、設定情報等をRAM32上に読み出し、処理を実行することで、機器20全体の制御や機能を実現する演算装置である。
操作パネル22は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部I/F23は、外部装置とのインタフェースである。外部装置には、記録媒体23a等がある。これにより、機器20は、外部I/F23を介して記録媒体23aの読み取り及び/又は書き込みを行うことができる。なお、記録媒体23aには、例えば、ICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
通信I/F24は、機器20をネットワークN1に接続するインタフェースである。これにより、機器20は、通信I/F24を介して通信を行うことができる。プリンタ25は、印刷データを印刷する印刷装置である。スキャナ26は、原稿を読み取って電子ファイル(画像ファイル)を生成する読取装置である。
本実施形態に係る機器20は、図3に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
<サービス提供システムが提供するサービス>
ここで、本実施形態に係るサービス提供システム10が提供するサービスについて説明する。なお、本実施形態では、機器20が画像形成装置であるものとして説明する。
本実施形態に係るサービス提供システム10は、機器20の原稿台(スキャナ26)に置いた領収書をスキャンして生成したスキャン画像ファイルから領収書を示す領域を抽出して、領収書画像ファイルを作成し、経費精算サービスに登録するサービスを提供する。
すなわち、本実施形態に係るサービス提供システム10は、図4に示すように、例えば、3枚の領収書をスキャンすることで生成されたスキャン画像ファイルG100から各領収書を示す領域R110〜R130を抽出して、領収書画像ファイルG110〜G130を作成する。そして、本実施形態に係るサービス提供システム10は、作成した領収書画像ファイルG110〜G130を経費精算サービスに登録する。
本実施形態に係る、上述したサービス(以降では、「領収書登録サービス」と表す。)を提供するものとして説明する。
ただし、サービス提供システム10により提供されるサービスは、これに限られない。サービス提供システム10は、例えば、スキャン画像ファイルから領収書を示す領域を抽出することにより作成された領収書画像ファイルに対して、OCR処理や暗号化処理等を行った上で、経費精算サービスに登録するサービスを提供しても良い。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について、図5を参照しながら説明する。図5は、本実施形態に係る情報処理システム1の一例の機能構成を示す図である。
図5に示す機器20は、例えばCPU31等により実行されるクライアントアプリケーション210を有する。クライアントアプリケーション210は、サービス提供システム10が提供するサービスを利用するためのアプリケーションプログラムである。ユーザは、機器20にインストールされたクライアントアプリケーション210を用いて、サービス提供システム10が提供する領収書登録サービスを利用することができる。
図5に示すPC端末30は、例えばCPU16等により実行されるブラウザ310を有する。PC端末30のユーザは、ブラウザ310を介して、経費精算システム40が提供する経費精算サービスを利用することができる。
図5に示すサービス提供システム10は、入出力サービス処理部110と、ドキュメントサービス部120とを有する。これら各機能部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU16に実行させる処理により実現される。
また、図5に示すサービス提供システム10は、アプリ情報記憶部130を有する。当該記憶部は、HDD18により実現可能である。なお、アプリ情報記憶部130は、サービス提供システム10とネットワークN1を介して接続される記憶装置等により実現されていても良い。
入出力サービス処理部110は、サービス提供システム10が提供するサービスに関する処理を行う。ここで、入出力サービス処理部110は、アプリ管理部111と、ロジック処理部112とを有する。
アプリ管理部111は、アプリ情報記憶部130に記憶されているアプリ情報1000を管理する。なお、アプリ情報1000とは、一連の処理により実現されるサービスを提供するためのアプリケーションである。すなわち、サービス提供システム10が提供する各種のサービス(例えば、領収書登録サービス)は、アプリ情報1000により提供される。
また、アプリ管理部111は、ロジック処理部112からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100を返信する。なお、処理フロー情報1100とは、アプリ情報1000により提供されるサービスを実現する一連の処理が定義された情報である。
ロジック処理部112は、クライアントアプリケーション210からの要求に応じて、アプリ情報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の詳細な機能構成について、図6を参照しながら説明する。図6は、本実施形態に係るロジック処理部112の一例の機能構成を示す図である。
図6に示すロジック処理部112は、フロー実行部301と、コンポーネント管理部302と、コンポーネント群303とを有する。
フロー実行部301は、クライアントアプリケーション210からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100をアプリ管理部111から取得する。そして、フロー実行部301は、アプリ管理部111から取得した処理フロー情報1100に基づく一連の処理(処理フロー)を実行する。
ここで、処理フロー情報1100に基づく一連の処理(処理フロー)は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
コンポーネント管理部302は、コンポーネントを管理する。コンポーネント管理部302は、フロー実行部301からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部301に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ(例えばRAM14)上に展開することである。
コンポーネント群303は、コンポーネントの集合である。コンポーネント群303には、領域抽出コンポーネント410と、経費精算コンポーネント420と、反復コンポーネント430とが含まれる。
領域抽出コンポーネント410は、領収書画像ファイルを作成するためのコンポーネントである。すなわち、領域抽出コンポーネント410は、ドキュメントサービス部120の領域抽出部121に処理を要求することにより、領収書を示す領域をスキャン画像ファイルから抽出して、領収書画像ファイルを作成する。
経費精算コンポーネント420は、経費精算システム40に対して各種の要求を行うためのコンポーネントである。すなわち、経費精算コンポーネント420は、経費精算システム40に対して、領収書画像ファイルが登録される台帳の作成を要求する。また、経費精算コンポーネント420は、領収書画像ファイルの台帳への登録を要求する。
反復コンポーネント430は、1以上の処理の反復を実現するためのコンポーネントである。すなわち、反復コンポーネント430は、1以上の処理を含む他の一連の処理(処理フロー)を所定の回数繰り返し実行させることで、1以上の処理の反復を実現する。
なお、コンポーネント群303には、これら以外にも、例えば、電子ファイルを圧縮するための圧縮コンポーネント、電子ファイルのデータ形式を変換するための変換コンポーネント等の各種のコンポーネントが含まれる。
また、コンポーネント群303に含まれる各コンポーネントは、コンポーネント共通I/F400を有する。コンポーネント共通I/F400は、各コンポーネントに対して共通に定義されたAPI(Application Program Interface)であり、コンポーネントを生成するためのAPIと、コンポーネントの処理を実行するためのAPIとが含まれる。
なお、コンポーネント管理部302は、例えば、サービス提供システム10の起動時に、コンポーネント共通I/F400により、コンポーネント群303に含まれる各コンポーネントを生成しても良い。
ここで、本実施形態に係る領収書登録サービスを実現する一連の処理(処理フロー)が定義された処理フロー情報1100について、図7を参照しながら説明する。図7は、領収書登録サービスを実現する一連の処理が定義された処理フロー情報1100の一例を示す図である。
図7に示す処理フロー情報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"」には、経費精算システム40を利用するための認証情報(例えば、ユーザ名やパスワード、アクセストークン)等を設定するためのパラメータ情報「"auth":null」が定義されている。
なお、経費精算コンポーネント420に対するパラメータ情報には、これ以外にも、例えば、経費精算システム40に対する要求(例えば、台帳の作成要求)を設定するパラメータ情報等がある。
また、同様に、処理定義1113の「"component"」には、反復コンポーネント430のコンポーネント名「"iterate"」が定義されている。また、処理定義1113の「"parameters"」には、反復コンポーネント430に対するパラメータ情報が定義されている。
処理定義1113の「"parameters"」には、反復コンポーネント430が繰り返し実行させる一連の処理が定義された処理フロー情報1100のフローIDを示すパラメータ情報「"flowid":"flow101"」が定義されている。
なお、反復コンポーネント430に対するパラメータ情報には、これ以外にも、例えば、反復コンポーネント430が一連の処理を繰り返し実行させる回数(反復回数)を設定するためのパラメータ情報等がある。
このように、処理フロー情報1100には、一連の処理に含まれる各処理を実行するコンポーネントと、当該コンポーネントに対するパラメータ情報とが定義される。なお、各処理定義に定義された処理の実行順は、フロー詳細1102において、上から順に定義される。すなわち、図7に示す処理フロー情報1100に基づく一連の処理(処理フロー)では、処理定義1111に定義された処理、処理定義1112に定義された処理、及び処理定義1113に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報1100には、例えば、各処理定義に定義された処理の実行順を示す情報が定義されていても良い。
これにより、領域抽出コンポーネント410は、スキャン画像ファイルに含まれる領収書の領域を抽出して、1以上の領収書画像ファイルを作成することができる。また、経費精算コンポーネント420は、領収書画像ファイルを登録するための台帳を経費精算サービス上に作成することができる。
ここで、図7に示す処理フロー情報1100の処理定義1113には、反復コンポーネント430により、フローID「flow101」の処理フロー情報1100に基づく一連の処理を繰り返し実行させることが定義されている。したがって、フローID「flow101」の処理フロー情報1100について、図8を参照しながら説明する。図8は、領収書登録サービスを実現する一連の処理において、反復実行される一連の処理が定義された処理フロー情報1100の一例を示す図である。
図8に示す処理フロー情報1100には、フローID1201と、フロー詳細1202とが含まれる。
フロー詳細1202には、処理定義1211が含まれる。処理定義1211には、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」と、当該コンポーネントに対するパラメータ情報が定義される「"parameters"」とが含まれる。
具体的には、処理定義1211の「"component"」には、経費精算コンポーネント420のコンポーネント名「"expense"」が定義されている。また、処理定義1211の「"parameters"」には、経費精算コンポーネント420に対するパラメータ情報が定義されている。
処理定義1211の「"parameters"」には、経費精算システム40を利用するための認証情報(例えば、ユーザ名やパスワード、アクセストークン)等を設定するためのパラメータ情報「"auth":null」が定義されている。
なお、経費精算コンポーネント420に対するパラメータ情報には、これ以外にも、例えば、経費精算システム40に対する要求(例えば、領収書画像ファイルの登録要求)を設定するパラメータ情報等がある。
これにより、反復コンポーネント430は、図8に示す処理フロー情報1100に基づく一連の処理を繰り返し実行させることで、経費精算コンポーネント420により、1以上の領収書画像ファイルを経費精算サービスに登録することができる。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。まず、機器20のユーザが領収書登録サービスを利用して、領収書の画像ファイル(領収書画像ファイル)を経費精算サービスに登録する処理について、図9を参照しながら説明する。図9は、本実施形態に係る領収書登録サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、ユーザは、機器20を用いて、領収書登録サービスの利用画面の表示操作を行う(ステップS901)。すると、機器20のクライアントアプリケーション210は、領収書登録サービスの利用画面の表示操作を受け付ける。なお、領収書登録サービスの利用画面の表示操作は、例えば、クライアントアプリケーション210の起動操作等である。
クライアントアプリケーション210は、ユーザによる当該表示操作を受け付けると、例えば図10に示す領収書登録サービスの利用画面G200を表示する(ステップS902)。
ここで、図10に示す領収書登録サービスの利用画面G200には、ユーザ名入力欄G210と、パスワード入力欄G220と、スキャン実行ボタンG230とが含まれる。ユーザ名入力欄G210及びパスワード入力欄G220は、経費精算サービスを利用するための認証情報の一例として、当該経費精算サービスにおけるユーザ名及びパスワードをそれぞれ入力するための入力欄である。また、スキャン実行ボタンG230は、領収書をスキャンして、スキャン画像ファイルを作成するための表示部品である。
次に、ユーザは、機器20を用いて、領収書登録サービスの利用開始操作を行う(ステップS903)。すなわち、ユーザは、機器20のスキャナ26に1以上の領収書をセットすると共に、図10に示す領収書登録サービスの利用画面G200のユーザ名入力欄G210及びパスワード入力欄G220にユーザ名及びパスワードをそれぞれ入力する。そして、ユーザは、スキャン実行ボタンG230を押下して、領収書登録サービスの利用開始操作を行う。すると、クライアントアプリケーション210は、領収書登録サービスの利用開始操作を受け付ける。なお、ユーザは、領収書以外にも、例えば、レシート等の経費を証明する各種の証明書をスキャナ26にセットしても良い。
クライアントアプリケーション210は、ユーザによる当該利用開始操作を受け付けると、スキャナ26により各領収書を読み取って、これら各領収書が表示される領域を含むスキャン画像ファイルを生成する(ステップS904)。
なお、本実施形態に係る機器20は、領収書をスキャナ26により読み取ることで画像ファイル(スキャン画像ファイル)を生成したが、これに限られない。例えば、機器20がデジタルカメラやスマートフォン、タブレット端末等である場合には、領収書をカメラで撮影することにより画像ファイルを生成しても良い。
次に、クライアントアプリケーション210は、処理フローの実行要求をロジック処理部112に送信する(ステップS905)。なお、処理フローの実行要求には、本実施形態に係る領収書登録サービスを実現する処理フロー情報1100のフローID「flow001」と、スキャン画像ファイルと、認証情報(すなわち、ユーザ名及びパスワード)とが含まれる。
ここで、当該フローID「flow001」は、例えば、領収書登録サービスの利用画面G200のスキャン実行ボタンG230に関連付けられている。ただし、当該フローID「flow001」は、例えば、領収書登録サービスの利用画面G200に関連付けられていても良い。
次に、ロジック処理部112は、処理フローの実行要求を受信すると、処理フローの実行処理を行う(ステップS906)。すなわち、ロジック処理部112は、当該実行要求に含まれるフローID「flow001」の処理フロー情報1100に基づく一連の処理を実行する。
そして、ロジック処理部112は、処理フローの実行処理の処理結果をクライアントアプリケーション210に返信する。これにより、本実施形態に係るサービス提供システム10は、機器20に対して、領収書登録サービスを提供することができる。
ここで、図9に示す処理フローの実行処理(ステップS906の処理)の詳細について、図11を参照しながら説明する。図11は、本実施形態に係る領収書登録サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、クライアントアプリケーション210から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS1101)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow001」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローID「flow001」の処理フロー情報1100を、アプリ情報記憶部130に記憶されているアプリ情報1000から取得する(ステップS1102)。すなわち、アプリ管理部111は、図7に示す処理フロー情報1100をアプリ情報記憶部130から取得する。
そして、アプリ管理部111は、アプリ情報記憶部130から取得した処理フロー情報1100をロジック処理部112に返信する。
フロー実行部301は、図7に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1103)。すなわち、フロー実行部301は、図7に示す処理フロー情報1100の処理定義1111に含まれる「"component"」に定義されているコンポーネント名「"etract"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"etract"」のコンポーネント(すなわち、領域抽出コンポーネント410)を生成する(ステップS1104)。なお、領域抽出コンポーネント410の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した領域抽出コンポーネント410をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、領域抽出コンポーネント410が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を領域抽出コンポーネント410に送信する(ステップS1105)。
なお、コンポーネントの実行要求には、データが含まれる。ここで、データとは、クライアントアプリケーション210から受信した処理フローの実行要求に含まれるスキャン画像ファイルである。このように、フロー実行部301は、画像ファイル等の電子データを、単に「データ」として(すなわち、データ形式を意識することなく)、各コンポーネントに送信する。
また、コンポーネントの実行要求には、図7に示す処理フロー情報1100の処理定義1111に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。
領域抽出コンポーネント410は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータに対して、パラメータ情報を用いて処理を実行する(ステップS1106)。すなわち、領域抽出コンポーネント410は、ドキュメントサービス部120の領域抽出部121により、スキャン画像ファイルに含まれる領収書の領域を抽出して、領収書画像ファイルを作成する。なお、スキャン画像ファイルに複数の領収書の領域が含まれる場合、領域抽出コンポーネント410は、これら複数の領収書の領域をそれぞれ抽出して、複数の領収書画像ファイルを作成する。
また、例えば、レシートを示す領域がスキャン画像ファイルに含まれる場合には、領域抽出コンポーネント410は、当該レシートを示す領域を抽出して、レシート画像ファイルを作成しても良い。この場合、領収書登録サービスにより、レシート画像ファイルが経費精算サービスに登録される。
更に、例えば、スキャン画像ファイルに含まれる領収書の領域が傾いている場合等には、当該領域を回転等させた上で、抽出して、領収書画像ファイルを作成する。
そして、領域抽出コンポーネント410は、作成した領収書画像ファイルを示すデータをフロー実行部301に返信する。
次に、フロー実行部301は、図7に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1107)。すなわち、フロー実行部301は、図7に示す処理フロー情報1100の処理定義1112に含まれる「"component"」に定義されているコンポーネント名「"expense"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"expense"」のコンポーネント(すなわち、経費精算コンポーネント420)を生成する(ステップS1108)。なお、経費精算コンポーネント420の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した経費精算コンポーネント420をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、経費精算コンポーネント420が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を経費精算コンポーネント420に送信する(ステップS1109)。
なお、コンポーネントの実行要求には、図7に示す処理フロー情報1100の処理定義1112に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。
すなわち、コンポーネントの実行要求には、パラメータ情報「"auth":null」に対して、認証情報が設定されたパラメータ情報が含まれる。例えば、領収書登録サービスの利用画面G200のユーザ名入力欄G210及びパスワード入力欄G220にユーザ名「user001」及びパスワード「abcde」が入力された場合、パラメータ情報は、「"auth":"user001/abcde"」である。
また、コンポーネントの実行要求には、経費精算システム40に対して台帳の作成要求を行うためのパラメータ情報が含まれる。
経費精算コンポーネント420は、コンポーネントの実行要求を受信すると、パラメータ情報を用いて処理を実行する(ステップS1110)。すなわち、経費精算コンポーネント420は、台帳の作成要求を経費精算システム40に送信する。なお、経費精算コンポーネント420は、例えば、経費精算システム40が公開しているWebAPIを用いて、台帳の作成要求を行うことができる。また、台帳の作成要求には、認証情報が含まれる。
すると、経費精算システム40は、領収書画像ファイルを登録するための台帳を作成して、作成した台帳を識別する台帳IDを処理結果として経費精算コンポーネント420に返信する。そして、経費精算コンポーネント420は、台帳IDを示すデータをフロー実行部301に返信する。
このように、経費精算コンポーネント420は、経費精算システム40に対して台帳の作成を要求することで、領収書画像ファイルを登録するための台帳を経費精算サービス上に作成する。
次に、フロー実行部301は、図7に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1111)。すなわち、フロー実行部301は、図7に示す処理フロー情報1100の処理定義1113に含まれる「"component"」に定義されているコンポーネント名「"iterate"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"iterate"」のコンポーネント(すなわち、反復コンポーネント430)を生成する(ステップS1112)。なお、反復コンポーネント430の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した反復コンポーネント430をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、反復コンポーネント430が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を反復コンポーネント430に送信する(ステップS1113)。
なお、コンポーネントの実行要求には、領域抽出コンポーネント410により作成された領収書画像ファイルを示すデータが含まれる。したがって、コンポーネントの実行要求には、領域抽出コンポーネント410により複数の領収書画像ファイルが作成された場合には、これら複数の領収書画像ファイルをそれぞれ示す複数のデータが含まれる。
また、コンポーネントの実行要求には、図7に示す処理フロー情報1100の処理定義1113に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。すなわち、コンポーネントの実行要求には、パラメータ情報「"flowid":"flow101"」と、上記のステップS1110で返信された台帳IDを示すパラメータ情報とが含まれる。
反復コンポーネント430は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータ(すなわち、領収書画像ファイル)毎に、処理フローの実行要求をフロー実行部301に送信する(ステップS1114)。すなわち、反復コンポーネント430は、領収書画像ファイル数の回数、ステップS1115の領収書の登録処理を繰り返し実行させる。なお、処理フローの実行要求には、データ(すなわち、領収書画像ファイル)と、フローID「flow101」と、台帳IDとが含まれる。
フロー実行部301は、処理フローの実行要求を受信すると、経費精算サービスにおいて、台帳IDで示される台帳に領収書画像ファイルを登録するための処理(領収書の登録処理)を行う(ステップS1115)。そして、フロー実行部301は、領収書の登録処理の処理結果を反復コンポーネント430に返信する。
その後、反復コンポーネント430は、ステップS1115の領収書の登録処理を繰り返し実行させた処理結果を示すデータをフロー実行部301に返信する。
ここで、領収書の登録処理(ステップS1115の処理)の詳細について、図12を参照しながら説明する。図12は、本実施形態に係る領収書の登録処理の一例を示すシーケンス図である。
まず、フロー実行部301は、反復コンポーネント430から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS1201)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow101」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローID「flow101」の処理フロー情報1100を、アプリ情報記憶部130に記憶されているアプリ情報1000から取得する(ステップS1202)。すなわち、アプリ管理部111は、図8に示す処理フロー情報1100をアプリ情報記憶部130から取得する。
そして、アプリ管理部111は、アプリ情報記憶部130から取得した処理フロー情報1100をロジック処理部112に返信する。
次に、フロー実行部301は、図8に示す処理フロー情報1100の処理定義1211に含まれる「"component"」に定義されているコンポーネント名「"expense"」のコンポーネントにコンポーネントの実行要求を送信する(ステップS1203)。すなわち、フロー実行部301は、コンポーネントの実行要求を経費精算コンポーネント420に送信する。
なお、コンポーネントの実行要求には、データ(すなわち、領収書画像ファイル)が含まれる。また、パラメータ情報「"auth":null」に対して、認証情報が設定されたパラメータ情報と、経費精算システム40に対して領収書の登録要求を行うためのパラメータ情報と、台帳IDを示すパラメータ情報とが含まれる。
経費精算コンポーネント420は、コンポーネントの実行要求を受信すると、データ及びパラメータ情報を用いて処理を実行する(ステップS1204)。すなわち、経費精算コンポーネント420は、領収書の登録要求を経費精算システム40に送信する。なお、経費精算コンポーネント420は、例えば、経費精算システム40が公開しているWebAPIを用いて、領収書の登録要求を行うことができる。また、領収書の登録要求には、領収書画像ファイルと、台帳IDと、認証情報とが含まれる。
すると、経費精算システム40は、台帳IDにより示される台帳に領収書画像ファイルを登録して、登録結果を経費精算コンポーネント420に返信する。そして、経費精算コンポーネント420は、登録結果を示すデータをフロー実行部301に返信する。
このように、経費精算コンポーネント420は、経費精算システム40に対して領収書の登録を要求することで、経費精算サービス上の台帳に領収書画像ファイルを登録することができる。
ここで、経費精算サービス上の台帳に領収書画像ファイルが登録されることで、当該台帳には、領収書画像ファイルに対応する領収書データが登録される。なお、領収書データには、例えば、勘定科目や日付等の項目が含まれる。領収書データに含まれる各項目は、例えば、領収書画像ファイルをOCR処理した処理結果(例えば、勘定科目の項目値や日付の項目値等)が設定されていても良い。
次に、PC端末30のユーザが経費精算サービスを利用する場合の処理について、図13を参照しながら説明する。図13は、本実施形態に係る経費精算サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、ユーザは、PC端末30を用いて、経費精算サービスのログイン画面の表示操作を行う(ステップS1301)。すると、PC端末30のブラウザ310は、経費精算サービスのログイン画面の表示操作を受け付ける。ユーザは、例えば、ブラウザ310により表示された所定の画面において、経費精算サービスのログイン画面へのリンクを押下することで、ログイン画面の表示操作を行うことができる。なお、ユーザは、例えば、経費精算サービスのログイン画面のURL(Uniform Resource Locator)をブラウザ310のアドレスバー等に入力することで、ログイン画面の表示操作を行っても良い。
ブラウザ310は、ユーザによる当該表示操作を受け付けると、ログイン画面の取得要求を経費精算システム40に送信する(ステップS1302)。すると、経費精算システム40は、ログイン画面を表示するための画面情報(例えば、ログイン画面がHTML(HyperText Markup Language)形式で定義された情報)を返信する。
ブラウザ310は、ログイン画面を表示するための画面情報を受信すると、当該画面情報に基づいて、例えば図14(a)に示すログイン画面G300を表示する(ステップS1303)。
ここで、図14(a)に示すログイン画面G300には、ユーザ名入力欄G310と、パスワード入力欄G320と、ログインボタンG330とが含まれる。ユーザ名入力欄G310及びパスワード入力欄G320は、経費精算サービスを利用するための認証情報の一例として、当該経費精算サービスにおけるユーザ名及びパスワードをそれぞれ入力するための入力欄である。また、ログインボタンG330は、経費精算サービスにログイン要求を送信するための表示部品である。
次に、ユーザは、PC端末30を用いて、経費精算サービスへのログイン操作を行う(ステップS1304)。すなわち、ユーザは、図14(a)に示すログイン画面G300のユーザ名入力欄G310及びパスワード入力欄G320にユーザ名及びパスワードをそれぞれ入力した上で、ログインボタンG330を押下して、ログイン操作を行う。すると、ブラウザ310は、当該ログイン操作を受け付ける。
ブラウザ310は、ユーザによる当該ログイン操作を受け付けると、ログイン要求を経費精算システム40に送信する(ステップS1305)。なお、ログイン要求には、認証情報(すなわち、ユーザ名入力欄G310及びパスワード入力欄G320に入力されたユーザ名及びパスワード)が含まれる。
すると、経費精算システム40は、受信したログイン要求に含まれる認証情報の正当性を検証した上で、ログイン結果をブラウザ310に返信する。以降では、ログイン成功を示すログイン結果が返信されたものとして説明を続ける。
ブラウザ310は、ログイン結果を受信すると、台帳一覧画面の取得要求を経費精算システム40に送信する(ステップS1306)。すると、経費精算システム40は、台帳一覧画面を表示するための画面情報(例えば、台帳一覧画面がHTML形式で定義された情報)を返信する。
ブラウザ310は、台帳一覧画面を表示するための画面情報を受信すると、当該画面情報に基づいて、例えば図14(b)に示す台帳一覧画面G400を表示する(ステップS1307)。
ここで、図14(b)に示す台帳一覧画面G400には、台帳一覧G410が含まれる。ユーザは、台帳一覧G410から所望の台帳を選択することで、選択した台帳に登録されている領収書データの編集等を行うことができる。また、台帳一覧G410に含まれる「新しい台帳を作成」アイコンを選択することで、ユーザは、新しい台帳を作成することもできる。
次に、ユーザは、PC端末30を用いて、台帳の選択操作を行う(ステップS1308)。すなわち、ユーザは、図14(b)に示す台帳一覧画面G400の台帳一覧G410から所望の台帳を選択する選択操作を行う。すると、ブラウザ310は、当該選択操作を受け付ける。以降では、ユーザは、「台帳A」アイコンを選択したものとして説明を続ける。
ブラウザ310は、ユーザによる当該選択操作を受け付けると、選択された「台帳A」の台帳画面の取得要求を経費精算システム40に送信する(ステップS1309)。すると、経費精算システム40は、「台帳A」の台帳画面を表示するための画面情報(例えば、台帳画面がHTML形式で定義された情報)を返信する。
ブラウザ310は、「台帳A」の台帳画面を表示するための画面情報を受信すると、当該画面情報に基づいて、例えば図14(c)に示す台帳画面G500を表示する(ステップS1310)。
ここで、図14(c)に示す台帳画面G500には、領収書一覧G510と、領収書編集欄G520と、切替タブG530と、申請ボタンG540とが含まれる。ユーザは、領収書一覧G510から所望の領収書を選択した上で、領収書編集欄G520において、領収書データ(例えば、勘定科目、日付等)の入力又は編集を行うことができる。
また、図14(c)に示す台帳画面G500において、ユーザが切替タブG530の押下操作を行うと、ブラウザ310は、当該操作を受け付けて、図14(d)に示す台帳画面G600に表示を切り替える。
ここで、図14(d)に示す台帳画面G600には、領収書画像G610と、切替タブG620とが含まれる。領収書画像G610には、領収書一覧G510で選択された領収書の領収書画像ファイルが表示される。これにより、ユーザは、領収書画像G610を参照した上で、図14(c)に示す台帳画面G500の領収書編集欄G520において、領収書データの入力又は編集を行うことができる。
また、図14(d)に示す台帳画面G600において、ユーザが切替タブG620の押下操作を行うと、ブラウザ310は、当該操作を受け付けて、図14(c)に示す台帳画面G500に表示を切り替える。
このように、ユーザは、領収書一覧G510から所望の領収書を選択することで、領収書画像G610を確認することができる。したがって、ユーザは、領収書画像G610を参照した上で、領収書編集欄G520に含まれる各項目(例えば、勘定科目や日付等)の入力又は編集を行うことができる。なお、領収書編集欄G520及び領収書画像G610が同一の画面内に表示されていても良い。
次に、ユーザは、PC端末30を用いて、領収書の申請操作を行う(ステップS13111)。すなわち、ユーザは、図14(c)に示す台帳画面G500又は図14(d)に示す台帳画面G600において、申請ボタンG540を押下して、領収書の申請操作を行う。すると、ブラウザ310は、当該申請操作を受け付ける。
ブラウザ310は、ユーザによる当該申請操作を受け付けると、申請された領収書の経費精算要求を経費精算システム40に送信する(ステップS1302)。すると、経費精算システム40は、例えば、ワークフロー等による経費精算処理を実行して、経費精算要求に対する結果を返信する。これにより、ユーザにより領収書データが入力又は編集された領収書が経費として精算される。
[第二の実施形態]
次に、第二の実施形態について説明する。第二の実施形態では、機器20が、例えば、スマートフォンやタブレット端末、デジタルカメラ等である場合に、機器20が領収書を撮影して生成した撮影画像ファイルから領収書画像ファイルを作成して、経費精算サービスに登録する場合について説明する。
なお、第二の実施形態の説明では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同様の機能構成を有する箇所及び実質的に同様の処理を実行する箇所は、適宜、その説明を省略する。
<ハードウェア構成>
まず、本実施形態に係る情報処理システム1に含まれる機器20がスマートフォン又はタブレット端末である場合のハードウェア構成について、図15を参照しながら説明する。図15は、本実施形態に係る機器20の一例のハードウェア構成を示す図である。
図15に示す機器20は、入力装置41と、表示装置42と、外部I/F43と、通信I/F44とを有する。また、機器20は、RAM45と、CPU46と、フラッシュメモリ47と、カメラ装置48とを有する。これらの各ハードウェアは、それぞれがバス49で接続されている。
入力装置41は、タッチパネル等であり、ユーザが各種操作信号を入力するのに用いられる。表示装置42は、ディスプレイ等であり、機器20による処理結果を表示する。
通信I/F44は、機器20をネットワークN1に接続するインタフェースである。これにより、機器20は、通信I/F44を介して通信を行うことができる。
フラッシュメモリ47は、例えばEEPROM(Electrically Erasable and Programmable Read Only Memory)等であり、プログラムやデータを不揮発性の記憶装置である。フラッシュメモリ47に格納されるプログラムやデータには、機器20全体を制御する基本ソフトウェアであるOS、OS上において各種機能を提供するアプリケーションソフトウェア等がある。
外部I/F43は、外部装置とのインタフェースである。外部装置には、記録媒体43a等がある。これにより、機器20は、外部I/F43を介して記録媒体43aの読み取りや書き込みを行うことができる。記録媒体43aには、例えば、SDメモリカードやUSBメモリ等がある。
RAM45は、プログラムやデータを一時保持する揮発性の半導体メモリである。CPU46は、フラッシュメモリ47等の記憶装置からプログラムやデータをRAM45上に読み出し、処理を実行することで、機器20全体の制御や機能を実現する演算装置である。カメラ装置48は、撮影範囲内を撮影することにより画像ファイル(撮影画像ファイル)を生成する撮像装置である。
本実施形態に係る機器20は、図15に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
<サービス提供システムが提供するサービス>
ここで、本実施形態に係るサービス提供システム10が提供するサービスについて説明する。なお、本実施形態では、機器20がスマートフォン又はタブレット端末であるものとして説明する。ただし、機器20は、カメラ装置48が搭載されていれば、例えば、デジタルカメラやゲーム機器、ウェアラブル型の情報端末等であっても良い。
本実施形態に係るサービス提供システム10は、機器20により生成された撮影画像ファイルから領収書画像ファイルを作成し、経費精算サービスに登録するサービス(領収書登録サービス)を提供する。
ここで、本実施形態に係る領収書登録サービスを実現する一連の処理(処理フロー)が定義された処理フロー情報1100について、図16を参照しながら説明する。図16は、本実施形態に係る領収書登録サービスを実現する一連の処理が定義された処理フロー情報1100の一例を示す図である。
図16に示す処理フロー情報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"」には、経費精算システム40を利用するための認証情報(例えば、ユーザ名やパスワード、アクセストークン)等を設定するためのパラメータ情報「"auth":null」が定義されている。
また、同様に、処理定義1313の「"component"」には、反復コンポーネント430のコンポーネント名「"iterate"」が定義されている。また、処理定義1313の「"parameters"」には、反復コンポーネント430に対するパラメータ情報が定義されている。
処理定義1313の「"parameters"」には、反復コンポーネント430が繰り返し実行させる一連の処理が定義された処理フロー情報1100のフローIDを示すパラメータ情報「"flowid":"flow101"」が定義されている。
このように、図16に示す処理フロー情報1100の処理定義1311には、反復コンポーネント430により、後述するフローID「flow102」の処理フロー情報1100に基づく一連の処理を繰り返し実行させることが定義されている。また、図16に示す処理フロー情報1100の処理定義1312には、経費精算コンポーネント420により、台帳の作成を経費精算システム40に要求することが定義されている。更に、図16に示す処理フロー情報1100には、図7に示す処理フロー情報1100の処理定義1113と同様に、フローID「flow101」の処理フロー情報1100に基づく一連の処理を繰り返し実行させることが定義されている。
ここで、図16に示す処理フロー情報1100の処理定義1311には、反復コンポーネント430により、フローID「flow102」の処理フロー情報1100に基づく一連の処理を繰り返し実行させることが定義されている。したがって、フローID「flow102」の処理フロー情報1100について、図17を参照しながら説明する。図17は、領収書登録サービスを実現する一連の処理において、反復実行される一連の処理が定義された処理フロー情報1100の一例を示す図である。
図17に示す処理フロー情報1100には、フローID1401と、フロー詳細1402とが含まれる。
フロー詳細1402には、処理定義1411が含まれる。処理定義1411には、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」と、当該コンポーネントに対するパラメータ情報が定義される「"parameters"」とが含まれる。
具体的には、処理定義1411の「"component"」には、領域抽出コンポーネント410のコンポーネント名「"extract"」が定義されている。また、処理定義1411には、領域抽出コンポーネント410に対するパラメータ情報が定義されている。
なお、領域抽出コンポーネント410に対するパラメータ情報には、例えば、抽出対象の領域を特定するためのパラメータ情報(例えば、抽出対象である領収書の画像ファイル)等がある。
これにより、反復コンポーネント430は、図17に示す処理フロー情報1100に基づく一連の処理を繰り返し実行させることで、領域抽出コンポーネント410により、1以上の撮影画像ファイルからそれぞれ領収書画像ファイルを抽出することができる。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。以降では、機器20のユーザが領収書登録サービスを利用して、領収書を撮影することで生成した撮影画像ファイルから領収書画像ファイルを抽出し、経費精算サービスに登録する処理について、図18を参照しながら説明する。図18は、本実施形態に係る領収書登録サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、ユーザは、機器20を用いて、領収書登録サービスの利用画面の表示操作を行う(ステップS1801)。すると、機器20のクライアントアプリケーション210は、領収書登録サービスの利用画面の表示操作を受け付ける。なお、領収書登録サービスの利用画面の表示操作は、例えば、クライアントアプリケーション210の起動操作等である。
クライアントアプリケーション210は、ユーザによる当該操作を受け付けると、例えば図19(a)に示す領収書登録サービスの利用画面G700を表示する(ステップS1802)。
ここで、図19(a)に示す領収書登録サービスの利用画面G700には、認証情報の入力ボタンG710と、領収書撮影の開始ボタンG720とが含まれる。認証情報の入力ボタンG710は、経費精算サービスを利用するための認証情報の入力画面に遷移するための表示部品である。また、領収書撮影の開始ボタンG720は、カメラ装置48を起動させて、領収書を撮影するための撮影開始画面に遷移するための表示部品である。
図19(a)に示す領収書登録サービスの利用画面G700において、ユーザは、認証情報の入力ボタンG710を押下して、認証情報の入力画面の表示操作を行ったものとする(ステップS1803)。すると、クライアントアプリケーション210は、認証情報の入力画面の表示操作を受け付ける。
クライアントアプリケーション210は、ユーザによる当該操作を受け付けると、例えば図19(b)に示す認証情報の入力画面G800を表示する(ステップS1804)。
ここで、図19(b)に示す認証情報の入力画面G800には、ユーザ名入力欄G810と、パスワード入力欄G820と、OKボタンG830と、キャンセルボタンG840とが含まれる。ユーザ名入力欄G810及びパスワード入力欄G820は、経費精算サービスを利用するための認証情報の一例であるユーザ名及びパスワードをそれぞれ入力するための入力欄である。
また、OKボタンG830は、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれ入力されたユーザ名及びパスワードを保存して、図19(a)に示す領収書登録サービスの利用画面G700に戻るための表示部品である。一方、キャンセルボタンG840は、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれ入力されたユーザ名及びパスワードを保存せずに、図19(a)に示す領収書登録サービスの利用画面G700に戻るための表示部品である。
図19(b)に示す認証情報の入力画面G800において、ユーザは、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれユーザ名及びパスワードを入力した上で、OKボタンG830を押下して、認証情報の入力操作を行ったものとする(ステップS1805)。すると、クライアントアプリケーション210は、認証情報の入力操作を受け付ける。
クライアントアプリケーション210は、当該入力操作を受け付けると、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれ入力されたユーザ名及びパスワードを保存して、領収書登録サービスの利用画面G700を表示する(ステップS1806)。クライアントアプリケーション210は、ユーザ名入力欄G810及びパスワード入力欄G820にそれぞれ入力されたユーザ名及びパスワードを、例えば、フラッシュメモリ47の所定の記憶領域に保存すれば良い。
なお、例えば、認証情報(例えばユーザ名及びパスワード等)が既に保存されている場合には、上記のステップS1803〜ステップS1806は行わなくても良い。すなわち、この場合、ユーザは、図19(a)に示す領収書登録サービスの利用画面G700において、認証情報の入力ボタンG710を押下せずに、領収書撮影の開始ボタンG720を押下して、後述するステップS1807の領収書の撮影開始操作を行っても良い。
図19(a)に示す領収書登録サービスの利用画面G700において、ユーザは、領収書撮影の開始ボタンG720を押下して、領収書の撮影開始操作を行ったものとする(ステップS1807)。すると、クライアントアプリケーション210は、領収書の撮影開始操作を受け付ける。
クライアントアプリケーション210は、ユーザによる当該操作を受け付けると、カメラ装置48を起動させて、例えば図19(c)に示す撮影開始画面G900を表示する(ステップS1808)。
ここで、図19(c)に示す撮影開始画面G900は、基準枠G910と、領収書撮影ボタンG920と、撮影完了ボタンG930とが含まれる。これらの基準枠G910、領収書撮影ボタンG920、及び撮影完了ボタンG930は、カメラ装置48の撮影範囲内を示す画像の上に重畳して表示される。
基準枠G910は、領収書を撮影する際の基準となるマーカである。ユーザは、基準枠G910内に撮影対象の領収書が含まれるように、当該領収書と機器20との距離や拡縮倍率等の調整することで、撮影画像内の適切な範囲に領収書が写っているように撮影することができる。領収書撮影ボタンG920は、カメラ装置48により撮影範囲内を撮影して、撮影画像ファイルを生成するための表示部品である。撮影完了ボタンG930は、領収書の撮影を終了するための表示部品である。
ここで、領収書の撮影について、図20を参照しながら説明する。図20は、領収書の撮影の一例を示す図である。
図20(a)に示すように、ユーザは、基準枠G910内に撮影対象の領収書R140が含まれるように調整した上で、領収書撮影ボタンG920を押下することで、当該領収書R140を撮影することができる。
また、図20(b)に示すように、ユーザは、例えば、領収書撮影ボタンG920を押下して領収書R140を撮影した後、続けて領収書R150を撮影することができる。このように、ユーザは、撮影完了ボタンG930を押下するまでは、複数の領収書を順に撮影することができる。
なお、ユーザは、1回の撮影で複数の領収書を撮影しても良い。すなわち、例えば図21に示すように、ユーザは、基準枠G910内に、領収書R140及び領収書R150が含まれるように調整した上で、領収書撮影ボタンG920を押下しても良い。
図19(c)に示す撮影開始画面G900において、ユーザは、基準枠G910内に撮影対象の領収書が含まれるように調整した上で、領収書撮影ボタンG920を押下して、領収書の撮影操作を行ったものとする(ステップS1809)。すると、クライアントアプリケーション210は、領収書の撮影操作を受け付ける。
クライアントアプリケーション210は、ユーザによる当該操作を受け付けると、カメラ装置48により撮影範囲内を撮影して、撮影画像ファイルを生成する(ステップS1810)。
なお、上述したように、ユーザは、撮影完了ボタンG930を押下するまでは、上記のステップS1810の領収書の撮影操作を繰り返し行うことができる。
図19(c)に示す撮影開始画面G900において、ユーザは、撮影完了ボタンG930を押下して、撮影完了操作を行ったものとする(ステップS1811)。すると、クライアントアプリケーション210は、撮影完了操作を受け付ける。
クライアントアプリケーション210は、ユーザによる当該操作を受け付けると、処理フローの実行要求をロジック処理部112に送信する(ステップS1812)。なお、処理フローの実行要求には、本実施形態に係る領収書登録サービスを実現する処理フロー情報1100のフローID「flow002」と、認証情報(すなわち、ユーザ名及びパスワード)とが含まれる。また、処理フローの実行要求には、上記のステップS1810で生成された1以上の撮影画像ファイルが含まれる。
ここで、当該フローID「flow002」は、例えば、撮影開始画面G900の撮影完了ボタンG930に関連付けられている。ただし、当該フローID「flow002」は、例えば、撮影開始画面G900に関連付けられていても良い。
次に、ロジック処理部112は、処理フローの実行要求を受信すると、処理フローの実行処理を行う(ステップS1813)。すなわち、ロジック処理部112は、当該実行要求に含まれるフローID「flow002」の処理フロー情報1100に基づく一連の処理を実行する。
そして、ロジック処理部112は、処理フローの実行処理の処理結果をクライアントアプリケーション210に返信する。これにより、本実施形態に係るサービス提供システム10は、機器20に対して、領収書登録サービスを提供することができる。
ここで、図18に示す処理フローの実行処理(ステップS1813の処理)の詳細について、図22を参照しながら説明する。図22は、本実施形態に係る領収書登録サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、クライアントアプリケーション210から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS2201)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow002」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローID「flow002」の処理フロー情報1100を、アプリ情報記憶部130に記憶されているアプリ情報1000から取得する(ステップS2202)。すなわち、アプリ管理部111は、図16に示す処理フロー情報1100をアプリ情報記憶部130から取得する。
そして、アプリ管理部111は、アプリ情報記憶部130から取得した処理フロー情報1100をロジック処理部112に返信する。
フロー実行部301は、図16に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2203)。すなわち、フロー実行部301は、図16に示す処理フロー情報1100の処理定義1311に含まれる「"component"」に定義されているコンポーネント名「"iterate"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"iterate"」のコンポーネント(すなわち、反復コンポーネント430)を生成する(ステップS2204)。なお、反復コンポーネント430の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した反復コンポーネント430をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、反復コンポーネント430が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を反復コンポーネント430に送信する(ステップS2205)。
なお、コンポーネントの実行要求には、1以上のデータが含まれる。ここで、データは、クライアントアプリケーション210から受信した処理フローの実行要求に含まれる撮影画像ファイルである。
また、コンポーネントの実行要求には、図16に示す処理フロー情報1100の処理定義1311に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。すなわち、コンポーネントの実行要求には、パラメータ情報「"flowid":"flow102"」が含まれる。
反復コンポーネント430は、コンポーネントの実行要求を受信すると、当該実行要求に含まれる1以上のデータ(すなわち、1以上の撮影画像ファイル)毎に、処理フローの実行要求をフロー実行部301に送信する(ステップS2206)。すなわち、反復コンポーネント430は、撮影画像ファイル数の回数、ステップS2207の領収書画像の抽出処理を繰り返し実行させる。なお、処理フローの実行要求には、データ(すなわち、撮影画像ファイル)と、フローID「flow102」とが含まれる。
フロー実行部301は、処理フローの実行要求を受信すると、撮影画像ファイルから領収書画像を抽出して、領収書画像ファイルを作成するための処理(領収書画像の抽出処理)を行う(ステップS2207)。そして、フロー実行部301は、領収書画像の抽出処理の処理結果(すなわち、撮像画像ファイルから抽出された領収書画像ファイルを示すデータ)を反復コンポーネント430に返信する。
その後、反復コンポーネント430は、ステップS2207の領収書画像の抽出処理を繰り返し実行させた処理結果を示すデータをフロー実行部301に返信する。
ここで、領収書画像の抽出処理(ステップS2207の処理)の詳細について、図23を参照しながら説明する。図23は、本実施形態に係る領収書画像の抽出処理の一例を示すシーケンス図である。
まず、フロー実行部301は、反復コンポーネント430から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS2301)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow102」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローID「flow102」の処理フロー情報1100を、アプリ情報記憶部130に記憶されているアプリ情報1000から取得する(ステップS2302)。すなわち、アプリ管理部111は、図17に示す処理フロー情報1100をアプリ情報記憶部130から取得する。
そして、アプリ管理部111は、アプリ情報記憶部130から取得した処理フロー情報1100をロジック処理部112に返信する。
ここで、領域抽出コンポーネント410が生成されていない場合は、フロー実行部301は、ステップS2303の処理を行う。すなわち、フロー実行部301は、図17に示す処理フロー情報1100の処理定義1411に含まれる「"component"」に定義されているコンポーネント名「"extract"」のコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2303)。
一方で、領域抽出コンポーネント410が生成されている場合、フロー実行部301は、上記のステップS2303の処理を行わない。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"extract"」のコンポーネント(すなわち、領域抽出コンポーネント410)を生成する(ステップS2304)。なお。領域抽出コンポーネント410の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した領域抽出コンポーネント410をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、領域抽出コンポーネント410が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を領域抽出コンポーネント410に送信する(ステップS2305)。
なお、コンポーネントの実行要求には、撮影画像ファイルを示すデータが含まれる。また、コンポーネントの要求には、図17に示す処理フロー情報1100の処理定義1411に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。
領域抽出コンポーネント410は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータに対して、パラメータ情報を用いて処理を実行する(ステップS2306)。すなわち、領域抽出コンポーネント410は、ドキュメントサービス部120の領域抽出部121により、撮影画像ファイルに含まれる領収書の領域を抽出して、領収書画像ファイルを作成する。なお、撮影画像ファイルに複数の領収書の領域が含まれる場合、領域抽出コンポーネント410は、これら複数の領収書の領域をそれぞれ抽出して、複数の領収書画像ファイルを作成する。
また、例えば、レシートを示す領域がスキャン画像ファイルに含まれる場合には、領域抽出コンポーネント410は、当該レシートを示す領域を抽出して、レシート画像ファイルを作成しても良い。この場合、領収書登録サービスにより、レシート画像ファイルが経費精算サービスに登録される。
更に、例えば、撮影画像ファイルに含まれる領収書の領域が傾いている場合等には、当該領域を回転等させた上で、抽出して、領収書画像ファイルを作成する。
そして、領域抽出コンポーネント410は、作成した領収書画像ファイルを示すデータをフロー実行部301に返信する。
図22に戻る。フロー実行部301は、反復コンポーネント430による処理結果(領収書画像の抽出処理を繰り返し実行させた処理結果)を示すデータを受信すると、図16に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2208)。すなわち、フロー実行部301は、図16に示す処理フロー情報1100の処理定義1312に含まれる「"component"」に定義されているコンポーネント名「"expense"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"expense"」のコンポーネント(すなわち、経費精算コンポーネント420)を生成する(ステップS2209)。なお、経費精算コンポーネント420の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した経費精算コンポーネント420をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、経費精算コンポーネント420が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を経費精算コンポーネント420に送信する(ステップS2210)。
なお、コンポーネントの実行要求には、図6に示す処理フロー情報1100の処理定義1312に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。
すなわち、コンポーネントの実行要求には、パラメータ情報「"auth":null」に対して、認証情報が設定されたパラメータ情報が含まれる。例えば、認証情報の入力画面G800のユーザ名入力欄G810及びパスワード入力欄G820にユーザ名「fugafuga@hoge.com」及びパスワード「xxxxxx」が入力された上で、OKボタンG830が押下されたものとする。この場合、パラメータ情報は、例えば、「"auth":"fugafuga@hoge.com/xxxxxx"」である。
また、コンポーネントの実行要求には、経費精算システム40に対して台帳の作成要求を行うためのパラメータ情報が含まれる。
経費精算コンポーネント420は、コンポーネントの実行要求を受信すると、パラメータ情報を用いて処理を実行する(ステップS2211)。すなわち、経費精算コンポーネント420は、台帳の作成要求を経費精算システム40に送信する。なお、経費精算コンポーネント420は、例えば、経費精算システム40が公開しているWebAPIを用いて、台帳の作成要求を行うことができる。また、台帳の作成要求には、認証情報が含まれる。
すると、経費精算システム40は、領収書画像ファイルを登録するための台帳を作成して、作成した台帳を識別する台帳IDを処理結果として経費精算コンポーネント420に返信する。そして、経費精算コンポーネント420は、台帳IDを示すデータをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を反復コンポーネント430に送信する(ステップS2212)。
なお、コンポーネントの実行要求には、領域抽出コンポーネント410により作成された領収書画像ファイルを示すデータが含まれる。したがって、コンポーネントの実行要求には、領域抽出コンポーネント410により複数の領収書画像ファイルが作成された場合には、これら複数の領収書画像ファイルをそれぞれ示す複数のデータが含まれる。
また、コンポーネントの実行要求には、図16に示す処理フロー情報1100の処理定義1313に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。すなわち、コンポーネントの実行要求には、パラメータ情報「"flowid":"flow101"」と、上記のステップS2211で返信された台帳IDを示すパラメータ情報とが含まれる。
反復コンポーネント430は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータ(すなわち、領収書画像ファイル)毎に、処理フローの実行要求をフロー実行部301に送信する(ステップS2213)。すなわち、反復コンポーネント430は、領収書画像ファイル数の回数、ステップS2214の領収書の登録処理を繰り返し実行させる。なお、処理フローの実行処理には、データ(すなわち、領収書画像ファイル)と、フローID「flow101」と、台帳IDとが含まれる。
フロー実行部301は、処理フローの実行要求を受信すると、経費精算サービスにおいて、台帳IDで示される台帳に領収書画像ファイルを登録するための処理(領収書の登録処理)を行う(ステップS2214)。そして、フロー実行部301は、領収書の登録処理の処理結果を反復コンポーネント430に返信する。
その後、反復コンポーネント430は、ステップS2214の領収書の登録処理を繰り返し実行させた処理結果を示すデータをフロー実行部301に返信する。なお、上記のステップS2214の領収書の登録処理は、図11のステップS1115の領収書の登録処理と同様であるため、その説明を省略する。
[第三の実施形態]
次に、第三の実施形態について説明する。第三の実施形態では、サービス提供システム10が、例えばOAuth等を用いた認証連携を経費精算システム40と行う場合について説明する。サービス提供システム10が認証連携を経費精算システム40と行うことにより、機器20のユーザは、領収書登録サービスを利用する都度、認証情報(経費精算サービスを利用するためのユーザ名及びパスワード等)を入力する必要がなくなる。
なお、第三の実施形態の説明では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同様の機能構成を有する箇所及び実質的に同様の処理を実行する箇所は、適宜、その説明を省略する。
<機能構成>
まず、本実施形態に係る情報処理システム1の機能構成について、図24を参照しながら説明する。図24は、本実施形態に係る情報処理システム1の一例の機能構成を示す図である。
図24に示す機器20は、例えばCPU31等により実行されるブラウザ220を有する。機器20のユーザは、ブラウザ220を介して、サービス提供システム10が提供する領収書登録サービスを利用することができる。
図24に示すサービス提供システム10は、更に、Webサービス処理部140と、認証サービス処理部150とを有する。これら各機能部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU16に実行させる処理により実現される。
また、図24に示すサービス提供システム10は、更に、画面情報記憶部160と、トークン情報記憶部170とを有する。これら各記憶部は、HDD18により実現可能である。なお、これら各記憶部のうちの少なくとも一の記憶部は、サービス提供システム10とネットワークN1を介して接続される記憶装置等により実現されていても良い。
Webサービス処理部140は、サービス提供システム10が提供するサービス(例えば、領収書登録サービス)を、機器20のユーザがブラウザ220を用いて利用するための処理を行う。すなわち、Webサービス処理部140は、ブラウザ220に対してWebアプリケーション(すなわち、アプリ情報1000)を提供するアプリケーションサーバとして機能する。ここで、Webサービス処理部140は、画面構成部141と、アプリ実行部142とを有する。
画面構成部141は、機器20のブラウザ220からの要求に応じて、画面情報記憶部160に記憶されている画面情報を返信する。なお、画面情報とは、アプリ情報1000により提供されるサービス(例えば、領収書登録サービス)を利用するための画面が定義された情報である。画面情報には、例えば、HTML、XHTML(Extensible HyperText Markup Language)、CSS(Cascading Style Sheets)、JavaScript(登録商標)等のブラウザ220が解釈可能な形式で画面が定義されている。これにより、機器20の操作パネル22には、ブラウザ220により、サービス提供システム10が提供するサービスを利用するための各種画面が表示される。
アプリ実行部142は、機器20のブラウザ220からの要求に応じて、入出力サービス処理部110のロジック処理部112に対して、処理フローの実行要求を送信する。
認証サービス処理部150は、経費精算システム40との間で認証連携を行うための処理を行う。すなわち、認証サービス処理部150は、経費精算システム40における認証に成功した場合、当該認証の成功に応じて返信される一時トークンを用いて、経費精算システム40からアクセストークンを取得する。そして、認証サービス処理部150は、当該アクセストークンと、ユーザIDとを関連付けたトークン情報をトークン情報記憶部170に保存する。
画面情報記憶部160は、サービス提供システム10が提供するサービスを利用するための各種画面の画面情報を記憶する。
トークン情報記憶部170は、サービス提供システム10を利用するためのユーザIDと、経費精算サービスを利用するためのアクセストークンとを関連付けたトークン情報を記憶する。ここで、トークン情報記憶部170に記憶されているトークン情報について、図25を参照しながら説明する。図25は、トークン情報の一例を示す図である。
図25に示すように、トークン情報記憶部170に記憶されているトークン情報には、ユーザIDと、アクセストークンとが関連付けられている。これにより、サービス提供システム10のユーザ(すなわち、ブラウザ220を介して、サービス提供システム10を利用するユーザ)は、自身のユーザIDと関連付けられているアクセストークンを用いて、領収書登録サービスを利用することができる。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。以降では、機器20のユーザが領収書登録サービスを利用する前に、経費精算システム40と認証連携するための設定を行う処理について、図26を参照しながら説明する。図26は、本実施形態に係る認証連携の設定処理の一例を示すシーケンス図である。
まず、ユーザは、機器20のブラウザ220を用いて、認証連携の設定画面の表示操作を行う(ステップS2601)。ユーザは、例えば、ブラウザ220により表示された所定の画面において、認証連携の設定画面へのリンクを押下することで、認証連携の設定画面の表示操作を行うことができる。なお、ユーザは、例えば、認証連携の設定画面のURLをブラウザ220のアドレスバー等に入力することで、認証連携の設定画面の表示操作を行っても良い。
機器20のブラウザ220は、認証連携の設定画面の表示操作を受け付けると、認証連携の設定画面の取得要求を、サービス提供システム10のWebサービス処理部140に送信する(ステップS2602)。
Webサービス処理部140の画面構成部141は、認証連携の設定画面の取得要求を受信すると、認証連携の設定画面を表示するための画面情報を画面情報記憶部160から取得する。そして、画面構成部141は、当該画面情報に基づいて、サービス一覧の取得要求を認証サービス処理部150に送信する(ステップS2603)。サービス一覧の取得要求は、サービス提供システム10と認証連携が可能な外部サービス(例えば、経費精算システム40が提供する経費精算サービス等)の一覧を取得するための要求である。
認証サービス処理部150は、サービス一覧の取得要求を受信すると、サービス提供システム10と認証連携が可能な外部サービスの一覧(リスト)を示すサービス一覧をWebサービス処理部140に返信する。そして、画面構成部141は、当該サービス一覧と、認証連携の設定画面を表示するための画面情報とをブラウザ220に返信する。
ブラウザ220は、認証連携の設定画面を表示するための画面情報と、サービス一覧とを受信すると、これらの情報に基づいて、例えば図27に示す認証連携の設定画面G1100を表示する(ステップS2604)。
ここで、図27に示す認証連携の設定画面G1100には、サービス一覧に含まれる各サービス毎に、認証連携の設定を行うための「認証連携」ボタンと、認証連携の設定を解除(削除)するための「連携解除」ボタンとが含まれる。ユーザは、「認証連携ボタン」G1101を押下することで、経費精算サービスとの認証連携を設定するための操作(経費精算サービスの認証連携設定操作)を行うことができる。
ユーザは、ブラウザ220を用いて、経費精算サービスの認証連携設定操作を行う(ステップS2605)。
ブラウザ220は、経費精算サービスの認証連携設定操作を受け付けると、当該経費精算サービスの認証情報等を入力するための認証連携画面の取得要求をWebサービス処理部140に送信する(ステップS2606)。
Webサービス処理部140の画面構成部141は、認証連携画面の取得要求を受信すると、経費精算サービスの認証連携画面を示すURLの取得要求(認証連携画面URLの取得要求)を認証サービス処理部150に送信する(ステップS2607)。認証サービス処理部150は、認証連携画面URLの取得要求を受信すると、認証連携画面URLをWebサービス処理部140に返信する。
なお、認証連携画面URLは、経費精算システム40が提供する認証連携画面を示すURLである。ただし、URLは、例えば、URI(Uniform Resource Identifier)やURN(Uniform Resource Name)等であっても良い。
Webサービス処理部140の画面構成部141は、認証連携画面URLを受信すると、当該URLが示す認証連携画面の取得要求を経費精算システム40に送信する(ステップS2608)。経費精算システム40は、認証連携画面の取得要求を受信すると、認証連携画面を表示するための画面情報をWebサービス処理部140に返信する。
そして、Webサービス処理部140の画面構成部141は、認証連携画面を表示するための画面情報を経費精算システム40から受信すると、当該画面情報にリダイレクト先URLを付与した上で、ブラウザ220に返信する。なお、ここで付与されるリダイレクト先URLは、例えば、一時コードを認証サービス処理部150に送信するためのURLである。
ブラウザ220は、リダイレクト先URLが付与された画面情報(認証連携画面を表示するための画面情報)を受信すると、当該画面情報に基づいて、例えば図27に示す認証連携画面G1200を表示する(ステップS2609)。
ここで、図27に示す認証連携画面G1200には、経費精算サービスの認証情報のうちのユーザ名を入力するためのユーザ名入力欄G1201と、当該認証情報のうちのパスワードを入力するためのパスワード入力欄G1202とが含まれる。
ユーザは、経費精算サービスのユーザ名及びパスワードをユーザ名入力欄G1201及びパスワード入力欄G1202にそれぞれ入力した上で、「認証連携を許可」ボタンG1203を押下することで、認証連携許可操作を行うことができる。認証連携許可操作とは、経費精算サービスとの認証連携を許可するための操作である。
なお、図27に示す認証連携画面G1200では、例えば、OAuth等の認証連携に用いられるスコープを設定することができても良い。
ユーザは、ブラウザ220を用いて、認証連携許可操作を行う(ステップS2610)。ブラウザ220は、認証連携許可操作を受け付けると、認証連携の許可要求を経費精算システム40に送信する(ステップS2611)。なお、認証連携の許可要求には、認証連携画面G1200で入力された認証情報(すなわち、経費精算サービスのユーザ名及びパスワード)と、リダイレクト先URLとが含まれる。
経費精算システム40は、認証連携の許可要求を受信すると、当該許可要求に含まれる認証情報に基づく認証を行う。そして、経費精算システム40は、当該認証に成功した場合、アクセストークンの発行に用いられる一時コードを発行(ステップS2612)した上で、発行した一時コードを含むリダイレクト指示をブラウザ220に送信する。
なお、経費精算システム40は、当該認証に失敗した場合、認証に失敗したことを示す情報をブラウザ220に返信する。以降では、経費精算システム40における認証に成功したものとして説明を続ける。
ブラウザ220は、経費精算システム40からリダイレクト指示を受信すると、認証サービス処理部150にリダイレクトさせる(ステップS2613)。すなわち、ブラウザ220は、経費精算システム40から受信した一時コードを、リダイレクト先URLに送信する。
認証サービス処理部150は、ブラウザ220から一時コードを受信すると、アクセストークンの取得要求を経費精算システム40に送信する(ステップS2614)。なお、アクセストークンの取得要求には、一時コードが含まれる。アクセストークンの取得要求は、経費精算システム40が公開している、アクセストークンを取得するためのWebAPIにリクエストを送信することで行うことができる。
経費精算システム40は、アクセストークンの取得要求を受信すると、当該取得要求に含まれる一時コードの正当性を検証した上で、正当性が検証された場合、アクセストークンを発行(ステップS2615)して、認証サービス処理部150に返信する。
認証サービス処理部150は、アクセスコードを受信すると、ブラウザ220を利用しているユーザ(すなわち、当該ブラウザ220を用いて、サービス提供システム10にログインしているユーザ)のユーザIDと、当該アクセストークンとを関連付けたトークン情報を作成する。そして、認証サービス処理部150は、作成したトークン情報をトークン情報記憶部170に保存する(ステップS2616)。
このように、本実施形態に係るサービス提供システム10は、経費精算システム40と認証連携するためのアクセストークンを、当該サービス提供システム10にログインしているユーザのユーザIDと関連付けて保存する。これにより、当該ユーザは、ブラウザ220を用いて、経費精算システム40と認証連携した領収書登録サービスを利用することができる。
次に、機器20のユーザが領収書登録サービスを利用して、領収書の画像ファイル(領収書画像ファイル)を経費精算サービスに登録する処理について、図28を参照しながら説明する。図28は、本実施形態に係る領収書登録サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、ユーザは、機器20のブラウザ220を用いて、領収書登録サービスの利用画面の表示操作を行う(ステップS2801)。ユーザは、例えば、ブラウザ220により表示された所定の画面において、領収書登録サービスの利用画面へのリンクを押下することで、領収書登録サービスの利用画面の表示操作を行うことができる。なお、ユーザは、例えば、領収書登録サービスの利用画面のURLをブラウザ220のアドレスバー等に入力することで、領収書登録サービスの利用画面の表示操作を行っても良い。
機器20のブラウザ220は、領収書登録サービスの利用画面の表示操作を受け付けると、領収書登録サービスの利用画面の取得要求を、サービス提供システム10のWebサービス処理部140に送信する(ステップS2802)。
Webサービス処理部140の画面構成部141は、領収書登録サービスの利用画面の取得要求を受信すると、領収書登録サービスの利用画面を表示するための画面情報を画面情報記憶部160から取得する。そして、画面構成部141は、当該画面情報をブラウザ220に返信する。
ブラウザ220は、領収書登録サービスの利用画面を表示するための画面情報を受信すると、当該画面情報に基づいて、例えば図29に示す領収書登録サービスの利用画面G1300を表示する(ステップS2803)。
ここで、図29に示す領収書登録サービスの利用画面G1300には、スキャン画像ファイルを作成するためのスキャン実行ボタンG1301が含まれる。ユーザは、機器20のスキャナ26に1以上の領収書をセットした上で、スキャン実行ボタンG1301を押下することで、スキャンを開始するための操作(スキャン開始操作)を行うことができる。
ユーザは、ブラウザ220を用いて、スキャン開始操作を行う(ステップS2804)。ブラウザ220は、スキャン開始操作を受け付けると、スキャナ26により各領収書を読み取って、これら各領収書が表示される領域を含むスキャン画像ファイルを生成する(ステップS2805)。なお、ブラウザ220は、例えば、スキャン開始操作に応じて、領収書登録サービスの利用画面に含まれるJavaScriptを実行することで、スキャナ26の実行を制御する。
ブラウザ220は、スキャン画像ファイルが生成されると、経費精算サービスとの認証連携に用いるアクセストークンの取得要求をWebサービス処理部140に送信する(ステップS2806)。
Webサービス処理部140の画面構成部141は、ブラウザ220からアクセストークンの取得要求を受信すると、当該アクセストークンの取得要求を認証サービス処理部150に送信する(ステップS2807)。
認証サービス処理部150は、アクセストークンの取得要求を受信すると、当該取得要求の送信元のブラウザ220(すなわち、上記のステップS2806でアクセストークンの取得要求を送信したブラウザ220)を利用しているユーザのユーザIDを取得する。そして、認証サービス処理部150は、当該ユーザIDに関連付けられているアクセストークンをトークン情報記憶部170から取得し、取得したアクセストークンをWebサービス処理部140に返信する。その後、Webサービス処理部140は、認証サービス処理部150から返信されたアクセストークンをブラウザ220に返信する。
なお、ブラウザ220を利用しているユーザのユーザIDは、例えば、アクセストークンの取得要求に含まれていても良いし、当該取得要求に含まれるセッションID等から当該ユーザIDを特定しても良い。
ブラウザ220は、アクセストークンを受信すると、処理フローの実行要求をWebサービス処理部140に送信する(ステップS2808)。なお、処理フローの実行要求には、領収書登録サービスを実現する処理フロー情報1100のフローIDと、スキャン画像ファイルと、アクセストークンとが含まれる。フローIDは、例えば、領収書登録サービスの利用画面G1300のスキャン実行ボタンG1301に関連付けられている。
Webサービス処理部140のアプリ実行部142は、処理フローの実行要求を受信すると、当該処理フローの実行要求をロジック処理部112に送信する(ステップS2809)。
ロジック処理部112は、処理フローの実行要求を受信する、処理フローの実行処理を行う(ステップS2810)。すなわち、ロジック処理部112は、当該実行要求に含まれるフローIDの処理フロー情報1100に基づく一連の処理を実行する。このとき、ロジック処理部112は、当該実行要求に含まれるアクセストークンを用いて、経費精算システム40に各種処理を要求する。
具体的には、例えば、経費精算コンポーネント420は、アクセストークンを用いて、台帳の作成要求を経費精算システム40に送信する。また、例えば、経費精算コンポーネント420は、アクセストークンを用いて、領収書の登録要求を経費精算システム40に送信する。
このように、機器20のユーザは、サービス提供システム10に予め保存したアクセストークンを用いて領収書登録サービスを利用することができる。したがって、機器20のユーザは、認証情報(経費精算システム40のユーザ名及びパスワード等)を入力することなく、領収書登録サービスを利用することができる。
[第四の実施形態]
次に、第四の実施形態について説明する。経費精算サービスの中には、代理人による領収書登録等のサービスを提供しているものがある。これは、例えば、会社の庶務担当者が一括して領収書登録を行いたい等のニーズが存在するためである。そこで、第四の実施形態では、代理人による領収書登録等のサービスを経費精算システム40が提供している場合について説明する。
なお、第四の実施形態の説明では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同様の機能構成を有する箇所及び実質的に同様の処理を実行する箇所は、適宜、その説明を省略する。
<機能構成>
まず、本実施形態に係る情報処理システム1の機能構成について、図30を参照しながら説明する。図30は、本実施形態に係る情報処理システム1の一例の機能構成を示す図である。
図30に示す経費精算システム40は、例えば、代理人による領収書登録等に関する処理を行う代理処理部510と、代理人と被代理人とを管理する代理管理DB520とを有する。代理管理DB520には、例えば、被代理人(代理人設定者)のユーザ名と、代理人のユーザ名及び権限とが関連付けて格納されている。なお、権限とは、代理人が実行可能な機能の範囲のことである。
代理処理部510は、例えば、被代理人(代理人設定者)のユーザ名と、代理人のユーザ名及び権限とを関連付けて代理管理DB520に格納するための処理を行う。また、代理処理部510は、例えば、代理人の権限のチェック処理等を行う。
また、本実施形態に係るサービス提供システム10のロジック処理部112は、クライアントアプリケーション210からの要求に応じて、代理可能な他のユーザの一覧(被代理人一覧)を取得する。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。以降では、PC端末30のユーザが、代理人を設定する場合(言い換えれば、当該ユーザが被代理人となる代理人を設定する場合)の処理について、図31を参照しながら説明する。図31は、本実施形態に係る代理人の設定処理の一例を示すシーケンス図である。
まず、ユーザは、PC端末30のブラウザ310を用いて、代理人設定画面の表示操作を行う(ステップS3101)。ユーザは、例えば、ブラウザ310により表示された所定の画面において、代理人設定画面へのリンクを押下することで、代理人設定画面の表示操作を行うことができる。なお、ユーザは、例えば、代理人設定画面のURLをブラウザ310のアドレスバー等に入力することで、代理人設定画面の表示操作を行っても良い。
PC端末30のブラウザ310は、代理人設定画面の表示操作を受け付けると、代理人設定画面の取得要求を経費精算システム40に送信する(ステップS3102)。経費精算システム40は、代理人設定画面の取得要求を受信すると、代理人設定画面を表示するための画面情報をブラウザ310に返信する。
ブラウザ310は、代理人設定画面を表示するための画面情報を受信すると、当該画面情報に基づいて、例えば図32に示す代理人設定画面G1400を表示する(ステップS3103)。
ここで、図32に示す代理人設定画面G1400には、代理人設定欄G1401が含まれる。ユーザは、代理人設定欄G1401から所望の代理人を選択すると共に、当該代理人に設定する権限を設定する。以降では、代理人設定画面G1400において、代理人を設定するユーザを「被代理人ユーザ」、代理人として設定されたユーザを「代理人ユーザ」とも表す。
図32に示す代理人設定画面G1400の代理人設定欄G1401の権限には、「台帳作成/申請」と、「領収書登録」と、「承認」とが含まれる。
被代理人ユーザがこれらの権限を設定(チェックボックスにチェック)することで、代理人ユーザは、設定された機能を利用することができるようになる。
例えば、被代理人ユーザを「鈴木誠也」であるとする。このとき、代理人ユーザ「田中太郎」の権限「台帳作成/申請」と「領収書登録」とを被代理人ユーザが設定した場合、代理人ユーザ「田中太郎」は、被代理人ユーザ「鈴木誠也」の代理人として、台帳作成/申請と領収書登録とを行うことができるようになる。
同様に、例えば、代理人ユーザ「佐藤裕太」の権限「承認」を被代理人ユーザが設定した場合、代理人ユーザ「佐藤裕太」は、被代理人ユーザ「鈴木誠也」の代理人として、領収書登録の承認を行うことができるようになる。
被代理人ユーザは、代理人設定欄G1401において代理人及び権限を設定した上で、「設定の保存」ボタンG1402を押下することで、代理人の設定操作を行うことができる。なお、被代理人ユーザは、追加ボタンG1403を押下することで、代理人設定欄G1401に代理人ユーザを追加することができる。一方、被代理人ユーザは、チェック欄G1404から所望の代理人ユーザを選択した上で、削除ボタンG1405を押下することで、選択した代理人ユーザを代理人設定欄G1404から削除することができる。
ユーザ(被代理人ユーザ)は、ブラウザ310を用いて、代理人の設定操作を行う(ステップS3104)。
ブラウザ310は、代理人の設定操作を受け付けると、代理人の設定要求を経費精算システム40に送信する(ステップS3105)。なお、代理人の設定要求には、例えば、代理人ユーザのユーザ名と、被代理人ユーザのユーザ名と、当該被代理人ユーザに設定された権限とが含まれる。
経費精算システム40の代理処理部510は、代理人の設定要求を受信すると、代理人の設定処理を行う(ステップS3106)。すなわち、代理処理部5110は、当該設定要求に含まれる代理人ユーザのユーザ名と、被代理人ユーザのユーザ名と、当該被代理人ユーザに設定された権限とを関連付けて代理管理DB520に格納する。これにより、被代理人ユーザに対する代理人ユーザと、当該代理人ユーザに設定された権限とが管理される。
次に、機器20のユーザが、代理人として、領収書登録サービスを利用して、領収書画像ファイルを経費精算サービスに登録する処理について、図33を参照しながら説明する。図33は、本実施形態に係る領収書登録サービスを代理で利用する場合の全体処理の一例を示すシーケンス図である。
まず、ユーザは、機器20を用いて、代理人として領収書を登録するか否かを選択するための登録方法選択画面の表示操作を行う(ステップS3301)。すると、機器20のクライアントアプリケーション210は、登録方法選択画面の表示操作を受け付ける。ユーザは、例えば、クライアントアプリケーション210により表示された所定の画面において、所定のアイコン等を選択することで、登録方法選択画面の表示操作を行うことができる。なお、登録方法選択画面の表示操作は、例えば、クライアントアプリケーション210の起動操作等であっても良い。
クライアントアプリケーション210は、ユーザによる当該表示操作を受け付けると、例えば図34に示す登録方法選択画面G1510を表示する(ステップS3302)。
ここで、図34に示す登録方法選択画面G1510には、「本人として領収書登録」ボタンG1511と、「代理人として領収書登録」ボタンG1512とが含まれる。
ユーザは、「代理人として領収書登録」ボタンG1512を選択することで、他のユーザの代理人として、経費精算サービスに領収書の登録を行うことができる。一方、ユーザは、「本人として領収書登録」ボタンG1511が選択することで、第一の実施形態と同様に、本人として(すなわち、他のユーザの代理人としてでなく)、経費精算サービスに領収書の登録を行うことができる。以降では、ユーザは、「代理人として領収書登録」ボタンG1512を選択するものとして説明する。
ユーザは、機器20を用いて、「代理人として領収書登録」ボタンG1512を選択する選択操作を行う(ステップS3303)。すると、クライアントアプリケーション210は、当該選択操作を受け付ける。
クライアントアプリケーション210は、当該選択操作を受け付けると、当該ユーザが代理可能な他のユーザの一覧(被代理人一覧)の取得要求をロジック処理部112に送信する(ステップS3304)。なお、被代理人一覧の取得要求には、例えば、当該ユーザのユーザ名(すなわち、経費精算システム40のユーザ名)が含まれる。クライアントアプリケーション210は、アプリ管理部111を介して、被代理人一覧の取得要求をロジック処理部112に送信しても良い。
ロジック処理部112は、被代理人一覧の取得要求を受信すると、当該取得要求を経費精算システム40に送信する(ステップS3305)。
経費精算システム40の代理処理部510は、被代理人一覧の取得要求を受信すると、当該取得要求に含まれるユーザ名が代理人ユーザである被代理人ユーザのユーザ名を代理管理DB520から取得する(ステップS3306)。言い換えれば、代理処理部510は、当該取得要求に含まれるユーザ名のユーザが代理可能な他のユーザのユーザ名を代理管理DB520から取得する。
そして、経費精算システム40の代理処理部510は、取得したユーザ名(被代理人ユーザのユーザ名)の一覧(被代理人一覧)をロジック処理部112に返信する。その後、ロジック処理部112は、受信した被代理人一覧をクライアントアプリケーション210に返信する。
クライアントアプリケーション210は、被代理人一覧を受信すると、例えば図34に示す被代理人の選択画面G1520を表示する(ステップS3307)。
ここで、図34に示す被代理人の選択画面G1520には、被代理人選択欄G1521が含まれる。被代理人選択欄G1521は、ロジック処理部112から返信された被代理人一覧に含まれる他のユーザのユーザ名等(すなわち、当該ユーザが代理可能な他のユーザのユーザ名等)が選択可能に表示される。ユーザ(代理人ユーザ)は、自身が代理する他のユーザを被代理人選択欄G1521から選択した上で、「代理登録の開始」ボタンG1522を押下することで、代理登録の開始操作を行うことができる。
ユーザ(代理人ユーザ)は、機器20を用いて、代理登録の開始操作を行う(ステップS3308)。すると、クライアントアプリケーション210は、当該開始操作を受け付ける。
クライアントアプリケーション210は、代理登録の開始操作を受け付けると、第一の実施形態と同様に、例えば図10に示す領収書登録サービスの利用開始画面G200を表示する(ステップS3309)。以降のステップS3310〜ステップS3311は、図9のステップS903〜ステップS904と同様であるため、その説明を省略する。
クライアントアプリケーション210は、ステップS3311でスキャン画像ファイルが生成されると、処理フローの実行要求をロジック処理部112に送信する(ステップS3312)。なお、処理フローの実行要求には、領収書登録サービスを実現する処理フロー情報1100のフローIDと、スキャン画像ファイルと、認証情報と、被代理人ユーザのユーザ名とが含まれる。被代理人ユーザのユーザ名は、被代理人の選択画面G1520の被代理人選択欄G1521から選択された他のユーザのユーザ名である。
ここで、上記の処理フローの実行要求には、認証情報(すなわち、経費精算システム40のユーザ名及びパスワード)が含まれるものとしたが、これに限られず、例えば、第三の実施形態と同様に、アクセストークンが含まれていても良い。なお、当該認証情報や当該アクセストークンは、代理人ユーザの認証情報や代理人ユーザのアクセストークンが用いられる。
次に、ロジック処理部112は、処理フローの実行要求を受信すると、処理フローの実行処理を行う(ステップS3313)。すなわち、ロジック処理部112は、当該実行要求に含まれるフローIDの処理フロー情報1100に基づく一連の処理を実行する。このとき、ロジック処理部112は、被代理人ユーザのユーザ名を用いて、台帳の作成や領収書の登録を行う。
具体的には、例えば、経費精算コンポーネント420は、被代理人ユーザのユーザ名が含まれる台帳の作成要求を経費精算システム40に送信する。また、例えば、経費精算コンポーネント420は、被代理人ユーザのユーザ名が含まれる領収書の登録要求を経費精算システム40に送信する。これにより、経費精算システム40では、被代理人ユーザのユーザ名で台帳が作成されると共に、被代理人ユーザのユーザ名で領収書が当該台帳に登録される。
なお、経費精算システム40は、例えば台帳作成や領収書登録の際に、代理処理部510により、代理人ユーザの権限のチェックを行う。すなわち、代理処理部510は、要求された機能(台帳作成や領収書登録等)の権限が代理人ユーザに設定されているか否かをチェックする。そして、代理処理部510は、該当の権限が代理人ユーザに設定されている場合、該当の機能を実行する一方で、該当の権限が代理人ユーザに設定されていない場合、例えばエラー等をロジック処理部112に返信する。
このように、機器20のユーザは、他のユーザの代理人として、領収書登録サービスを利用することができる。したがって、例えば、会社の庶務担当者が一括して領収書登録を行う場合等においても、予め当該庶務担当者を代理人に設定しておくことで、当該庶務担当者は、被代理人の領収書登録を代理することができるようになる。
ここで、図33では、機器20が画像形成装置である場合について説明したが、第二の実施形態と同様に、機器20は、例えばスマートフォンやタブレット端末、デジタルカメラ等であっても良い。
この場合、図33のステップS3302において、機器20には、例えば図35に示す登録方法選択画面G1610が表示される。図35に示す登録方法選択画面G1610には、図34に示す登録方法選択画面G1510と同様に、「本人として領収書登録」ボタンG1611と、「代理人として領収書登録」ボタンG1612とが含まれる。
また、図33のステップS3307において、機器20には、例えば図35に示す被代理人の選択画面G1620が表示される。図35に示す被代理人の選択画面G1620には、図34に示す被代理人の選択画面G1510と同様に、被代理人選択欄G1621と、「代理登録の開始」ボタンG1622とが含まれる。
このように、本実施形態は、第二の実施形態と同様に、機器20がスマートフォンやタブレット端末、デジタルカメラ等であっても同様に適用できる。
[第五の実施形態]
次に、第五の実施形態について説明する。経費精算サービスの中には、領収書画像ファイルに加えて、当該領収書の金額や日付等の情報(メタ情報)を登録できるものがある。そこで、第五の実施形態では、所定のテンプレートを用いて領収書画像ファイルからメタ情報を抽出した上で、領収書画像ファイルと、抽出したメタ情報とを経費精算システム40に登録する場合について説明する。
なお、第五の実施形態の説明では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同様の機能構成を有する箇所及び実質的に同様の処理を実行する箇所は、適宜、その説明を省略する。
<機能構成>
まず、本実施形態に係る情報処理システム1に含まれる機器20のロジック処理部112の機能構成について、図36を参照しながら説明する。図36は、本実施形態に係るロジック処理部112の一例の機能構成を示す図である。
図36に示すロジック処理部112は、テンプレート管理部441を有する。また、図36に示すロジック処理部112のコンポーネント群303には、帳票処理コンポーネント440が含まれる。
テンプレート管理部441は、テンプレート記憶部180に記憶されているテンプレートを管理する。ここで、テンプレートとは、領収書画像ファイルからメタ情報(例えば、領収書の金額や日付等)を抽出するための情報である。なお、テンプレート記憶部180は、サービス提供システム10が有する記憶部であり、HDD18により実現可能である。
帳票処理コンポーネント440は、テンプレートを用いて、領収書画像ファイルからメタ情報を取得するためのコンポーネントである。メタ情報とは、上述したように、例えば、領収書画像ファイルが示す領収書画像に含まれる金額や日付等の情報である。なお、メタ情報は、例えば数字情報や文字(英字や漢字を含む)情報である。ただし、メタ情報は、数字や文字等を組み合わせた情報であっても良い。
ここで、テンプレート記憶部180に記憶されている各テンプレートは、例えば図37を示すテンプレート登録画面G1700を用いて、サービス提供システム10に登録することができる。図37に示すテンプレート登録画面G1700には、領収書画像G1701が表示されている。また、領収書画像G1701には、メタ情報を抽出する位置を示す抽出位置G1702が指定されている。
ユーザは、例えば図37を示すテンプレート登録画面G1700を機器20やPC端末30に表示させた上で、領収書画像G1701に抽出位置G1702を指定することで、テンプレートを作成及び登録することができる。
ここで、本実施形態に係る領収書登録サービスを実現する一連の処理(処理フロー)が定義された処理フロー情報1100について、図38を参照しながら説明する。図38は、本実施形態に係る領収書登録サービスを実現する一連の処理が定義された処理フロー情報1100の一例を示す図である。
図38に示す処理フロー情報1100には、当該処理フロー情報1100を識別するフローID1401と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細1402とが含まれる。
フロー詳細1402には、処理フローに含まれる各処理の処理内容を定義した処理定義1411〜1414が含まれる。処理定義1411〜1414のうち、処理定義1411、処理定義1413及び処理定義1414は、図7に示す処理フロー情報1100の処理定義1111、処理定義1112及び処理定義1113とそれぞれ同様である。
処理定義1412の「"component"」には、帳票処理コンポーネント440のコンポーネント名「"templete"」が定義されている。また、処理定義1412の「"parameters"」には、帳票処理コンポーネント440に対するパラメータ情報が定義されている。
処理定義1412の「"parameters"」には、帳票処理コンポーネント440が用いるテンプレートを識別する識別情報(テンプレートID)を設定するためのパラメータ情報「"templete_id":null」が定義されている。
このように、処理フロー情報1100には、一連の処理に含まれる各処理を実行するコンポーネントと、当該コンポーネントに対するパラメータ情報とが定義される。
これにより、経費精算コンポーネント420は、帳票処理コンポーネント440により抽出されたメタ情報と、領域抽出コンポーネント410により抽出された領収書画像ファイルとを、作成した台帳上に登録することができる。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。以降では、機器20のユーザが領収書登録サービスを利用して、領収書画像ファイルと、当該領収書画像ファイルから抽出したメタ情報とを経費精算サービスに登録する処理について、図39を参照しながら説明する。図39は、本実施形態に係る領収書登録サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、ユーザは、機器20を用いて、テンプレートを選択するためのテンプレート選択画面の表示操作を行う(ステップS3901)。すると、機器20のクライアントアプリケーション210は、テンプレート選択画面の表示操作を受け付ける。ユーザは、例えば、クライアントアプリケーション210により表示された所定の画面において、所定のアイコン等を選択することで、テンプレート選択画面の表示操作を行うことができる。なお、テンプレート選択画面の表示操作は、例えば、クライアントアプリケーション210の起動操作等であっても良い。
クライアントアプリケーション210は、ユーザによる当該表示操作を受け付けると、例えば図40に示すテンプレート選択画面G1800を表示する(ステップS3902)。
ここで、図40に示すテンプレート選択画面G1800には、テンプレート選択欄G1801が含まれる。ユーザは、テンプレート選択欄G1801から所望のテンプレートを選択することで、テンプレートの選択操作を行うことができる。
なお、ユーザは、「テンプレートを使わない」ボタンG1802を押下することで、テンプレートを用いずに領収書登録サービスを利用することができる。以降では、ユーザは、テンプレートの選択操作を行うものとして説明する。
ユーザは、機器20を用いて、テンプレートの選択操作を行う(ステップS3903)。すると、クライアントアプリケーション210は、当該選択操作を受け付ける。以降のステップS3904〜ステップS3906は、図9のステップS902〜ステップS904と同様であるため、その説明を省略する。
クライアントアプリケーション210は、ステップS3904でスキャン画像ファイルが生成されると、処理フローの実行要求をロジック処理部112に送信する(ステップS3907)。なお、処理フローの実行要求には、図38に示す処理フロー情報1100のフローID「flow003」と、スキャン画像ファイルと、認証情報とが含まれる。また、処理フローの実行要求には、図40に示すテンプレート選択画面G1800のテンプレート選択欄G1801から選択されたテンプレートのテンプレートIDが含まれる。
ここで、上記の処理フローの実行要求には、認証情報(すなわち、経費精算システム40のユーザ名及びパスワード)が含まれるものとしたが、これに限られず、例えば、第三の実施形態と同様に、アクセストークンが含まれていても良い。
次に、ロジック処理部112は、処理フローの実行要求を受信すると、処理フローの実行処理を行う(ステップS3908)。すなわち、ロジック処理部112は、当該実行要求に含まれるフローIDの処理フロー情報1100に基づく一連の処理を実行する。
そして、ロジック処理部112は、処理フローの実行処理の処理結果をクライアントアプリケーション210に返信する。これにより、本実施形態に係るサービス提供システム10は、機器20に対して、図38に示す処理フロー情報1100に基づく一連の処理により実現される領収書登録サービスを提供することができる。
ここで、図39に示す処理フローの実行処理(ステップS3908の処理)の詳細について、図41及び図42を参照しながら説明する。図41及び図42は、本実施形態に係る領収書登録サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、クライアントアプリケーション210から処理フローの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS4101)。なお、処理フロー情報の取得要求には、処理フローの実行要求から取得したフローID「flow003」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローID「flow003」の処理フロー情報1100を、アプリ情報記憶部130に記憶されているアプリ情報1000から取得する(ステップS4102)。すなわち、アプリ管理部111は、図38に示す処理フロー情報1100をアプリ情報記憶部130から取得する。
そして、アプリ管理部111は、アプリ情報記憶部130から取得した処理フロー情報1100をロジック処理部112に返信する。
フロー実行部301は、図38に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS4103)。すなわち、フロー実行部301は、図38に示す処理フロー情報1100の処理定義1411に含まれる「"component"」に定義されているコンポーネント名「"etract"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
以降のステップS4104〜ステップS4106は、図11のステップS1104〜ステップS1106と同様であるため、その説明を省略する。
ステップS4106に続いて、フロー実行部301は、図38に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS4107)。すなわち、フロー実行部301は、図38に示す処理フロー情報1100の処理定義1412に含まれる「"component"」に定義されているコンポーネント名「templete"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"templete"」のコンポーネント(すなわち、帳票処理コンポーネント440)を生成する(ステップS4108)。なお、帳票処理コンポーネント440の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した帳票処理コンポーネント440をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、帳票処理コンポーネント440が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を帳票処理コンポーネント440に送信する(ステップS4109)。
なお、コンポーネントの実行要求には、領域抽出コンポーネント410により作成された領収書画像ファイルを示すデータが含まれる。したがって、コンポーネントの実行要求には、領域抽出コンポーネント410により複数の領収書画像ファイルが作成された場合には、これら複数の領収書画像ファイルをそれぞれ示す複数のデータが含まれる。
また、コンポーネントの実行要求には、図38に示す処理フロー情報1100の処理定義1412に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。すなわち、コンポーネントの実行要求には、パラメータ情報「"templete_id":null」に対して、図40に示すテンプレート選択画面G1800において選択されたテンプレートのテンプレートIDが設定されたパラメータ情報が含まれる。例えば、テンプレート選択画面G1800において、パラメータID「temp1」の「領収書1テンプレート」が選択された場合、パラメータ情報は、「"templete_id":"temp1"」である。
帳票処理コンポーネント440は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるテンプレートIDのテンプレートを取得するためのテンプレート取得要求をテンプレート管理部441に送信する(ステップS4110)。テンプレート管理部441は、テンプレート取得要求を受信すると、当該取得要求に含まれるテンプレートIDのテンプレートをテンプレート記憶部180から取得して、帳票処理コンポーネント440に返信する。
帳票処理コンポーネント440は、テンプレート管理部441からテンプレートを受信すると、当該テンプレートに基づいて、データが示す領収書画像ファイルからメタ情報を抽出する(ステップS4111)。すなわち、帳票処理コンポーネント440は、領収書画像ファイルが示す画像領域において、当該テンプレートに指定された抽出位置にある画像領域からメタ情報(例えば、金額や日付等)を抽出する。
そして、帳票処理コンポーネント440は、抽出したメタ情報を示すデータをフロー実行部301に返信する。
次に、フロー実行部301は、図38に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS4112)。すなわち、フロー実行部301は、図38に示す処理フロー情報1100の処理定義1413に含まれる「"component"」に定義されているコンポーネント名「"expense"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"expense"」のコンポーネント(すなわち、経費精算コンポーネント420)を生成する(ステップS4113)。なお、経費精算コンポーネント420の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した経費精算コンポーネント420をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、経費精算コンポーネント420が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
以降のステップS4114〜ステップS4115は、図11のステップS1109〜ステップS1110と同様であるため、その説明を省略する。
ステップS1110に続いて、フロー実行部301は、図38に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS4116)。すなわち、フロー実行部301は、図38に示す処理フロー情報1100の処理定義1414に含まれる「"component"」に定義されているコンポーネント名「"iterate"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"iterate"」のコンポーネント(すなわち、反復コンポーネント430)を生成する(ステップS4117)。なお、反復コンポーネント430の生成は、コンポーネント共通I/F400に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した反復コンポーネント430をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、反復コンポーネント430が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネントの実行要求を反復コンポーネント430に送信する(ステップS4118)。
なお、コンポーネントの実行要求には、領域抽出コンポーネント410により作成された領収書画像ファイルと、帳票処理コンポーネント440により当該領収書ファイルから抽出されたメタ情報とを示すデータとが含まれる。したがって、コンポーネントの実行要求には、領域抽出コンポーネント410により複数の領収書画像ファイルが作成された場合には、これら複数の領収書画像ファイル及び複数のメタ情報をそれぞれ示す複数のデータが含まれる。
また、コンポーネントの実行要求には、図38に示す処理フロー情報1100の処理定義1113に含まれる「"parameters"」に定義されている各パラメータ情報が含まれる。すなわち、コンポーネントの実行要求には、パラメータ情報「"flowid":"flow101"」と、ステップS4115で返信された台帳IDを示すパラメータ情報とが含まれる。
反復コンポーネント430は、コンポーネントの実行要求を受信すると、当該実行要求に含まれるデータ(すなわち、領収書画像ファイル及び当該領収書画像ファイルから抽出されたメタ情報)毎に、処理フローの実行要求をフロー実行部301に送信する(ステップS4119)。すなわち、反復コンポーネント430は、領収書画像ファイル数の回数、ステップS4120の領収書の登録処理を繰り返し実行させる。なお、処理フローの実行要求には、データ(すなわち、領収書画像ファイル及びメタ情報)と、フローID「flow101」と、台帳IDとが含まれる。
フロー実行部301は、処理フローの実行要求を受信すると、経費精算サービスにおいて、台帳IDで示される台帳に領収書画像ファイル及びメタ情報を登録するための処理(領収書の登録処理)を行う(ステップS4120)。そして、フロー実行部301は、領収書の登録処理の処理結果を反復コンポーネント430に返信する。
その後、反復コンポーネント430は、ステップS4120の領収書の登録処理を繰り返し実行させた処理結果を示すデータをフロー実行部301に返信する。
ここで、領収書の登録処理(ステップS4120の処理)の詳細について、図43を参照しながら説明する。図43は、本実施形態に係る領収書の登録処理の一例を示すシーケンス図である。図43のステップS4301〜ステップS4302は、図12のステップS1201〜ステップS1202と同様であるため、その説明を省略する。
ステップS4302に続いて、フロー実行部301は、図8に示す処理フロー情報1100の処理定義1211に含まれる「"component"」に定義されているコンポーネント名「"expense"」のコンポーネントにコンポーネントの実行要求を送信する(ステップS4303)。すなわち、フロー実行部301は、コンポーネントの実行要求を経費精算コンポーネント420に送信する。
なお、コンポーネントの実行要求には、データ(すなわち、領収書画像ファイル及びメタ情報)が含まれる。また、パラメータ情報「"auth":null」に対して、認証情報が設定されたパラメータ情報と、経費精算システム40に対して領収書の登録要求を行うためのパラメータ情報と、台帳IDを示すパラメータ情報とが含まれる。
経費精算コンポーネント420は、コンポーネントの実行要求を受信すると、データ及びパラメータ情報を用いて処理を実行する(ステップS4304)。すなわち、経費精算コンポーネント420は、領収書の登録要求を経費精算システム40に送信する。なお、経費精算コンポーネント420は、例えば、経費精算システム40が公開しているWebAPIを用いて、領収書の登録要求を行うことができる。また、領収書の登録要求には、領収書画像ファイルと、メタ情報と、台帳IDと、認証情報とが含まれる。
すると、経費精算システム40は、台帳IDにより示される台帳に領収書画像ファイル及びメタ情報を登録して、登録結果を経費精算コンポーネント420に返信する。そして、経費精算コンポーネント420は、登録結果を示すデータをフロー実行部301に返信する。
このように、経費精算コンポーネント420は、経費精算システム40に対して領収書の登録を要求することで、経費精算サービス上の台帳に領収書画像ファイルとメタ情報とを登録することができる。
なお、本実施形態に係るサービス提供システム10は、例えば図40に示すテンプレート選択画面G1800においてユーザによりテンプレートが選択された場合について説明したが、これに限られない。例えば、帳票処理コンポーネント440は、ステップS4111で用いるテンプレートを特定した上で、特定したテンプレートの取得要求をステップS4110でテンプレート管理部411に送信しても良い。ここで、テンプレートの特定は、例えば、領収書画像ファイルと、テンプレート記憶部180に記憶されている各テンプレートとの類似度を算出した上で、類似度が最も高いテンプレート(又は類似度が所定の値以上のテンプレート)を特定すれば良い。
<まとめ>
以上のように、第一の実施形態に係るサービス提供システム10は、経費精算システム40と連携した領収書登録サービスを機器20に提供することができる。したがって、機器20のユーザは、当該機器20で領収書やレシート等の経費を証明する証明書をスキャンすることで、これら証明書を示す画像ファイルを経費精算システム40に登録することができる。
また、第二の実施形態に係るサービス提供システム10は、機器20で領収書やレシート等の経費を証明する証明書を撮影することで、これらの証明書を示す画像ファイルを経費精算システム40に登録することができる。
これにより、ユーザは、経費精算システム40が提供する経費精算サービスを利用して経費精算を行う場合に、領収書やレシート等の経費を証明する証明書を示す画像ファイルを経費精算システム40に容易に登録することができるようになる。
また、第三の実施形態に係るサービス提供システム10は、例えばOAuth等を用いた認証連携を経費精算システム40と行う。これにより、第三の実施形態に係るサービス提供システム10では、機器20のユーザは、領収書登録サービスを利用する都度、認証情報(経費精算サービスを利用するためのユーザ名及びパスワード等)を入力する必要がなくなる。
また、第四の実施形態に係るサービス提供システム10は、機器20のユーザは、他のユーザを代理して領収書登録サービスを利用することができる。したがって、第四の実施形態に係るサービス提供システム10によれば、例えば、会社の庶務担当者が一括して領収書登録を行いたい等のニーズに応えることができるようになる。
更に、第五の実施形態に係るサービス提供システム10は、テンプレートを用いて、領収書画像ファイルからメタ情報(例えば、金額や日付等)を抽出した上で、抽出したメタ情報も経費精算システム40に登録することができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。