図1は、本実施形態に係る情報処理システム1の構成を示す図である。
図1に示すように、情報処理システム1は、複数の店舗システム11を備える。店舗システム11は、スーパーマーケットや、コンビニエンスストア、デパート、飲食店等の店舗に用いられるシステムである。店舗は、商品の提供が行われ、商品の提供に応じて、顧客による会計が行われる施設であればよい。本実施形態において、「商品」は、物体として顧客に引き渡される商品だけでなく、顧客に提供されるサービスや、顧客に提供される飲食物等、対価と引き換えに顧客に提供される対象を意味する。
店舗システム11は、顧客が購入した商品に応じた会計を行う機能、会計に応じてレシートを発行する機能等を備える。
店舗システム11が適用される店舗には、顧客が会計を行なうレジカウンターLが設けられる。レジカウンターLには、ロール紙(印刷媒体)に印刷する機能を有する印刷装置12が設けられる。また、レジカウンターLには、印刷装置12と無線通信可能に接続され、印刷装置12を制御するPOS端末13(デバイス)が設けられる。
レジカウンターLにおける会計に際し、レジ担当者は、印刷装置12に接続されたバーコードリーダーBRで商品や商品の包装に付されたバーコードを読み取り、また、POS端末13に対して会計に対応する入力を行う。印刷装置12は、バーコードリーダーBRによる読み取りに基づくデータを、POS端末13に送信する。POS端末13は、印刷装置12から受信したバーコードリーダーBRの読み取りに基づくデータや、レジ担当者による会計に対応する入力に基づいて、印刷装置12を制御し、印刷装置12にレシートを発行させる。印刷装置12により発行されたレシートは、レジ担当者により顧客に引き渡される。
印刷装置12、及び、POS端末13の構成、機能、及び、機能に基づく処理については後述する。
店舗システム11は、ローカルエリアネットワークLNを備える。
ローカルエリアネットワークLNには、印刷装置12が接続される。また、ローカルエリアネットワークLNには、通信装置14が接続される。通信装置14は、ローカルエリアネットワークLNと、インターネット、電話網、その他の通信網を含むグローバルネットワークGNとを接続するインターフェース装置である。通信装置14は、モデム(又は、ONU(Optical Network Unit))に係る機能、ルーター機能、NAT(Network Address Translation)機能、及び、DHCP(Dynamic Host Configuration Protocol)サーバー機能等を有する。通信装置14は、ローカルエリアネットワークLNに接続された機器と、グローバルネットワークGNに接続された機器との間で行われる通信に際し、機器間で送受信されるデータを転送する。なお、図1では、通信装置14を1つのブロックで表現するが、通信装置14は、機能に応じた複数の装置を有する構成でもよい。
印刷装置12は、通信装置14を介して、グローバルネットワークGNにアクセス可能である。
グローバルネットワークGNには、制御サーバー15(情報処理装置)が接続される。制御サーバー15は、印刷装置12と通信可能なサーバー装置である。すなわち、制御サーバー15は、クライアントからの要求等をトリガーとして、所定の演算処理を実行する。制御サーバー15は、必要に応じて、演算処理の結果に基づくデータを、クライアントに送信する。なお、図1では、制御サーバー15を、1つのブロックによって表現するが、これは制御サーバー15が単一のサーバー装置により構成されることを意味するものではない。例えば、制御サーバー15は、複数のサーバー装置を含んで構成されたものでもよい。すなわち、制御サーバー15は、後述する各種処理を実行可能な構成であれば、その形態を問わない。
図2は、情報処理システム1が備える各装置の機能的構成を示すブロック図である。
POS端末13は、例えば、前面の広い領域にタッチパネル22が設けられたタブレット型の(板状の)端末である。なお、POS端末13は、デスクトップ型等の据え置き型の端末でもよい。POS端末13は、レジカウンターLにおける会計に際し、会計に関する各種処理を実行して印刷装置12を制御するホストコンピューターとして機能する。
図2に示すように、POS端末13は、POS端末制御部20と、POS端末通信部21と、タッチパネル22と、POS端末記憶部23と、を備える。
POS端末制御部20は、CPUや、ROM、RAM、ASIC、信号処理回路等を備え、POS端末13の各部を制御する。POS端末制御部20は、例えばCPUが、ROMに記憶されたプログラムをRAMに読み出して処理を実行し、また例えばASICに実装された機能により処理を実行し、また例えば信号処理回路で信号処理を行って処理を実行する等、ハードウェア及びソフトウェアにより処理を実行する。POS端末13には、所定のアプリケーションが事前にインストールされる。POS端末制御部20は、当該所定のアプリケーション、当該所定のアプリケーションに付随するプログラム(OSや、API、プラグイン等)、その他のプログラムを読み出して実行することにより、アプリケーション実行部201として機能する。
POS端末通信部21は、POS端末制御部20の制御で、所定の通信の規格に従って、印刷装置12と通信する。本実施形態のPOS端末通信部21は、所定の無線通信の規格に従って、印刷装置12と通信する。POS端末13と印刷装置12との間で行われる通信の無線通信規格は、アドホックモードに対応する無線LANに係る規格や、インフラストラクチャーモードに対応する無線LANに係る規格、Bluetooth(登録商標)等の近距離無線通信に係る規格等、どのような規格でもよい。なお、POS端末通信部21は、所定の有線通信の規格に従って、印刷装置12と通信してもよい。
タッチパネル22は、液晶表示パネル等の表示パネルと、表示パネルに重ねて、或いは一体に設けられたタッチセンサーとを備える。表示パネルは、POS端末制御部20の制御で、各種画像を表示する。タッチセンサーは、タッチ操作を検出し、POS端末制御部20に出力する。POS端末制御部20は、タッチセンサーからの入力に基づいて、タッチ操作に対応する処理を実行する。
POS端末記憶部23は、不揮発性メモリーを備え、各種データを記憶する。また、POS端末記憶部23は、POS端末を識別するPOS識別情報J16(デバイス識別情報)を記憶する。
印刷装置12は、ロール紙を収容し、収容したロール紙にライン型のサーマルヘッドでドットを形成して画像を印刷するサーマルプリンターである。なお、本実施形態に係る印刷装置12の印刷方式はサーマル方式であるが、印刷装置12の印刷方式は、サーマル方式に限らず、インクジェット方式等の他の印刷方式でもよい。また、印刷装置12の印刷ヘッドは、ライン型に限らず、シリアル型でもよい。
図2に示すように、印刷装置12は、印刷装置制御部30と、印刷部31と、印刷装置記憶部32と、印刷装置通信部33と、印刷装置ネットワーク通信部34と、デバイス通信部35と、を備える。
印刷装置制御部30は、CPUや、ROM、RAM、ASIC、信号処理回路等を備え、印刷装置12の各部を制御する。印刷装置制御部30は、例えばCPUが、ROMに記憶されたプログラムをRAMに読み出して処理を実行し、また例えばASICに実装された機能により処理を実行し、また例えば信号処理回路で信号処理を行って処理を実行する等、ハードウェア及びソフトウェアにより処理を実行する。
印刷部31は、印刷装置12の筐体に収容されたロール紙を搬送する搬送機構や、サーマルヘッドによってロール紙にドットを形成して画像を印刷する印刷機構、ロール紙を所定の位置で切断する切断機構等のロール紙への印刷に関する各種機構を備える。印刷部31は、印刷装置制御部30の制御で、搬送機構によりロール紙を搬送し、印刷機構によりロール紙にレシートに係る画像を印刷し、切断機構により所定の位置でロール紙を切断して、レシートを発行する。
印刷装置記憶部32は、不揮発性メモリーを備え、各種データを記憶する。なお、印刷装置記憶部32は、印刷装置通信部33により通信するPOS端末13のPOS識別情報J16を記憶していてもよい。この場合、印刷装置制御部30は、所定の方法により、印刷装置通信部33により通信するPOS端末13からPOS識別情報J16を取得し、印刷装置記憶部32に記憶させる。
印刷装置通信部33は、印刷装置制御部30の制御で、POS端末13と所定の通信規格に従って通信する。本実施形態では、印刷装置通信部33は、POS端末13と所定の無線通信規格に従って通信する。POS端末13と印刷装置12との間で行われる通信の無線通信規格は、アドホックモードに対応する無線LANに係る規格や、インフラストラクチャーモードに対応する無線LANに係る規格、Bluetooth等の近距離無線通信に係る規格等、どのような規格でもよい。なお、印刷装置通信部33は、POS端末13と所定の有線規格に従って通信してもよい。
印刷装置ネットワーク通信部34は、印刷装置制御部30の制御で、グローバルネットワークGNと接続する機器(制御サーバー15を含む)と所定の通信規格に従って通信する。印刷装置ネットワーク通信部34が通信に用いる通信規格は、HTTPや、WebSocket等、どのような規格でもよい。
デバイス通信部35は、USBの規格に従ったポートや、USB以外のシリアル通信規格(RS232C等)に従ったポート、パラレル通信規格(IEEE1284等)に従ったポート、有線LANに係る通信規格(イーサネット(登録商標)等)に従ったポート、その他ポートを有するインターフェースボードを備える。各ポートには、デバイスが接続可能である。デバイス通信部35は、印刷装置制御部30の制御で、ポートを介して印刷装置12に接続されたデバイスと通信する。
なお、デバイス通信部35が、無線通信機能を備え、デバイスと無線通信する構成でもよい。
印刷装置12には、デバイスとして、バーコードリーダーBR、カスタマーディスプレーCD、及び、自動釣銭機JTが接続される。
バーコードリーダーBRは、商品や、商品の包装等に付されたバーコードを読み取り、読取結果を示すデータをデバイス通信部35に出力する。デバイス通信部35は、バーコードリーダーBRから入力されたデータを、印刷装置制御部30に出力する。
カスタマーディスプレーCDは、印刷装置制御部30の制御で、会計に関する情報を表示する。カスタマーディスプレーCDに表示された情報は、レジカウンターLで会計を行う顧客が視認できる。
自動釣銭機JTは、顧客から受け取った貨幣を投入する貨幣受取口と、釣銭に係る貨幣を排出する釣銭排出口とを備え、印刷装置制御部30の制御で、貨幣受取口を介して貨幣が投入された場合、対応する釣銭を釣銭排出口から排出する。
図2に示すように、制御サーバー15は、制御サーバー制御部40と、制御サーバーネットワーク通信部41と、制御サーバー記憶部42(記憶部)(ルール保持部)と、制御サーバー表示部43と、制御サーバー入力部44とを備える。
制御サーバー制御部40は、CPUや、ROM、RAM、ASIC、信号処理回路等を備え、制御サーバー15の各部を制御する。制御サーバー制御部40は、例えばCPUが、ROMに記憶されたプログラムをRAMに読み出して処理を実行し、また例えばASICに実装された機能により処理を実行し、また例えば信号処理回路で信号処理を行って処理を実行する等、ハードウェア及びソフトウェアにより処理を実行する。
制御サーバー制御部40は、機能ブロックとして、取得部401と、解析部402(制御部)と、検知部403と、設定部404とを備える。これら機能ブロックは、CPU等のハードウェアが、制御サーバー記憶部42やROM等に記憶されたプログラムを読み出して処理を実行する等により、ハードウェアとソフトウェアとの協働により処理を実行する。これら機能ブロックについては後述する。
制御サーバーネットワーク通信部41は、制御サーバー制御部40の制御で、グローバルネットワークGNと接続する機器(印刷装置12を含む)と所定の通信規格に従って通信する。制御サーバーネットワーク通信部41が通信に用いる通信規格は、HTTPや、WebSocket等、どのような規格でもよい。制御サーバーネットワーク通信部41は、グローバルネットワークGNに接続する機器に情報を送信し、機器の所有者に情報を報知する場合、報知部として機能する。
制御サーバー記憶部42は、不揮発性メモリーを備え、各種データを記憶する。制御サーバー記憶部42は、解析プログラム群管理データベース421と、解析データ管理データベース422と、解析プログラム群登録データベース423と、所有者登録データベース424と、種類登録データベース425とを記憶する。これらデータベースについては後述する。
制御サーバー表示部43は、表示パネルを備え、制御サーバー制御部40の制御で、表示パネルに各種情報を表示する。制御サーバー表示部43は、各種情報を表示することで情報を報知する際、報知部として機能する。
制御サーバー入力部44は、キーボード、マウス、その他の入力手段を備え、入力手段に対するユーザーの操作を検出し、制御サーバー制御部40に出力する。制御サーバー制御部40は、制御サーバー入力部44からの入力に基づいて、入力手段に対するユーザーの操作に対応する処理を実行する。
次に、レジカウンターLで顧客の会計が行われた場合の、POS端末13、印刷装置12、及び、制御サーバー15の動作について説明する。
図3は、レジカウンターLで会計が行われた場合のPOS端末13、印刷装置12、及び、制御サーバー15の動作を示すフローチャートである。図3のフローチャートFAはPOS端末13の動作を示し、フローチャートFBは印刷装置12の動作を示し、フローチャートFCは制御サーバー15の動作をそれぞれ示す。
以下、制御サーバー制御部40が機能ブロックとして備える取得部401と解析部402の説明を通して、図3を説明する。
図3のフローチャートFAに示すように、POS端末13のPOS端末制御部20のアプリケーション実行部201は、顧客の会計に応じて会計処理を実行し、会計処理に基づいて印刷データを生成する(ステップSA1)。
ステップSA1の処理について詳述すると、アプリケーション実行部201は、タッチパネル22に、会計に対応する入力が可能なユーザーインターフェースを表示させる。アプリケーション実行部201は、タッチパネル22に対するレジ担当者の入力や、顧客の会計に伴う印刷装置12からの入力に応じて、レシート情報を生成する。レシート情報とは、印刷装置12に発行させるレシートに印刷される情報である。レシート情報の具体的な内容については、後に、例を挙げて説明する。次いで、アプリケーション実行部201は、生成したレシート情報に基づいて、印刷データを生成する。印刷データは、所定のレイアウトでレシート情報が印刷されたレシートの発行を指示するデータである。印刷データは、印刷装置12のコマンド体系に従った複数の制御コマンドを含んで構成される。
図4は、印刷データの一例である印刷データDT1を示す図である。
図4の印刷データDT1に示すように、印刷データDT1には、グラフィック画像印刷指示コマンドCM1と、文字列印刷関連コマンド群GMと、改行コマンドLFと、カットコマンドCM4とを含む。また、文字列印刷関連コマンド群GMは、文字列装飾コマンドCM2と、文字列印刷指示コマンドCM3とを含む。
グラフィック画像印刷指示コマンドCM1は、専用の命令コードと、ビットマップデータ等のイメージデータとを含み、イメージデータに基づくグラフィック画像の印刷を指示する制御コマンドである。イメージデータとは、ドットマトリックス状に配置されたドットについて、各ドットの色に関する情報を保持するデータである。グラフィック画像は、フォントデータに基づいて印刷される画像ではなく、ホストコンピューターとして機能する装置(本実施形態では、POS端末13)から受信したイメージデータに基づいて印刷される画像である。後述するロゴ情報J1は、グラフィック画像に相当する。
文字列印刷関連コマンド群GMに含まれる文字列印刷指示コマンドCM3は、1行分の文字列の印刷を指示する制御コマンドである。文字列印刷指示コマンドCM3は、専用の命令コードと、印刷を指示する文字列の情報(文字列を構成する1又は複数の文字の文字コードの組み合わせ)と、を含む。文字列印刷関連コマンド群GMに含まれる文字列装飾コマンドCM2は、文字列印刷指示コマンドCM3によって印刷が指示された文字列に施す装飾を指定する制御コマンドである。文字列に施す装飾としては、例えば、右寄せや、中央寄せ、左寄せ、太字化、アンダーラインの付加、強調点の付加、白黒の反転、回転、拡大、縮小等が挙げられる。
印刷装置12の印刷装置記憶部32は、印刷可能な文字のそれぞれのフォントデータを記憶する。印刷装置12の印刷装置制御部30は、1の文字列印刷関連コマンド群GMに基づいて文字列を印刷する場合、以下の処理を実行する。すなわち、印刷装置制御部30は、所定の手段で、当該1の文字列印刷関連コマンド群GMに含まれる文字列印刷指示コマンドCM3に含まれる文字コードのそれぞれを、対応するフォントデータのそれぞれに変換する。次いで、印刷装置制御部30は、フォントデータのそれぞれに、当該1の文字列印刷関連コマンド群GMに含まれる文字列装飾コマンドCM2が指定する装飾を施し、フォントデータのそれぞれを画像バッファーに展開する。次いで、印刷装置制御部30は、画像バッファーに展開したフォントデータのそれぞれに基づいて印刷部31を制御し、1行分の文字列を印刷する。
改行コマンドLFは、改行を指示するコマンドである。カットコマンドCM4は、ロール紙の切断を指示するコマンドである。
図3のフローチャートFAに示すように、ステップSA1で印刷データを生成した後、アプリケーション実行部201は、POS端末通信部21を制御して、生成した印刷データを、印刷装置12に送信する(ステップSA2)。
図3のフローチャートFBに示すように、印刷装置12の印刷装置制御部30は、印刷装置通信部33を制御して、印刷データを受信する(ステップSB1)。次いで、印刷装置制御部30は、ステップSB1で受信した印刷データに基づいて、印刷部31を制御して、レシートを発行する(ステップSB2)。発行されたレシートは、顧客に引き渡される。
印刷データに基づいて印刷装置12に発行されるレシートとしては、例えば、図5Aに示すレイアウトのようなレシートが一例として挙げられる。
図5Aは、印刷データに基づいて印刷装置12により発行されるレシートの一例を示す図である。
なお、本実施形態では、文字コードが割り当てられた対象のことを「文字」と表現する。文字には、文字コードが割り当てられた記号や、文字コードが割り当てられた空白文字が含まれる。
図5Aで例示するレシートR1には、先頭に、店舗の名称を図案化したロゴ情報J1が印刷される。ロゴ情報J1は、上述したグラフィック画像印刷指示コマンドCM1に基づいて印刷される。
レシートR1において、ロゴ情報J1の下方は、店舗の住所を文字列で表す店舗住所情報J2が一行で印刷される。店舗住所情報J2は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、店舗の住所を表す文字列の印刷を指示する文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。
レシートR1において、店舗住所情報J2の一行下には、店舗の電話番号を文字列で表す店舗電話番号情報J3が一行で印刷される。店舗電話番号情報J3は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、店舗の電話番号を表す文字列の印刷を指示する文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。
レシートR1において、店舗電話番号情報J3の一行下には、第1エリア分割情報BK1が印刷される。第1エリア分割情報BK1は、文字「-」が一行内で、所定の個数、連続して構成された文字列である。レシートR1は、1つ目の第1エリア分割情報BK1によって印刷領域が区切られ、1つ目の第1エリア分割情報BK1よりも上方がエリア分けされる。以下、レシートR1において、第1エリア分割情報BK1よりも上方のエリアを「エリアAA1」とする。
レシートR1において、1つ目の第1エリア分割情報BK1の一行下には、レシート識別関連情報J4が印刷される。レシート識別関連情報J4は、レシートを識別する識別情報を文字列で表すレシート識別情報J42を有する。レシート識別情報J42の値は、レシートごとに異なる。また、レシート識別関連情報J4は、レシート識別情報J42の同一行において、レシート識別情報J42の左方に印刷され、レシート識別情報J42がレシートを識別する識別情報であることを明示する情報を文字列で表すレシート識別明示情報J41を有する。図5Aに示すように、レシートR1に係るレシート識別明示情報J41は、文字列「Check♯:」からなる情報である。レシート識別関連情報J4は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、レシート識別明示情報J41を表す文字列と、1つの空白文字と、レシート識別情報J42を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。
レシートR1において、レシート識別関連情報J4の一行下には、レシートが発行された日時を文字列で表す発行日時情報J5が印刷される。発行日時情報J5は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、レシートが発行された日時を表す文字列の印刷を指示する文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。
発行日時情報J5の一行下には、第1エリア分割情報BK1が印刷される。レシートR1は、1つ目の第1エリア分割情報BK1と、2つ目の第1エリア分割情報BK1とによって印刷領域が区切られ、これら情報で囲まれた領域がエリア分けされる。以下、レシートR1において、1つ目の第1エリア分割情報BK1と、2つ目の第1エリア分割情報BK1とで囲まれたエリアを「エリアAA2」とする。
レシートR1において、2つ目の第1エリア分割情報BK1の一行下には、1又は複数(図5Aでは2つ)の商品情報J6が印刷される。商品情報J6は、顧客が購入した商品に関する情報である。商品情報J6は、顧客が購入した商品の種類ごとに、レシートR1に印刷される。従って、例えば、顧客が購入した商品の種類が3つである場合は、3つの種類の商品のそれぞれに対応する3つの商品情報J6が印刷される。レシートR1に複数の商品情報J6が印刷される場合、複数の商品情報J6は、異なる行に、1行ずつ連続して印刷される。
商品情報J6は、購入数量情報J61と、商品名情報J62と、単価情報J63とを有する。購入数量情報J61、商品名情報J62、及び、単価情報J63は、同一行に印刷される。購入数量情報J61は、対応する商品の購入数量を文字列で表す情報である。商品名情報J62は、対応する商品の名称を文字列で表す情報である。単価情報J63は、対応する商品の単価を文字列で表す情報である。レシートR1では、1行内で、右へ向かって購入数量情報J61、商品名情報J62、及び、単価情報J63の順番で印刷される。
商品情報J6は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、購入数量情報J61を表す文字列と、1つの空白文字と、商品名情報J62を表す文字列と、1個又は複数個の空白文字と、単価情報J63を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。商品名情報J62を表す文字列と、単価情報J63を表す文字列との間に挿入される空白文字の個数は、単価情報J63の位置が、「行」の末尾に位置するように、調整される。
レシートR1において、最下部に印刷される商品情報J6の一行下には、第2エリア分割情報BK2が印刷される。第2エリア分割情報BK2は、文字「~」が一行内で複数連続して構成された文字列である。レシートR1は、2つ目の第1エリア分割情報BK1と、1つ目の第2エリア分割情報BK2とによって印刷領域が区切られ、これら情報で囲まれた領域がエリア分けされる。以下、レシートR1において、2つ目の第1エリア分割情報BK1と、1つ目の第2エリア分割情報BK2とで囲まれたエリアを「エリアAA3」とする。
レシートR1において、1つ目の第2エリア分割情報BK2の一行下には、小計関連情報J7が印刷される。小計関連情報J7は、小計を文字列で表す小計情報J72を有する。また、小計関連情報J7は、小計情報J72の同一行において、小計情報J72の左方に印刷され、小計情報J72が小計を示す情報であることを明示する情報を文字列によって表す小計明示情報J71を有する。図5Aに示すように、レシートR1に係る小計明示情報J71は、8個の大文字のアルファベットの文字列「SUBTOTAL」からなる文字列である。
小計関連情報J7は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、小計明示情報J71を表す文字列と、1個又は複数個の空白文字と、小計情報J72を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。小計明示情報J71を表す文字列と、小計情報J72を表す文字列との間に挿入される空白文字の個数は、小計情報J72の位置が、「行」の末尾に位置するように、調整される。
レシートR1において、小計関連情報J7の一行下には、税関連情報J8が印刷される。税関連情報J8は、税額を文字列で表す税額情報J82を有する。また、税関連情報J8は、税額情報J82の同一行において、税額情報J82の左方に印刷され、税額情報J82が税額を示す情報であることを明示する情報を文字列によって表す税明示情報J81を有する。図5Aに示すように、レシートR1に係る税明示情報J81は、3個の大文字のアルファベットの文字列「TAX」からなる文字列である。
税関連情報J8は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、税明示情報J81を表す文字列と、1個又は複数個の空白文字と、税額情報J82を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。税明示情報J81を表す文字列と、税額情報J82を表す文字列との間に挿入される空白文字の個数は、税額情報J82の位置が、「行」の末尾に位置するように、調整される。
レシートR1において、税関連情報J8の一行下には、合計金額関連情報J9が印刷される。合計金額関連情報J9は、合計金額を文字列で表す合計金額情報J92を有する。また、合計金額関連情報J9は、合計金額情報J92の同一行において、合計金額情報J92の左方に印刷され、合計金額情報J92が合計金額を示す情報であることを明示する情報を文字列によって表す合計金額明示情報J91を有する。図5Aに示すように、レシートR1に係る合計金額明示情報J91は、5個の大文字のアルファベットの文字列「TOTAL」からなる文字列である。
合計金額関連情報J9は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、合計金額明示情報J91と、1個又は複数個の空白文字と、合計金額情報J92を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。合計金額明示情報J91を表す文字列と、合計金額情報J92を表す文字列との間に挿入される空白文字の個数は、合計金額情報J92の位置が、「行」の末尾に位置するように、調整される。
以下の説明において、第1エリア分割情報BK1、及び、第2エリア分割情報BK2、を、区別せずに表示する場合、「エリア分割情報」という。
このように、レシートR1は、以下のレイアウトでレシート情報が印刷される。すなわち、印刷領域に3つのエリア分割情報が印刷され、これら3つのエリア分割情報により、印刷領域が、上から順番に、エリアAA1、エリアAA2、エリアAA3、及び、エリアAA4の4つのエリアに区分けされる。エリアAA1には、ロゴ情報J1、店舗住所情報J2、及び、店舗電話番号情報J3がこの順番で印刷される。エリアAA2には、レシート識別関連情報J4、及び、発行日時情報J5がこの順番で印刷される。エリアAA3には、1又は複数の商品情報J6が印刷される。また、商品情報J6は、1行内で、右へ向かって購入数量情報J61、商品名情報J62、及び単価情報J63の順番で印刷される。エリアAA4には、小計関連情報J7、税関連情報J8、及び、合計金額関連情報J9がこの順番で印刷される。
図3のフローチャートFBの説明に戻り、ステップSB2でレシートを発行した後、印刷装置制御部30は、印刷データに基づいて、印刷テキストデータ(対象データ)を生成する(ステップSB3)。印刷テキストデータは、印刷データに基づいてロール紙に印刷される情報のうち、文字として印刷される情報が、テキストとして記述されたテキストデータである。以下、ステップSB3の処理について詳述する。
ステップSB3において、印刷装置制御部30は、印刷データから、文字列の印刷に関する制御コマンドである文字列印刷指示コマンドCM3、及び、改行コマンドLFを抽出する。次いで、印刷装置制御部30は、抽出した制御コマンドに基づいて、レシートに文字として印刷される情報がテキストとして記述された印刷テキストデータを生成する。ここで、印刷装置制御部30は、印刷テキストデータに、印刷で行われる改行が反映された状態で情報を記述する。また、印刷装置制御部30は、印刷テキストデータに、文字列装飾コマンドCM2で指定された装飾を反映しない状態で情報を記述する。従って、文字列装飾コマンドCM2によって、文字列に施す装飾として、中央寄せ、右寄せが指示された場合でも、印刷テキストデータへのテキストの記述に際し、これら装飾は反映されない。
図5Bは、図5Aで例示したレシートR1に係る印刷データに基づいて生成される印刷テキストデータである印刷テキストデータT1の内容を示す図である。図5Bと、図5Aとの比較で明らかなとおり、印刷テキストデータT1には、レシートR1に文字として印刷される情報が、印刷における順番、及び、印刷における改行を反映した状態で記述される。なお、ロゴ情報J1は、グラフィック画像であるため、印刷テキストデータには、記述されない。すなわち、図5Bに示すように、文字コードに対応するフォントデータに基づいて印刷される文字以外の情報は、印刷テキストデータには記述されない。
図3のフローチャートFBに示すように、ステップSB3で印刷テキストデータを生成した後、印刷装置制御部30は、シリアル番号J11、店舗識別情報J12、ステップSB1で受信した印刷データ、及び、ステップSB3で生成した印刷テキストデータを、制御サーバー15に送信する(ステップSB4)。シリアル番号J11は、印刷装置12の製造段階で、印刷装置12に一意に割り当てられる識別情報であり、印刷装置記憶部32の所定の記憶領域に記憶される。ステップSB4において、印刷装置制御部30は、印刷装置記憶部32の所定の記憶領域に記憶されたシリアル番号J11を取得する。店舗識別情報J12は、印刷装置12が設けられた店舗を識別する識別情報であり、印刷装置記憶部32の所定の記憶領域に記憶される。ステップSB4において、印刷装置制御部30は、印刷装置記憶部32の所定の記憶領域に記憶された店舗識別情報J12を取得する。
なお、本実施形態では、対象データを印刷テキストデータとしているが、対象データは、印刷テキストデータの他、シリアル番号J11、店舗識別情報J12、印刷データを含んでもよい。また、本実施形態では、印刷装置12が印刷データから印刷テキストデータを生成する構成を例示しているが、POS端末13が印刷テキストデータを生成する構成でもよい。この場合、印刷装置12は、ステップSB3の処理をスキップし、POS端末13から受信した印刷テキストデータを制御サーバー15に送信する。印刷テキストデータは、POS端末13から出力された印刷データから生成されるため、本実施形態では、印刷装置12が印刷テキストデータを出力することは、POS端末13が印刷テキストデータを出力することに相当するものとする。なお、制御サーバー15が、印刷データを印刷装置12から取得し印刷テキストデータを生成する構成でもよい。
ステップSB4において、シリアル番号J11等を送信するのに必要な通信に関する情報(送信先に関する情報や、通信に用いるプロトコル、送信するデータのフォーマット等)は、印刷装置12に事前に登録される。
図3のフローチャートFCに示すように、制御サーバー15の制御サーバー制御部40の取得部401は、制御サーバーネットワーク通信部41を制御して、印刷装置12が送信したシリアル番号J11、店舗識別情報J12、印刷データ、及び、印刷テキストデータを受信(取得)する(ステップSC1)。
次いで、制御サーバー制御部40の解析部402は、解析プログラム群管理データベース421(後述)、及び、解析プログラム群登録データベース423(後述)を参照し、ステップSC1で受信したシリアル番号J11の値と同一の値のシリアル番号J11と対応付けられた解析プログラム群KPGを取得する(ステップSC2)。
図6は、解析プログラム群登録データベース423の1件のレコードが有する情報を模式的に示す図である。
図6に示すように、解析プログラム群登録データベース423の1件のレコードは、セット識別情報J13と、解析プログラム群KPGと、登録時期情報J14と、採用率情報J15とを有する。セット識別情報J13は、解析プログラム群KPGを識別する識別情報である。登録時期情報J14と採用率情報J15とについては、後述する。
図6では、解析プログラム群KPGは、第1解析プログラムKP1~第8解析プログラムKP8の8個の解析プログラムKPを有する。解析プログラムKP(第1解析プログラムKP1~第8解析プログラムKP8)については後述する。
図7は、解析プログラム群管理データベース421の1件のレコードが有する情報を模式的に示す図である。
図7に示すように、解析プログラム群管理データベース421の1件のレコードは、店舗識別情報J12と、シリアル番号J11と、POS識別情報J16と、セット識別情報J13とを有する。
解析プログラム群管理データベース421は、1件のレコードにこれら情報を有しているため、1の印刷装置12と、当該1の印刷装置12に接続するPOS端末13と、当該1の印刷装置12が出力する印刷テキストデータに対しテキストデータ解析処理に利用する解析プログラム群KPGとを対応付けて管理している。また、解析プログラム群管理データベース421は、1件のレコードに対してこれら情報を有しているため、シリアル番号J11が示す印刷装置12に対応付く解析プログラム群KPGを管理しており、また、シリアル番号J11が示す印刷装置12と接続するPOS端末13に対応付く解析プログラム群KPGを管理している。後述にて明らかになる通り、解析プログラム群KPGは、セット解析ルール(後述)を有している。したがって、解析プログラム群管理データベース421は、1の印刷装置12、又は、当該1の印刷装置12に接続するPOS端末13にセット解析ルールを対応付けている。
解析部402は、ステップSC1で受信したシリアル番号J11と同一の値のシリアル番号J11を有するレコードを解析プログラム群管理データベース421から特定し、特定したレコードからセット識別情報J13を取得する。そして、解析部402は、取得したセット識別情報J13と同一の値のセット識別情報J13を有するレコードを、解析プログラム群登録データベース423から特定し、特定したレコードが有する解析プログラム群KPGを、ステップSC2で取得する。
図3の説明に戻り、解析部402は、取得した解析プログラム群KPGに基づいてテキストデータ解析処理を実行する(ステップSC3)。このように解析部402は、解析プログラム群管理データベース421から解析プログラム群KPGを取得してテキストデータ解析処理を実行する。そのため、本実施形態では、解析プログラム群管理データベース421に解析プログラム群KPGを設定するとは、解析部402に対して解析プログラム群KPGを設定することに相当する。
テキストデータ解析処理は、解析プログラム群KPGに基づいて、印刷テキストデータに対して予め定められた複数の項目について項目値を検索する検索処理を実行し、項目値を取得し、又は、項目値を取得できないことを検出する解析処理である。以下、テキストデータ解析処理において、項目値を取得する対象の項目を「対象項目」という。
本実施形態では、対象項目として、店舗住所情報項目、店舗電話番号情報項目、レシート識別項目、発行日時情報項目、商品情報項目、小計情報項目、税情報項目、及び、合計金額情報項目の8個の項目がある。
店舗住所情報項目とは、項目値として、レシートが発行された店舗の住所を示す店舗住所情報J2が対応付く項目である。
店舗電話番号情報項目とは、項目値として、レシートが発行された店舗の電話番号を示す店舗電話番号情報J3が対応付く項目である。
レシート識別情報項目は、項目値として、発行されたレシートを識別するためのレシート識別情報J42が対応付く項目である。
発行日時情報項目は、項目値として、レシートが発行された日時を示す発行日時情報J5が対応付く項目である。
商品情報項目は、商品情報項目には、商品名情報項目と、購入数量情報項目と、単価情報項目とが属する。商品名情報項目は、項目値として商品の名称を示す商品名情報J62が対応付く項目である。購入数量情報項目は、項目値として、購入数量を示す購入数量情報J61が対応付く項目である。単価情報項目は、項目値として、商品の単価を示す単価情報J63が対応付く項目である。
小計情報項目は、項目値として、小計を示す小計情報J72が対応付く項目である。
税情報項目は、項目値として、税額を示す税額情報J82が対応付く項目である。
合計金額情報項目は、項目値として、合計金額を示す合計金額情報J92が対応付く項目である。
上述したように、本実施形態の解析プログラム群KPGは、複数の解析プログラムKPを有している。解析プログラムKPは、所定のスクリプト言語によって記述されたプログラムであり、記述された処理フローが示す解析ルールに沿って、1の項目について、印刷テキストデータに対し検索処理を実行し、印刷テキストデータに含まれる当該1の項目に対応する項目値を取得する、又は、取得できないことを検出する機能を有するプログラムである。ここでいう解析ルールとは、1の項目について印刷テキストデータに対し検索処理を実行し、印刷テキストデータに含まれる項目値を取得するまでのルールである。例えば、図5Bの印刷テキストデータT1において、合計金額情報項目の項目値を取得する解析ルールとしては、「印刷テキストデータT1のエリアAA4に含まれる「TOTAL」を示す文字列をキーワード検索し、「TOTAL」と同じ行に存在する文字列を項目値として検索し、検索した項目値を取得する」といったルールである。
解析プログラム群KPGは、複数の解析プログラムKPを有しているため、セット解析ルールに沿って、1の印刷テキストデータから、解析プログラムKPの数に対応する項目について項目値を取得する。セット解析ルールとは、1の解析プログラムKPが処理に従う解析ルールが、複数集合し、複数集合した解析ルールにより構成される複数項目の項目値の取得についての一連のルールを示す。図6では、解析プログラム群KPGは、第1解析プログラムKP1~第8解析プログラムKP8から構成されている。つまり、図6の場合では、解析プログラム群KPGは、8つの解析ルールにより構成されたセット解析ルールに沿って、8つの項目のそれぞれに対する各項目値を取得する。
図6に示すように、本実施形態では、解析プログラム群KPGは、解析ルールに沿って店舗住所情報項目の項目値を取得する機能を有する第1解析プログラムKP1、解析ルールに沿って店舗電話番号情報項目の項目値を取得する機能を有する第2解析プログラムKP2、解析ルールに沿ってレシート識別情報項目の項目値を取得する機能を有する第3解析プログラムKP3、解析ルールに沿って発行日時情報項目の項目値を取得する機能を有する第4解析プログラムKP4、解析ルールに沿って商品名情報項目の項目値を取得する機能を有する第5解析プログラムKP5、解析ルールに沿って小計情報項目の項目値を取得する機能を有する第6解析プログラムKP6、解析ルールに沿って税情報項目の項目値を取得する機能を有する第7解析プログラムKP7、及び、解析ルールに沿って合計金額情報項目の項目値を取得する機能を有する第8解析プログラムKP8を有する。
なお、テキストデータ解析処理は、制御サーバー15にインストールされた制御プログラム、及び、当該制御プログラムに付随するプログラムの機能により実行される。
1の解析プログラムKPは、対象項目の項目値を取得し、又は、項目値を取得できないことを検出する際に、対象項目の項目値を解析プログラムごとに設定された解析ルールに従って検索する。
例えば、第8解析プログラムKP8は、印刷テキストデータのエリアAA4に含まれる「TOTAL」を示す文字列をキーワード検索し、「TOTAL」の文字列を有する行において、空白文字を除き、当該文字列の右側に位置する文字列を合計金額情報項目の項目値として検索する解析ルールに従って、合計金額情報項目の項目値を検索する。
また、例えば、第4解析プログラムPS4は、印刷テキストデータに対して、先頭から5行目に記載される文字列を発行日時情報項目の項目値として検索する解析ルールに従って、発行日時情報項目の項目値を検索する。図5Bに示す印刷テキストデータT1の場合、第4解析プログラムPS4は、発行日時情報項目の項目値として、「1/1/2015/12:00」を示す発行日時情報J5を検索し取得する。
このように、1の解析プログラムKPは、解析ルールに従って対象項目の項目値を検索する。そして、解析プログラム群KPGは、有する解析プログラムKPが従う解析ルールのそれぞれに従って、各対象項目の項目値を検索する。例えば、POS端末13のリプレイス等によりレシートに印刷される情報のレイアウトが変わったことにより、セット解析ルールに含まれる第1解析プログラムKP1から第8解析プログラムKP8いずれかの解析プログラムKPで項目値が取得できなくなった場合、項目値を検索するルールの変更を検知してルールを変更すべき旨報知する必要がある。
なお、解析プログラムKPに対して、第1~第8と識別子を付しているが、この識別子は、検索対象の項目が異なることを示している。そのため、例えば、ある解析プログラム群KPGが有する第1解析プログラムKP1と、当該ある解析プログラム群KPGと異なる解析プログラム群KPGが有する第1解析プログラムKP1とは、検索対象の項目が同じであるだけで、解析ルールが同じであるとは限らない。
図3の説明に戻り、制御サーバー制御部40の解析部402は、ステップSC3のテキストデータ解析処理の処理結果に基づいて解析データを生成する(ステップSC4)。解析データは、上述した対象項目のそれぞれと、統括識別情報項目、シリアル番号項目、及び、店舗識別情報項目のそれぞれと、項目値とが対応付けて記述されたJSON形式のデータである。
統括識別情報項目は、項目値として、解析データを一意に識別する統括識別情報J17が対応付く項目である。シリアル番号項目は、項目値として、シリアル番号J11が対応付く項目である。店舗識別情報項目は、項目値として、店舗を一意に識別する店舗識別情報J12が対応付く項目である。
解析部402は、解析データを生成すると、生成した解析データを解析データ管理データベース422に1件のレコードとして登録する(ステップSC5)。
図8は、解析データ管理データベース422の1件のレコードが有する情報を模式的に示す図である。
図8に示すように、解析データ管理データベース422の1件のレコードは、統括識別情報J17、シリアル番号J11、店舗識別情報J12、発行日時情報J5、印刷データ、印刷テキストデータ、解析データを有する。
解析データ管理データベース422は、検索処理を含むテキストデータ解析処理の処理結果を示すレコードを格納するため、履歴情報に相当する。
ステップSC5において、制御サーバー制御部40は、解析データに、対応する項目と対応付けて記述した統括識別情報J17、シリアル番号J11、店舗識別情報J12、及び、発行日時情報J5と、受信した印刷データ、及び、印刷テキストデータとを対応付けたレコードを、解析データ管理データベース422に登録する。
制御サーバー15には、複数のWebAPI(Application Programming Interface)が登録される。そして、制御サーバー15は、外部の装置のブラウザーからの要求に応じて、解析データ管理データベース422に基づいて、登録されたWebAPIにより処理を行って、ユーザーが必要とする情報を提供することができる。ここでいうユーザーとは、例えば、店舗を経営するオーナーや、店舗を管理する管理会社またはその管理会社の従業員、店舗の責任者等である。例えば、制御サーバー15の制御サーバー制御部40は、外部の装置のブラウザーからの要求に応じて、解析データ管理データベース422の解析データを用いて、特定のレシートに係る合計金額情報J92を提供できる。
ところで、店舗システム11では、POS端末13及び印刷装置12の少なくともいずれかについてリプレイス等のシステム変更が行われることがある。システム変更の一態様としては、フランチャイズ形態で展開される複数店舗において、店舗に配置されるPOS端末13を全て同じ機種に統一する場合が挙げられる。
システム変更が行われると、POS端末13が印刷装置12に出力する印刷データのレイアウトは、システム変更前のレイアウトと異なる可能性が有る。そのため、制御サーバー15は、リプレイス後に印刷装置12から印刷テキストデータを取得しても、リプレイス前に使用していた解析プログラム群KPGでは対象項目の項目値を検索できない虞がある。例えば、リプレイスにより、レシートに印刷される合計金額情報が「TOTAL」から「AMOUNT」の文字列に変更されたとする。この場合、「TOTAL」をキーワード検索する第8解析プログラムKP8では、合計金額情報項目の項目値が検索できない。そのため、制御サーバー15は、リプレイス前の解析プログラム群KPGでは合計金額情報項目の項目値である合計金額情報J92を取得できない。これでは、制御サーバー15は、例えば、店舗を経営するオーナーや、店舗の責任者等のユーザーに、ユーザーが必要とする情報を提供できないことに繋がってしまう。
なお、このことは、システム変更に限らず、例えば、ある店舗においてレシートのレイアウト変更が行われた場合についても同様のことが言える。
以上を踏まえて、本実施形態の制御サーバー15は、以下に示す動作を実行する。
図9は、制御サーバー15の動作を示すフローチャートFDである。
以下、制御サーバー15の制御サーバー制御部40が備える検知部403、及び、設定部404の説明を通して、図9を説明する。
以下の説明において、図9に示す動作の対象となる1の印刷装置12を「対象印刷装置」と表現し、図9に示す動作の対象となる当該1の印刷装置12と接続するPOS端末を「対象POS端末」と表現する。
制御サーバー制御部40の検知部403は、検知処理を実行する(ステップSD1)。検知処理とは、解析プログラム群KPGのセット解析ルールの変更が要するか否かを検知する処理である。
ここで、検知処理について、複数の検知処理を例示して詳述する。
<第1の検知処理>
図10は、第1の検知処理における検知部403の動作を示すフローチャートFEである。
第1の検知処理では、以下のことを前提とする。すなわち、解析部402が、テキストデータ解析処理を実行する際、所定のアルゴリズムにより印刷テキストデータの特徴量を算出し、解析データが算出した特徴量を含むものとする。
特徴量とは、印刷テキストデータにおける、項目の配置の特徴、又は、項目値の配置の特徴の少なくともいずれかを、数値化して表現したものである。特徴量は、複数の項目の配置、及び、複数の項目値の配置のそれぞれについて数値が付された数値群として表現されてもよく、複数の項目の配置、及び、複数の項目値の配置をまとめて1の数値で表現されてもよい。
また、第1検知処理では、対象印刷装置のシリアル番号J11に対応付く解析プログラム群KPG、又は、対象POS端末装置12に対応付く解析プログラム群KPGについて、セット解析ルールの変更が要するか否かを検知するものとする。
検知部403は、解析データ管理データベース422から、特定の期間内(例えば、ある店舗の営業時間において昼の部に相当する期間)にテキストデータ解析処理を実行して生成された解析データを格納するレコードを特定する(ステップSE1)。検知部403は、対象印刷装置を示すシリアル番号J11、及び、特定の期間内に対応する発行日時を示す発行日時情報J5を格納するレコードを、解析データ管理データベース422から特定する。
次いで、検知部403は、特定したレコード数を算出し(ステップSE2)、算出したレコード数が所定数以上であるか否かを判別する(ステップSE3)。ここでの所定数は、セット解析ルールの変更が要するか否かを精度よく実行するためのレコード数に対する閾値である。この所定数は、事前のテストやシミュレーション等によって予め算出される。
検知部403は、特定したレコード数が所定数以上でない、すなわち、所定数を下回ると判別した場合(ステップSE3:NO)、処理を終了する。一方で、検知部403は、特定したレコード数が所定数以上であると判別した場合(ステップSE3:YES)、特定したレコードのそれぞれから解析データに含まれる特徴量を取得する(ステップSE4)。
次いで、検知部403は、ステップSE4で取得した特徴量の変化が所定の閾値以上であるか否かを判別する(ステップSE5)。例えば、検知部403は、ある発行日時を示す発行日時情報J5と対応付く解析データが含む特徴量と、当該ある発行日時よりも以前の発行日時を示す発行日時情報J5と対応付く解析データが含む特徴量との差分を算出する(印刷テキストデータの特徴を比較する)。そして、検知部403は、算出した差分が所定の閾値以上であるか否かで、ステップSE5の判別を実行する。POS端末13が出力する印刷データのレイアウトに変更がない場合、算出される差分は、「0」であることが想定され、POS端末13が出力する印刷データのレイアウトに変更がある場合、算出される差分は、「0」以外となることが想定される。したがって、ここでの所定の閾値は、一例として、「0」が挙げられる。なお、所定の閾値は、「0」に限らず、誤差等を加味して、事前のテストやシミュレーションにより予め適切に閾値に設定される。
検知部403は、特徴量の変化が所定の閾値以上であると判別した場合(ステップSE5:YES)、セット解析ルールの変更が要すると検知する(ステップSE6)。なお、セット解析ルールの変更が要すると検知することは、ルールの変更を検知することに相当する。一方、検知部403は、特徴量の変化が所定の閾値以上でない、すなわち、所定の閾値を下回ると判別した場合(ステップSE5:NO)、セット解析ルールの変更が要さないと検知する(ステップSE7)。
このように、検知部403は、ある発行日時に対応付く解析データに含まれる特徴量と、ある発行日時より以前に対応付く解析データに含まれる特徴量とを比較することで、セット解析ルールの変更を要するか否かを判別する。すなわち、検知部403は、経時的な特徴量の変化に基づいて、セット解析ルールの変更を要するか否かを判別する。これにより、検知部403は、経時的な特徴量の変化に基づいて、的確にセット解析ルールの変更を検知できる。特に、特徴量は、印刷テキストデータにおける、項目に対応する文字列の配置または項目値を示す文字列の配置について数値を付して表現したものである。そのため、検知部403は、システム変更やレイアウト変更等によって項目の配置、又は、項目値の配置が変更された場合に、セット解析ルールの変更を要することを的確に検知できる。
<第2の検知処理>
次に、第2の検知処理について説明する。
図11は、第2の検知処理における検知部403の動作を示すフローチャートFFである。
図11のフローチャートFFにおいて、図10のフローチャートFEと同一のステップについては、同一のステップ番号を付し、その詳細な処理の説明を省略する。
第2の検知処理では、以下のことを前提とする。すなわち、解析部402が、テキストデータ解析処理が含む検索処理において、所定のアルゴリズムにより項目ごとに項目値の集計または解析(解析成功率の算出)の少なくともいずれかを実行する。そして、解析部402は、項目値の集計または解析の少なくともいずれかの実行に基づいて、項目ごとに解析成功率を取得し、項目ごとに取得した解析成功率を含む解析データを生成するものとする。解析成功率とは、検索処理において項目値の検索に成功した割合を示す。なお、印刷装置12が制御サーバーに送信するテキストデータの種別は、レシート情報を含む印刷テキストデータの他に、店舗の総売り上げ等の情報を含むレポートのテキストデータや、店舗における勤怠に係る情報を含む日報のテキストデータ等がある。解析部402は、解析成功率を取得する際、テキストデータの種別を判定し、印刷テキストデータについてのみ解析成功率を取得する。テキストデータの種別の判定方法は、いずれの方法を採用できる。
また、第2の検知処理では、1の印刷装置12のシリアル番号J11に対応付く解析プログラム群KPG、又は、当該ある1の印刷装置12に接続するPOS端末13に対応付く解析プログラム群KPGについて、セット解析ルールの変更が要するか否かを検知するものとする。
検知部403は、特定したレコード数が所定数以上でない、すなわち、所定数を下回ると判別した場合(ステップSE3:NO)、処理を終了する。一方で、検知部403は、特定したレコード数が所定数以上であると判別した場合(ステップSE3:YES)、特定したレコードのそれぞれから解析データに含まれる解析成功率を取得する(ステップSF1)。検知部403は、ステップSF1において解析データが含む全ての解析成功率、すなわち、項目の全てに対応する解析成功率を取得する。
次いで、検知部403は、項目ごとに、ステップSF1で取得した解析成功率の変化を算出し、算出した解析成功率の変化と所定の閾値とを比較する(ステップSF2)。例えば、検知部403は、項目ごとに、解析成功率の差分を算出し、算出した差分と、項目ごとに設けられる所定の閾値とを比較する。POS端末13が出力する印刷データのレイアウトに変更がない場合、算出される差分は、「0」であることが想定され、POS端末13が出力する印刷データのレイアウトに変更がある場合、項目によっては、算出される差分が、「0」以外となることが想定される。したがって、ここでの所定の閾値は、一例として、「0」が挙げられる。なお、所定の閾値は、「0」に限らず、誤差等を加味して、事前のテストやシミュレーションにより予め適切に閾値に設定される。
次いで、検知部403は、解析成功率の変化が所定の閾値を上回る項目が有るか否かを判別する(ステップSF3)。検知部403は、解析成功率の変化が所定の閾値を上回る項目が有ると判別した場合(ステップSF3:YES)、セット解析ルールの変更が要すると検知する(ステップSE6)。一方、検知部403は、解析成功率の変化が所定の閾値を上回る項目がない、すなわち、全ての項目について、解析成功率の変化が所定の閾値以下であると判別した場合(ステップSF3:NO)、セット解析ルールの変更が要さないと検知する(ステップSF7)。
このように、検知部403は、全ての項目に対し1つでも解析成功率の変化が所定の閾値を上回る場合にセット解析ルールの変更を要すると検知するため、セット解析ルールの変更を的確に検知できる。特に、検知部403は、全ての項目に対し1つでも解析成功率の変化が所定の閾値を上回ると、セット解析ルールの変更を要すると検知する。そのため、レシートのレイアウトが一部変更された場合でも、検知部403は、セット解析ルールの変更を的確に検知できる。
なお、上述した第2の検知処理では、検知部403が、解析成功率の変化に基づいてセット解析ルールの変更を要するか否かを検知する構成を説明した。しかしながら、第2の検知処理は、解析成功率の変化に限定されず、解析成功率に基づいてセット解析ルールの変更を要するか否かを検知してもよい。この場合、検知部403は、解析データ管理データベース422を参照し、印刷テキストデータを送信した印刷装置12のシリアル番号J11、及び、最新の発行日時情報J5を格納するレコードを特定する。そして、検知部403は、特定しレコードの解析データから全ての項目について解析成功率を取得し、取得した解析成功率のそれぞれに対し所定の閾値と比較する。ここでの所定の閾値は、解析成功率の変化と比較する閾値でないため、例えば「50%」のような閾値であり上述した閾値と異なり、判別基準も異なる。例えば、検知部403は、全ての項目に対し1つでも解析成功率が所定の閾値を下回ると判別した場合、セット解析ルールの変更を要すると検知し、全ての項目について解析成功率が所定の閾値以上であると判別した場合、セット解析ルールの変更を要しないと検知する。このように、検知部403は、解析成功率に基づいてセット解析ルールの変更を要するか否かを検知する構成でも、上述した解析成功率の変化に基づく検知と同様の効果を奏する。
<第3の検知処理>
次に、第3の検知処理について説明する。
図12は、第3の検知処理における検知部403の動作を示すフローチャートFGである。
第3の検知処理では、以下のことを前提とする。印刷装置12が制御サーバー15に送信される印刷テキストデータ(取得部401が取得する印刷テキストデータ)には、印刷装置12と接続するPOS端末13のPOS識別情報J16が付加されるものとする。この前提では、印刷装置12の印刷装置制御部30は、印刷装置記憶部32が記憶するPOS識別情報J16を印刷テキストデータに付加し、印刷装置ネットワーク通信部34により制御サーバー15に送信する。また、POS端末13が印刷データにPOS識別情報J16を付して印刷装置12に送信する場合、印刷装置12の印刷装置制御部30は、POS端末13から送信されたPOS識別情報J16を印刷テキストデータに付加して制御サーバー15に送信する。なお、取得部401がPOS端末13を識別して印刷テキストデータを取得することは、取得部401がPOS識別情報J16が付加された印刷テキストデータを取得することに相当する。
また、第3の検知処理では、ある1の印刷装置12のシリアル番号J11に対応付く解析プログラム群KPG、又は、当該ある1の印刷装置12に接続するPOS端末13に対応付く解析プログラム群KPGについて、セット解析ルールの変更が要するか否かを検知するものとする。
また、図12に示すフローチャートFGの開始時点では、制御サーバー制御部40の取得部401が印刷装置12からPOS識別情報J16が付加された印刷テキストデータを取得したものとする。
検知部403は、解析プログラム群管理データベース421を参照し、印刷テキストデータを送信した印刷装置12のシリアル番号J11を格納するレコードを特定する(ステップSG1)。検知部403は、解析プログラム群管理データベース421からレコードを特定すると、特定したレコードに格納されるPOS識別情報J16と、印刷テキストデータに付加されたPOS識別情報J16とを比較する(ステップSG2)。
次いで、検知部403は、特定したレコードに格納されるPOS識別情報J16と、印刷テキストデータに付加されたPOS識別情報J16とが同じであるか否かを判別する(ステップSG3)。
検知部403は、特定したレコードに格納されるPOS識別情報J16と、印刷テキストデータに付加されたPOS識別情報J16とが同じでないと判別した場合(ステップSG3:NO)、セット解析ルールの変更が要すると検知する(ステップSG4)。一方、検知部403は、特定したレコードに格納されるPOS識別情報J16と、印刷テキストデータに付加されたPOS識別情報J16とが同じであると判別した場合(ステップSG3:NO)、セット解析ルールの変更が要さないと検知する(ステップSG5)。
このように第3の検知処理において、検知部403は、印刷テキストデータに付加されるPOS識別情報J16の変化に基づいて、セット解析ルールの変更を要するか否かを検知する。店舗システム11において、POS端末13、及び、印刷装置12の少なくともいずれかにリプレイスが行われると印刷装置12と接続するPOS端末13が、リプレイス前と異なる可能性がある。これに伴って、印刷装置12が発行するレシートのレイアウトは、リプレイス前とリプレイス後とで異なる可能性がある。そこで、検知部403は、解析プログラム群管理データベース421を参照し、対象印刷装置と接続するPOS端末13の変化に基づいてセット解析ルールの変更を要するか否かを検知する。これにより、検知部403は、対象POS端末13が変化した場合でも、セット解析ルールの変更を的確に検知できる。
図9に示すフローチャートFDの説明に戻り、検知部403は、検知処理を実行すると、セット解析ルールの変更が要すると検知したか否かを判別する(ステップSD2)。ステップSD2において、検知部403は、検知処理でセット解析ルールの変更が要すると検知した場合、肯定の判別(ステップSD2:YES)を実行し、検知処理でセット解析ルールの変更を要さないと検知した場合、否定の判別(ステップSD2:NO)を実行する。
検知部403は、セット解析ルールの変更が要すると検知しなかった場合(ステップSD2:NO)、処理を終了する。一方で、検知部403は、セット解析ルールの変更が要すると検知した場合(ステップSD2:YES)、制御サーバー表示部43、及び、制御サーバーネットワーク通信部41の少なくともいずれかにより、セット解析ルールの変更が要することを報知する(ステップSD3)。
例えば、検知部403は、ステップSD3において、制御サーバー表示部43により、セット解析ルールの変更が要する旨を示す情報を表示することで、セット解析ルールの変更が要することを報知する。この報知の際、検知部403は、セット解析ルールの変更が要する解析プログラム群KPGと対応付く印刷装置12のシリアル番号J11又はPOS識別情報J16の少なくともいずれかを合わせて報知することが好ましい。これにより、制御サーバー15は、制御サーバー15に関わるユーザーに、ある1の印刷装置12、又は、当該ある1の印刷装置12に接続するPOS端末13に対応付く解析プログラム群KPGについて、セット解析ルールの変更を要することを認識させることができる。ここで、制御サーバー15に関わるユーザーとは、例えば、店舗を経営するオーナーや店舗を管理する企業等をクライアントとし、このクライアントに対して、クライアントが必要とする情報(例えば、ある特定のレシートの合計金額情報J92等)を提供するサービスを行う主体や、当該主体に属する従業員、当該主体に属し且つ解析プログラムKPの設定及び管理の少なくともいずれかを従業員等である。ある1の印刷装置12、又は、当該ある1の印刷装置12に接続するPOS端末13に対応付く解析プログラム群KPGについて、セット解析ルールの変更を要することを認識できることで、制御サーバー15に関わるユーザーは、対応付く解析プログラム群KPGを、適切なセット解析ルールの解析プログラム群KPGに変更する蓋然性が高い。これに伴って、制御サーバー15は、店舗システム11において、上述したシステム変更やレイアウト変更が行われた場合でも、対象項目の項目値を検索できないといった事態の発生を防止できる蓋然性が高まる。
なお、報知の態様は、制御サーバー表示部43により情報の表示に限定されず、制御サーバーネットワーク通信部41による情報の送信でもよい。この場合、制御サーバーネットワーク通信部41は、制御サーバー15に関わるユーザーが所有する端末に、セット解析ルールの変更が要する旨を示す情報を送信する。このように情報を送信する報知態様でも、上述した効果と同様の効果を奏する。
次いで、制御サーバー制御部40の設定部404は、選択設定処理を実行する(ステップSD4)。選択設定処理とは、適切なセット解析ルールの解析プログラム群KPGが印刷装置12又はPOS端末13に対応付くように、解析プログラム群KPGを選択し、解析プログラム群管理データベース421に設定する処理である。
ここで、選択設定処理について、複数の選択設定処理を例示して詳述する。
<第1の選択設定処理>
まず、第1の選択設定処理について説明する。
図13は、第1の選択設定処理における設定部404の動作を示すフローチャートFHである。
第1の選択設定処理では、ある1の印刷装置12のシリアル番号J11に対応付く解析プログラム群KPG、又は、当該ある1の印刷装置12に接続するPOS端末13に対応付く解析プログラム群KPGに対して処理するものとする。
設定部404は、解析データ管理データベース422から、特定の期間内(例えば、店舗の営業時間において昼の部に相当する期間)に、検知部403によりセット解析ルールの変更が要すると検知された印刷装置12から取得した印刷テキストデータを格納するレコードを、1又は複数特定する(ステップSH1)。設定部404は、対象印刷装置を示すシリアル番号J11、及び、特定の期間内に対応する発行日時を示す発行日時情報J5を格納するレコードを、解析データ管理データベース422から特定する。なお、1のレコードを特定する場合、設定部404は、特定の期間内において最新の発行日時を示す発行日時情報J5が対応付くレコードを特定することが好ましい。
次いで、設定部404は、レコードを特定すると、解析プログラム群登録データベース423に登録される解析プログラム群KPGについて、登録時期(時期)が新しい順にレコードを並び変える(ステップSH2)。図6に示す登録時期情報J14は、レコードが解析プログラム群登録データベース423に登録された登録時期を示す情報である。
次いで、設定部404は、解析プログラム群登録データベース423に登録される解析プログラム群KPGについて登録時期が新しい順にレコードの並び変えを実行すると、並び替えた順、すなわち、登録時期が新しい順に1のレコードが格納する解析プログラム群KPGを、ステップSH1で特定した印刷テキストデータに適用する(ステップSH3)。
次いで、設定部404は、項目ごとに解析成功率を算出する(ステップSH4)。例えば、ステップSH3における処理が初回の処理である場合、設定部404は、登録時期が最新の解析プログラム群KPGを、印刷テキストデータに適用し、項目値ごとに解析成功率を算出する。
次いで、設定部404は、項目ごとに算出した解析成功率と所定の閾値とを比較し、解析成功率が所定の閾値を下回る項目が有るか否かを判別する(ステップSH5)。
設定部404は、解析成功率が所定の閾値を下回る項目が有ると判別した場合(ステップSH5:YES)、解析プログラム群登録データベース423が格納する解析プログラム群KPGについて、印刷テキストデータに適用していない解析プログラム群KPGがあるか否かを判別する(ステップSH6)。
設定部404は、印刷テキストデータに適用していない解析プログラム群KPGがないと判別した場合(ステップSH6:NO)、処理を終了する。一方、設定部404は、印刷テキストデータに適用していない解析プログラム群KPGがあると判別した場合(ステップSH6:YES)、処理をステップSH3に戻し、既に適用した解析プログラム群KPGを適用対象外として、次に登録時期が新しい1の解析プログラム群KPGを、印刷テキストデータに適用し、項目ごとに解析成功率を算出する(ステップSH4)。
ステップSH5の説明に戻り、設定部404は、解析成功率が所定の閾値を下回る項目がない、すなわち、全ての項目について解析成功率が所定の閾値以上と判別した場合(ステップSH5:NO)、ステップSH4で適用した解析プログラム群KPGを、解析部402がテキストデータ解析処理に使用する解析プログラム群KPGとして設定する(ステップSH7)。ここでの設定とは、解析プログラム群管理データベース421のレコードに対し、印刷テキストデータを取得した印刷装置12のシリアル番号J11に対応付くセット識別情報J13、又は、当該印刷装置12と接続するPOS端末13のPOS識別情報J16に対応付くセット識別情報J13を、ステップSH4で適用した解析プログラム群KPGを示すセット識別情報J13に変更することを示す。
このように、設定部404は、解析プログラム群登録データベース423に登録された登録時期の順に解析プログラム群KPGを適用し、全ての項目について解析成功率が所定の閾値以上であると判別された解析プログラム群KPGをテキストデータ解析処理に使用する解析プログラム群KPGとして設定する。そのため、設定部404は、適切なセット解析ルールの解析プログラム群KPGを、印刷装置12、又は、POS端末に対応付けて設定できる。特に、第1の選択設定処理では、解析プログラム群登録データベース423に登録された登録時期の順に解析プログラム群KPGを適用していくことで、設定する解析プログラム群KPGを選択する。登録時期が最新の解析プログラム群KPGは、登録時期に応じたレシートのレイアウトの傾向や流行等が加味された解析プログラム群KPGであることが想定される。したがって、設定部404は、登録時期の順に解析プログラム群KPGを適用していくことで、設定までに要する時間を短縮できる蓋然性が高い。つまり、設定部404は、効率よく解析プログラム群KPGを選択して設定できる。
<第2の選択処理設定>
次に、第2の選択設定処理について説明する。
図14は、第2の選択設定処理における設定部404の動作を示すフローチャートFIである。
図14のフローチャートFIにおいて、図13のフローチャートFHと同一のステップについては、同一のステップ番号を付し、その詳細な処理の説明を省略する。
第2の選択設定処理では、ある1の印刷装置12のシリアル番号J11に対応付く解析プログラム群KPG、又は、当該ある1の印刷装置12に接続するPOS端末13に対応付く解析プログラム群KPGに対して処理するものとする。
設定部404は、解析プログラム群登録データベース423に登録される解析プログラム群KPGについて、採用率情報J15が示す採用率が高い順にレコードを並び替える(ステップSI1)。採用率情報J15は、解析プログラム群KPGに対応付いて設定される印刷装置12、又は、POS端末13の数の割合である採用率を示す情報である。
次いで、設定部404は、解析プログラム群登録データベース423に登録される解析プログラム群KPGについて採用率が高い順にレコードの並び変えを実行すると、並び替えた順、すなわち、採用率が高い順に1のレコードが格納する解析プログラム群KPGを、ステップSH1で特定したレコードが格納する印刷テキストデータに適用する(ステップSI2)。そして、設定部404は、項目ごとに解析成功率を算出する(ステップSH4)。
次いで、設定部404は、項目ごとに算出した解析成功率と所定の閾値とを比較し、解析成功率が所定の閾値を下回る項目が有るか否かを判別する(ステップSH5)。設定部404は、解析成功率が所定の閾値を下回る項目が有ると判別した場合(ステップSH5:YES)、ステップSH6の処理を実行する。すなわち、設定部404は、印刷テキストデータに適用していない解析プログラム群KPGがあると判定した場合(ステップSH6:YES)、処理をステップSI2に戻し、既に適用した解析プログラム群KPGを適用対象外として、次に採用率が高い1の解析プログラム群KPGを、印刷テキストデータに適用し、項目ごとに解析成功率を算出する(ステップSH4)。一方で、設定部404は、解析成功率が所定の閾値を下回る項目がない、すなわち、全ての項目について解析成功率が所定の閾値以上であると判別した場合(ステップSH5:NO)、ステップSI2で適用した解析プログラム群KPGを、解析部402がテキストデータ解析処理に使用する解析プログラム群KPGとして設定する(ステップSH7)。
このように、設定部404は、解析プログラム群KPGの採用率の高い順、すなわち、解析プログラム群KPGに対応付く印刷装置12、又は、POS端末13の数が多い順に解析プログラム群KPGを適用する。そして、設定部404は、全ての項目について解析成功率が所定の閾値以上と判別された解析プログラム群KPGをテキストデータ解析処理に使用する解析プログラム群KPGとして設定する。そのため、設定部404は、適切なセット解析ルールの解析プログラム群KPGを、印刷装置12、又は、POS端末に対応付けて設定できる。特に、第2の選択設定処理では、解析プログラム群KPGの採用率の高い順に解析プログラム群KPGを適用していき、設定する解析プログラム群KPGを選択する。採用率が高い解析プログラム群KPGとは、印刷テキストデータの解析に際し利用される度合いが高い解析プログラム群KPGであることを示している。したがって、設定部404は、採用率が高い順に解析プログラム群KPGを適用していくことで、設定までに要する時間を短縮できる蓋然性が高い。つまり、設定部404は、効率よく解析プログラム群KPGを選択して設定できる。
<第3の選択設定処理>
次に、第3の選択設定処理について説明する。
図15は、第3の選択設定処理における設定部404の動作を示すフローチャートFJである。
図15のフローチャートFJにおいて、図13のフローチャートFHと同一のステップについては、同一のステップ番号を付し、その詳細な処理の説明を省略する。
第3の選択設定処理では、ある1の印刷装置12のシリアル番号J11に対応付く解析プログラム群KPG、または、当該ある1の印刷装置12に接続するPOS端末13に対応付く解析プログラム群KPGに対して処理するものとする。
また、第3の選択設定処理では、解析プログラム群KPGを設定する対象の印刷装置12、又は、当該印刷装置12と接続するPOS端末13の少なくともいずれかを所有する所有者を識別する所有者識別情報J18(図16参照)を制御サーバー15が取得しているものとする。ここでいう所有者とは、店舗を経営するオーナーや、店舗を管理する企業等を示す。例えば、印刷装置記憶部32には予め印刷装置12を所有する所有者の所有者識別情報J18が記憶されており、印刷装置制御部30は、印刷テキストデータを制御サーバー15に送信する際、所有者識別情報J18を付加して送信する。これにより、制御サーバー15は、所有者識別情報J18を取得する。
設定部404は、レコードを特定すると、所有者登録データベース424を参照し、所有者識別情報J18を格納するレコードを、所定の順で並び変える(ステップSJ1)。ここでの所定の順は、所有者登録データベース424への登録時期の順でも、対応付く解析プログラム群KPGの採用率が高い順でもよい。
図16は、所有者登録データベース424の1件のレコードが有する情報を模式的に示す図である。
図16に示すように、所有者登録データベース424の1件のレコードは、所有者識別情報J18と、セット識別情報J13とを有する。つまり、所有者登録データベース424は、所有者と解析プログラム群KPGとを管理している。なお、本実施形態の所有者登録データベース424は、同じ所有者でも解析プログラム群KPGが異なれば、別レコードとして管理する。所有者登録データベース424は、所有者と解析プログラム群KPGとを管理しているため、1のレコードの解析プログラム群KPGに対応付いて設定される印刷装置12、又は、POS端末13は、対象印刷装置、又は、対象POS端末とは限らず所有者が共通する他の印刷装置12、又は、POS端末13である場合もある。
次いで、設定部404は、所有者登録データベース424に登録される解析プログラム群KPGについて所定の順にレコードの並び変えを実行すると、並び替えた順、すなわち、所定の順に1のレコードが格納する解析プログラム群KPGを、ステップSH1で特定したレコードが格納する印刷テキストデータに適用する(ステップSJ2)。例えば、所定の順が、所有者登録データベース424への登録時期の順である場合、設定部404は、登録時期が新しい順に1の解析プログラム群KPGを印刷テキストデータに適用する。そして、設定部404は、項目ごとに解析成功率を算出する(ステップSH4)。
次いで、設定部404は、項目ごとに算出した解析成功率と所定の閾値とを比較し、解析成功率が所定の閾値を下回る項目が有るか否かを判別する(ステップSH5)。設定部404は、解析成功率が所定の閾値を下回る項目が有ると判別した場合(ステップSH5:YES)、ステップSH6の処理を実行する。すなわち、設定部404は、印刷テキストデータに適用していない解析プログラム群KPGがあると判定した場合(ステップSH6:YES)、処理をステップSJ2に戻し、既に適用した解析プログラム群KPGを適用対象外として、次に所定の順の順位が高い1の解析プログラム群KPGを、印刷テキストデータに適用し、項目ごとに解析成功率を算出する(ステップSH4)。一方で、設定部404は、解析成功率が所定の閾値を下回る項目がない、すなわち、全ての項目について解析成功率が所定の閾値以上であると判別した場合(ステップSH5:NO)、ステップSJ2で適用した解析プログラム群KPGを、解析部402がテキストデータ解析処理に使用する解析プログラム群KPGとして設定する(ステップSH7)。
このように、設定部404は、所有者識別情報J18が示す所有者が共通する解析プログラム群KPGを適用し、全ての項目について解析成功率が所定の閾値以上である判別された解析プログラム群KPGをテキストデータ解析処理に使用する解析プログラム群KPGとして設定する。つまり、設定部404は、対象印刷装置、又は、対象POS端末に対し解析プログラム群KPGを設定する際、所有者が共通する他の印刷装置12、又は、POS端末13に対応付く解析プログラム群KPGを適用して設定する。そのため、設定部404は、適切なセット解析ルールの解析プログラム群KPGを、印刷装置12、又は、POS端末13に対応付けて設定できる。特に、第3の選択設定処理では、所有者が共通する他の印刷装置12、又は、POS端末13に対応付く解析プログラム群KPGを優先して適用していき、設定する解析プログラム群KPGを選択する。所有者が共通する場合、対象印刷装置から発行されるレシートのレイアウトは、他の印刷装置12から発行されるレシートのレイアウトと同じに設定される蓋然性が高い。そこで、設定部404は、所有者が共通する他の印刷装置12、又は、POS端末13に対応付く解析プログラム群KPGを優先して適用していくことで、設定に要する時間を短縮できる蓋然性が高い。つまり、設定部404は、効率よく解析プログラム群KPGを選択して設定できる。
<第4の選択設定処理>
次に、第4の選択設定処理について説明する。
図17は、第4の選択設定処理における設定部404の動作を示すフローチャートFKである。
図17のフローチャートFKにおいて、図13のフローチャートFHと同一のステップについては、同一のステップ番号を付し、その詳細な処理の説明を省略する。
第4の選択設定処理では、ある1の印刷装置12のシリアル番号J11に対応付く解析プログラム群KPG、又は、当該ある1の印刷装置12と接続するPOS端末13に対応する解析プログラム群KPGに対して処理するものとする。
また、第4の選択設定処理では、解析プログラム群KPGを設定する印刷装置12と接続するPOS端末13について、種類を示す種類情報J19を制御サーバー15が取得しているものとする。種類情報J19とは、POS端末13の機種を示す機種情報、又は、POS端末13の属性を示す属性情報である。属性とは、例えば、タブレット型やデスクトップ型等の形態が一例として挙げ得られる。例えば、印刷装置記憶部32には予め種類情報J19が記憶されており、印刷装置制御部30は、印刷テキストデータを制御サーバー15に送信する際、種類情報J19を付加して送信する。これにより、制御サーバー15は、種類情報J19を取得する。
設定部404は、レコードを特定すると、種類登録データベース425を参照し、取得した種類情報J19と共通する種類情報J19を格納するレコードを、所定の順で並び替える(ステップSK1)。ここでの所定の順は、種類登録データベース425への登録時期の順でも、対応付く解析プログラム群KPGの採用率が高い順でもよい。
図18は、種類登録データベース425の1件のレコードが有する情報を模式的に示す図である。
図18に示すように、種類登録データベース425の1件のレコードは、種類情報J19と、セット識別情報J13とを有する。つまり、種類登録データベース425は、POS端末13の種類と解析プログラム群KPGとを管理している。なお、本実施形態の種類登録データベース425は、同じ種類でも解析プログラム群KPGが異なれば、別レコードとして管理する。種類登録データベース425は、POS端末13の種類と解析プログラム群KPGとを管理しているため、1のレコードの解析プログラム群KPGに対応付いて設定される印刷装置12、又は、POS端末13は、対象印刷装置、又は、対象POS端末とは限らず種類が共通する他の印刷装置12、又は、POS端末13である場合もある。
次いで、設定部404は、種類登録データベース425に登録される解析プログラム群KPGについて所定の順にレコードの並び変えを実行すると、並び替えた順、すなわち、所定の順に1のレコードが格納する解析プログラム群KPGを、ステップSH1で特定したレコードが格納する印刷テキストデータに適用する(ステップSK2)。例えば、所定の順が、種類登録データベース425への登録時期の順である場合、設定部404は、登録時期が新しい順に1の解析プログラム群KPGを印刷テキストデータに適用する。そして、設定部404は、項目ごとに解析成功率を算出する(ステップSH4)。
次いで、設定部404は、項目ごとに算出した解析成功率と所定の閾値とを比較し、解析成功率が所定の閾値以下となる項目が有るか否かを判別する(ステップSH5)。設定部404は、解析成功率が所定の閾値以下となる項目が有ると判別した場合(ステップSH5:YES)、ステップSH6の処理を実行する。すなわち、設定部404は、印刷テキストデータに適用していない解析プログラム群KPGがあると判定した場合(ステップSH6:YES)、処理をステップSK2に戻し、既に適用した解析プログラム群KPGを適用対象外として、次に所定の順の順位が高い1の解析プログラム群KPGを、印刷テキストデータに適用し、項目ごとに解析成功率を算出する(ステップSH4)。一方で、設定部404は、解析成功率が所定の閾値以下となる項目がない、すなわち、全ての項目について解析成功率が所定の閾値を上回ると判別した場合(ステップSH5:NO)、ステップSJ2で適用した解析プログラム群KPGを、解析部402がテキストデータ解析処理に使用する解析プログラム群KPGとして設定する(ステップSH7)。
このように、設定部404は、種類情報J19が共通する解析プログラム群KPGを適用し、全ての項目について解析成功率が所定の閾値を上回ると判別された解析プログラム群KPGをテキストデータ解析処理に使用する解析プログラム群KPGとして設定する。つまり、設定部404は、対象印刷装置、又は、対象POS端末に対して解析プログラム群KPGを設定する際、種類が共通する他の印刷装置12、又は、POS端末13に対応付く解析プログラム群KPGを適用して設定する。そのため、設定部404は、適切なセット解析ルールの解析プログラム群KPGを、印刷装置12、又は、POS端末に対応付けて設定できる。特に、第4の選択設定処理では、種類が共通する他の印刷装置12、又は、POS端末13に対応付く解析プログラム群KPGを優先して適用していき、設定する解析プログラム群KPGを選択する。例えば、フランチャイズ形態で複数店舗を経営する企業がある場合、店舗に配置されるPOS端末13は、種類(機種、又は、属性)が共通する蓋然性が高い。そこで、設定部404は、種類が共通する他の印刷装置12、又は、POS端末13に対応付く解析プログラム群KPGを優先して適用していくことで、設定に要する時間を短縮できる蓋然性が高い。つまり、設定部404は、効率よく解析プログラム群KPGを選択して設定できる。
<第5の選択設定処理>
次に、第5の選択設定処理について説明する。
図19は、第5の選択設定処理における設定部404の動作を示すフローチャートFLである。
第5の選択設定処理では、ある1の印刷装置12のシリアル番号J11に対応付く解析プログラム群KPG、又は、当該ある1の印刷装置12に接続するPOS端末13に対応付く解析プログラム群KPGに対して処理するものとする。
設定部404は、解析データ管理データベース422から、特定の期間内に、検知部403によりセット解析ルールの変更が要すると検知された印刷装置12から取得した印刷テキストデータを格納するレコードを、1又は複数特定する(ステップSL1)。設定部404は、当該ある印刷装置12を示すシリアル番号J11、及び、所定の期間内に対応する発行日時を示す発行日時情報J5を格納するレコードを、解析データ管理データベース422から特定する。なお、1のレコードを特定する場合、設定部404は、特定の期間内において最新の発行日時を示す発行日時情報J5が対応付くレコードを特定することが好ましい。
次いで、設定部404は、レコードを特定すると、特定したレコードが格納する印刷テキストデータに対して適用する解析プログラム群KPGを、解析プログラム群登録データベース423から1つ特定する(ステップSL2)。次いで、設定部404は、特定した1の解析プログラム群KPGを印刷テキストデータに適用し(ステップSL3)、項目ごとに解析成功率を算出する(ステップSL4)。
次いで、設定部404は、印刷テキストデータに対して、解析プログラム群管理データベース421に格納される解析プログラム群KPGを全て適用したか否かを判別する(ステップSL5)。設定部404は、全て適用していないと判別した場合(ステップSL5:NO)、処理をステップSL2に戻し、印刷テキストデータに適用していない1の解析プログラム群KPGを特定し、ステップSL3以降の処理を実行する。
一方で、設定部404は、全て適用したと判別した場合(ステップSL5:YES)、最も解析成功率が高い解析プログラム群KPGを、解析部402がテキストデータ解析処理に使用する解析プログラム群KPGとして設定する(ステップSL6)。例えば、設定部404は、項目ごとに算出した解析成功率を全て加算し、複数の解析プログラム群KPGの内、最も加算した解析成功率の値が高い解析プログラム群KPGを、解析部402がテキストデータ解析処理に使用する解析プログラム群KPGとして設定する。
このように、設定部404は、全ての解析プログラム群KPGを適用させ、最も解析成功率が高い解析プログラム群KPGを、テキストデータ解析処理に使用する解析プログラム群KPGとして設定する。そのため、設定部404は、適切なセット解析ルールの解析プログラム群KPGを、確実に、印刷装置12、又は、POS端末に対応付けて設定できる。
以上のように、制御サーバー制御部40は、検知処理、及び、選択設定処理を実行することで、制御サーバー15に関するユーザーの操作を必要とせず、適切なセット解析ルールの解析プログラム群KPGを設定できる。これにより、店舗システム11においてシステム変更やレシートのレイアウト変更が行われた場合でも、制御サーバー15は、速やかに且つ自動的に、適切なセット解析ルールの解析プログラム群KPGを、印刷装置12、又は、POS端末13ごとに対応付けできる。そのため、制御サーバー15は、システム変更やレシートのレイアウト変更が行われた場合でも、例えば、店舗を経営するオーナーや店舗の責任者等のユーザーに、ユーザーが必要とする情報を提供できる。
以上では、検知処理について、第1の検知処理~第3の検知処理を説明し、選択設定処理について、第1の選択設定処理~第5の選択設定処理を説明した。図9の動作を実行する際の検知処理と選択設定処理との組み合わせは、どのような組み合わせでよい。なお、ここでいう組み合わせとは、検知処理、又は、選択設定処理を実行しないことも組み合わせに含まれる。以下に組み合わせについて、複数例示する。
<第1の組み合わせ>
第1の組み合わせは、制御サーバー15が図8の動作において、第2の検知処理を実行し、第1の選択設定処理を実行する組み合わせである。
すなわち、検知部403は、解析成功率の変化、又は、解析成功率に基づいて、対象印刷装置、又は、対象POS端末に対応する解析プログラム群KPGのセット解析ルールの変更を検知する。そして、検知部403がセット解析ルールの変更を要すると検知した場合、設定部404は、解析プログラム群登録データベース423に登録された登録時期の順に解析プログラム群KPGを適用し、解析プログラム群KPGを設定する。これにより、制御サーバー15は、検知処理、及び、選択設定処理のそれぞれにおいて、上述した効果を奏し、また、制御サーバー15に関するユーザーの操作を必要とすることなく、適切なセット解析ルールの解析プログラム群KPGを対象印刷装置、又は、対象POS端末に設定できる。
<第2の組み合わせ>
第2の組み合わせは、制御サーバー15が図8の動作において、第1の検知処理を実行し、第2の選択設定処理を実行する組み合わせである。
すなわち、検知部403は、印刷テキストデータにおける項目の配置、又は、項目値の配置の変化に基づいて、対象印刷装置、又は、対象POS端末に対応する解析プログラム群KPGのセット解析ルールの変更を検知する。そして、検知部403がセット解析ルールの変更を要すると検知した場合、設定部404は、採用率の高い順に解析プログラム群KPGを適用し、解析プログラム群KPGを設定する。これにより、制御サーバー15は、検知処理、及び、選択設定処理のそれぞれにおいて、上述した効果を奏し、また、制御サーバー15に関するユーザーの操作を必要とすることなく、適切なセット解析ルールの解析プログラム群KPGを対象印刷装置、又は、対象POS端末に設定できる。
<第3の組み合わせ>
第3の組み合わせは、制御サーバー15が図8の動作において、第1の検知処理を実行し、第5の選択設定処理を実行する組み合わせである。
すなわち、検知部403は、印刷テキストデータにおける項目の配置、又は、項目値の配置の変化に基づいて、対象印刷装置、又は、対象POS端末に対応する解析プログラム群KPGのセット解析ルールの変更を検知する。そして、検知部403がセット解析ルールの変更を要すると検知した場合、設定部404は、全ての解析プログラム群KPGを適用し、解析成功率が最も高い解析プログラム群KPGを設定する。これにより、制御サーバー15は、検知処理、及び、選択設定処理のそれぞれにおいて、上述した効果を奏し、また、制御サーバー15に関するユーザーの操作を必要とすることなく、適切なセット解析ルールの解析プログラム群KPGを対象印刷装置、又は、対象POS端末に設定できる。
<第4の組み合わせ>
第4の組み合わせは、制御サーバー15が図8の動作において、検知処理を実行せず、第3の選択設定処理を実行する組み合わせである。この組み合わせの場合、制御サーバー15は、ステップSD1~ステップSD3の処理をスキップして、ステップSD4の処理のみ実行する。
第4の組み合わせの実行する態様では、ある店舗において店舗システム11のシステム変更があり、店舗を形成するオーナーから制御サーバー15に関するユーザーに対して、システム変更を行った旨の連絡があった場合が挙げられる。
この場合、検知部403は、セット解析ルールの変更の検知を実行する必要がないため検知処理をスキップする。そして、設定部404は、所有者識別情報J18が示す所有者が共通する解析プログラム群KPGを適用し、全ての項目について解析成功率が所定の閾値以上である判別された解析プログラム群KPGをテキストデータ解析処理に利用する解析プログラム群KPGとして設定する。これにより、制御サーバー15は、選択設定処理において、上述した効果を奏し、また、制御サーバー15に関するユーザーの操作を必要とすることなく、適切なセット解析ルールの解析プログラム群KPGを対象印刷装置、又は、対象POS端末に設定できる。
以上、説明したように、制御サーバー15(情報処理装置)は、ロール紙(印刷媒体)に所定のレイアウトに従って印刷される複数の項目の項目値が、所定のレイアウトに対応するテキストデータとして含まれる印刷テキストデータ(対象データ)を取得する取得部401と、取得部401により取得された印刷テキストデータに対し、検索対象の項目に対応付けて設定されたセット解析ルール(ルール)に従って検索対象の項目の項目値を検索する検索処理を行う解析部402(制御部)と、解析部402に対し設定されたセット解析ルールの変更を検知する検知部403と、セット解析ルールの変更を報知する制御サーバー表示部43(報知部)、又は、制御サーバーネットワーク通信部41(報知部)の少なくともいずれかと、を備える。この構成によれば、項目値を検索するセット解析ルールの変更を検知してセット解析ルールの変更を報知するため、制御サーバー15に関わるユーザーに、セット解析ルールの変更を要することを認識させることができる。
また、検知部403は、ある発行日時に取得部401により取得された印刷テキストデータの特徴量を取得し(特徴を検出し)、取得した特徴量を、当該ある発行日時よりも以前に取得部401により取得された印刷テキストデータの特徴量と比較することにより、セット解析ルールの変更を検知する。この構成によれば、ある発行日時に取得された印刷テキストデータの特徴量と、当該ある発行日時よりも以前に取得された印刷テキストデータの特徴量とを比較するため、経時的な特徴の変化に基づいて、セット解析ルールの変更を的確に検知できる。
また、検知部403は、印刷テキストデータに含まれる項目の配置または項目値の配置が変化した場合に、セット解析ルールの変更を検知する。この構成によれば、印刷テキストデータに含まれる項目の配置、又は、項目値の配置が変化した場合にセット解析ルールの変更を検知するため、セット解析ルールの変更を的確に検知できる。
また、検知部403は、印刷テキストデータに含まれる複数の前記項目のうち少なくとも一部の項目について、項目に対応付けて設定された解析ルールの変更を検知する。この構成によれば、複数の項目のうち少なくとも一部の項目について、項目に対応付けて設定された解析ルールの変更を検知するため、レイアウトが一部変更された場合でもセット解析ルールの変更を的確に検知できる。
また、解析部402は、印刷テキストデータに含まれる項目値を検索することにより、印刷テキストデータの種別の判定、及び、項目毎の項目値の集計または解析の少なくともいずれかを含む検索処理を実行する。検知部403は、解析部402が検索処理に成功した割合または割合の変化に基づいて、セット解析ルールの変更を検知する。この構成によれば、解析部402が検索処理に成功した割合または割合の変化に基づいて、セット解析ルールの変更を検知するため、セット解析ルールの変更を的確に検知できる。
また、制御サーバー15は、解析部402が検索処理を実行した結果を示す解析データ管理データベース422(履歴情報)を記憶する制御サーバー記憶部42(記憶部)を備える。検知部403は、制御サーバー記憶部42に記憶される解析データ管理データベース422に基づいて、セット解析ルールの変更を検知する。この構成によれば、制御サーバー記憶部42に記憶される解析データ管理データベース422に基づいて、セット解析ルールの変更を検知するため、検知に際して過去の解析結果を加味することができ、セット解析ルールの変更を的確に検知できる。
また、取得部401は、印刷テキストデータを出力するPOS端末13(デバイス)を識別して印刷テキストデータを取得する。解析部402は、印刷テキストデータを出力したPOS端末13と検索対象の項目とに対応付けて設定されたセット解析ルールに従って、検索対象の項目の項目値を検索する検索処理を行う。検知部403は、検索処理が行われた印刷テキストデータを出力したPOS端末13に対応して設定されたセット解析ルールの変更を検知する。この構成によれば、POS端末13に対応して設定されセット解析ルールの変更を検知するため、POS端末13毎にセット解析ルールの変更を的確に検知できる。
また、検知部403は、取得部401が取得した印刷テキストデータにPOS識別情報(デバイス識別情報)が付加される場合に、印刷テキストデータに付加されるPOS識別情報J16の変化に基づき、セット解析ルールの変更を検知する。この構成によれば、印刷テキストデータに付加されるPOS識別情報J16の変化に基づきセット解析ルールの変更を検知するため、印刷テキストデータを出力するPOS端末13が変更された場合でも、セット解析ルールの変更を的確に検知できる。
制御サーバー15は、ロール紙に所定のレイアウトに従って印刷される複数の項目の項目値が、所定のレイアウトに対応するテキストデータとして含まれる印刷テキストデータを取得する取得部401と、取得部401により取得された印刷テキストデータに対し、検索対象の項目に対応付けて設定されたセット項目ルールに従って検索対象の項目の項目値を検索する検索処理を行う解析部402と、解析部402に対し設定可能な複数のセット解析ルールが登録され、登録されたセット解析ルールを読み出し可能に保持する制御サーバー記憶部42(ルール保持部)と、制御サーバー記憶部42が保持するセット解析ルールのいずれかを選択して、解析部402に設定する設定部404と、を備える。この構成によれば、登録されたセット解析ルールを読み出し可能な制御サーバー記憶部42から保持するセット解析ルールのいずれかを選択して設定するため、制御サーバー15のテキストデータ解析処理(解析)に対して適切なセット解析ルールを設定できる。
また、取得部401は、印刷テキストデータを出力するPOS端末13を識別して印刷テキストデータを取得する。解析部402は、POS端末13と印刷テキストデータの項目とに対応付けて設定されたセット解析ルールに従って検索処理を行う。設定部404は、制御サーバー記憶部42が保持するセット解析ルールのいずれかを選択して、解析部402に対し、POS端末13と印刷テキストデータの項目とに対応付けて設定する。この構成によれば、設定部404が、制御サーバー記憶部42が保持するセット解析ルールのいずれかを選択して、POS端末13と印刷テキストデータの項目とに対応付けて設定するため、POS端末13が出力する印刷テキストデータに対して適切なセット解析ルールを設定できる。
また、設定部404は、制御サーバー記憶部42に保持されるセット解析ルールを、制御サーバー記憶部42に登録された登録時期(時期)の順に選択する。この構成によれば、設定部404は、セット解析ルールを、登録時期の順に選択するため、設定するセット解析ルールを効率よく選択できる。これにより、設定部404は、設定に要する時間を短縮できる。
また、設定部404は、制御サーバー記憶部42に登録されたセット解析ルールを、解析部402で設定されたPOS端末13の数が多い(すなわち、採用率が高い)セット解析ルールの順に、選択する。この構成によれば、セット解析ルールを、解析部402で設定されたPOS端末13の数が多いルールの順に選択するため、設定部404は、設定するセット解析ルールを効率よく選択できる。これにより、設定部404は、設定に要する時間を短縮できる。
また、設定部404は、POS端末13に対応付けてセット解析ルールを設定する場合に、対象POS端末の所有者が共通する他のPOS端末13に対応付けて設定されているセット解析ルールを選択する。この構成によれば、POS端末13の所有者が共通する他のPOS端末13に対応付けて設定されているセット解析ルールを選択するため、設定部404は、設定するセット解析ルールを効率よく選択できる。これにより、設定部404は、設定に要する時間を短縮できる。
また、設定部404は、POS端末13に対応付けてセット解析ルールを設定する場合に、対象POS端末と機種または属性が共通する他のPOS端末13に対応付けて設定されたセット解析ルールを選択する。この構成によれば、対象POS端末の機種または属性が共通する他のPOS端末13に対応付けて設定されたセット解析ルールを選択するため、設定するセット解析ルールを効率よく選択できる。これにより、設定部404は、設定に要する時間を短縮できる。
また、制御サーバー15は、解析部402に対して設定されたセット解析ルールの変更を検知する検知部403を備える。設定部404は、検知部403によりセット解析ルールの変更を検知された場合に、セット解析ルールを選択して解析部402に設定する。この構成よれば、検知部403によりセット解析ルールの変更を検知した場合に、セット解析ルールを選択して解析部402に設定するため、不必要にセット解析ルールが設定されることがなく、確実に制御サーバー15の解析に対して適切なセット解析ルールを設定できる。
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、解析プログラム群KPGが検索する項目は、上述したものに限定されない。解析プログラム群KPGが検索する項目は、上述した項目の他に、例えば、会計を行った顧客の識別情報が項目値として対応付く顧客識別情報項目や、払い戻しの有無を示す情報が項目値として対応付く払戻有無情報項目、支払方法を示す情報が項目値として対応付く支払方法情報項目等を含んでもよい。この場合、解析プログラム群KPGは、対応する項目の解析プログラムKPを含んで構成される。また、解析プログラム群KPGが含む解析プログラムKPの数は、必ずしも8つに限定されず、解析プログラム群KPGに応じて異なってもよい。また、解析プログラム群KPGが含む解析プログラムKPの種類は、解析プログラム群KPGに応じて異なってもよい。
また、例えば、上述した実施形態では、解析プログラム群KPG単位で、印刷装置12、又は、POS端末13に対応付く解析プログラム群KPGを変更する構成を説明したが、解析プログラム群KPGが有する解析プログラムKP単位で変更する構成でもよい。
また、例えば、上述した制御サーバー15の制御方法(情報処理装置の制御方法)が、制御サーバー15が備えるコンピューター、又は、制御サーバー15に接続される外部装置を用いて実現される場合、本発明を、当該方法を実現するためにコンピューターが実行するプログラム、このプログラムをコンピューターで読み取り可能に記録した記録媒体、或いは、このプログラムを伝送する伝送媒体の態様で構成することも可能である。上記記録媒体としては、磁気的、光学的記録媒体又は半導体メモリーデバイスを用いることができる。具体的には、フレキシブルディスク、HDD(Hard Disk Drive)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、Blu-ray(登録商標)Disc、光磁気ディスク、フラッシュメモリー、カード型記録媒体等の可搬型の、或いは固定式の記録媒体が挙げられる。また、上記記録媒体は、制御サーバー15や、制御サーバー15に接続された外部装置が備える内部記憶装置であるRAM(Random Access Memory)、ROM(Read Only Memory)、HDD等の不揮発性記憶装置でもよい。
また、例えば、図3、図9、図10、図11、図12、図13、図14、図15、図17、及び、図19の処理単位は、POS端末13、印刷装置12、制御サーバー15の処理を理解容易にするために、主な処理内容に応じて分割したものであり、処理単位の分割の仕方や名称によって、本発明が限定されることはない。処理内容に応じて、されに多くの処理単位に分割してもよい。また、1つの処理単位がさらに多くの処理を含むように分割してもよい。
また、図2に示した各機能部は機能的構成を示すものであって、具体的な実装形態は特に限定されない。つまり、必ずしも各機能部に個別に対応するハードウェアが実装される必要はなく、一つのプロセッサーがプログラムを実行することで複数の機能部の機能を実現する構成とすることも勿論可能である。また、上述した実施形態においてソフトウェアで実現される機能の一部をハードウェアとしてもよく、或いは、ハードウェアで実現される機能の一部をソフトウェアで実現してもよい。その他、POS端末13、印刷装置12、及び、制御サーバー15の他の各部の具体的な細部構成についても、本発明の趣旨を逸脱しない範囲で任意に変更可能である。