(57)【要約】【課題】スマートメータの導入により、３０分ごとの検針値の導入が可能となる。そのため、時間帯によって単価を変化させるなど、より多種多様な料金プランが提供されると考えられる。料金プランごとに料金計算テーブルを１つ用意すると、料金取得のための引数の次元が増えることで、料金計算テーブルのデータ量が増大する。また、料金プランが追加される度、新たな料金計算テーブルが必要となる。そのため、ハンディターミナル等容量の小さい媒体での適用が困難となる。【解決手段】そこで本願発明では、料金計算ロジックを分割し、複数を組合せることで料金計算結果を取得する。料金プランが異なる場合であっても、基本料金、従量料金（単価×使用量）という単位に分割することによって、結果の一部を共通化することが可能となる。よって、料金計算テーブルを分割した単位で保持し、それらを足し合わせることで料金計算結果の取得を可能とする。【選択図】図１
2013105405.tif 000002
【特許請求の範囲】
【請求項１】
料金計算サーバとネットワークで接続された携帯可能なハンディターミナルを用いて料金計算を行なう料金計算方法であって、
前記料金計算サーバにて、料金プランと料金単価とを備える料金計算テーブルから、前記ハンディターミナルが対象とする顧客に関する情報を抽出する抽出ステップと、
当該抽出した情報を前記ハンディターミナルに送信する送信ステップと、
前記ハンディーターミナルにて、前記抽出した情報に基づいて料金計算を実行する計算ステップと、
を備えることを特徴とする料金計算方法。
【請求項２】
請求項１に記載の料金計算方法において、
前記料金プランは、複数の計算プランの組み合わせであり、前記計算ステップは、前記料金プランに関連する複数の計算プランを順次計算することで、前記料金計算を実行することを特徴とする料金計算方法。
【請求項３】
請求項２に記載の料金計算方法において、
前記計算プランは、複数の前記料金プランに関連付けられていることを特徴とする料金計算方法。
【請求項４】
請求項３に記載の料金計算方法において、
前記複数の計算プランには計算する順序が定められており、前記計算ステップは、当該順序に基いて前記料金計算を実行することを特徴とする料金計算方法。
【請求項５】
料金計算サーバと、携帯可能なハンディターミナルと、当該料金計算サーバと当該ハンディターミナルとを接続するネットワークと、を備えた料金計算システムであって、
前記料金計算サーバは、
料金プランと料金単価とを備える料金計算テーブルを格納する記憶部と、
前記料金計算テーブルから、前記ハンディターミナルが対象とする顧客に関する情報を抽出するダウンロード用料金計算テーブル作成処理部と、
前記抽出した情報を前記ハンディターミナルに送信する送信部と、を備え、
前記ハンディターミナルは、
前記送信された情報を格納する記憶部と、
前記送信された情報に基づき料金計算を実行する実行処理部と、を備え、
ることを特徴とする料金計算システム。
【請求項６】
請求項５に記載の料金計算システムにおいて、
前記料金プランは、複数の計算プランの組み合わせであり、前記実行処理部は、前記料金プランに関連する複数の計算プランを順次計算することで、前記料金計算を実行することを特徴とする料金計算システム。
【請求項７】
請求項６に記載の料金計算システムにおいて、
前記計算プランは、複数の前記料金プランに関連付けられていることを特徴とする料金計算システム。
【請求項８】
請求項７に記載の料金計算システムにおいて、
前記複数の計算プランには計算する順序が定められており、前記実行処理部は、当該順序に基いて前記料金計算を実行することを特徴とする料金計算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
電気・ガスなどの料金計算を行う技術。特に、ハンディターミナルへの適用を考慮した料金計算技術である。
【背景技術】
【０００２】
電気・ガスの料金システムにおいては、各種関数の組合せで料金計算結果を算出するテーブルドリブンの形態が存在する。ただし、テーブルドリブンで定義した料金計算マスタ自体を各電気・ガス会社に配布すると、料金プランの追加・変更に対して迅速に対応することが難しかった。そこで、擬似入力情報から作成した料金計算結果のテーブルを各会社に配布することで、上記の問題を解決するシステムが提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2010-20507号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
スマートメータの導入により、３０分ごとの検針値の導入が可能となる。そのため、時間帯によって単価を変化させるなど、より多種多様な料金プランが提供されると考えられる。特許文献１では、料金プランごとに料金計算テーブルを１つ用意している。よって、料金取得のための引数の次元が増えることで、料金計算テーブルのデータ量が増大する。また、料金プランが追加される度、新たな料金計算テーブルが必要となる。そのため、データ量が増大し、ハンディターミナル等容量の小さい媒体での適用が困難となる。
【課題を解決するための手段】
【０００５】
そこで本願発明では、料金計算ロジックを分割し、複数を組合せることで料金計算結果を取得する。料金プランが異なる場合であっても、基本料金、従量料金（単価×使用量）という単位に分割することによって、結果の一部を共通化することが可能となる。よって、料金計算テーブルを分割した単位で保持し、それらを足し合わせることで料金計算結果の取得を可能とする。
【発明の効果】
【０００６】
本実施例によれば、１料金プランに対して、複数料金計算テーブルを定義することで、例えば平日使用量と休日使用量が入力として存在する場合に、平日料金の入力引数には平日使用量、休日料金の入力引数には休日使用量というように、それぞれ関連する情報のみを引数に定義することができる。その結果、料金計算テーブルのデータ量を削減することできる。ひいては、別料金プラン同士で料金計算テーブルの共通化を行ったり、新たな料金プランが追加された場合でも、既に存在する料金計算テーブルを利用することで、データ量削減が可能となり、容量、処理能力の低いハンディターミナル等で使用することができる。
【図面の簡単な説明】
【０００７】
【図１】実施例における料金計算システムのハードウエア構成図。
【図２】料金計算テーブル作成処理におけるフローチャート。
【図３】計算対象料金プラン定義テーブルの例。
【図４】料金系計算テーブル定義情報の例。
【図５（Ａ）】料金計算テーブル（RYOKIN01  平日基本料金）の例。
【図５（Ｂ）】料金計算テーブル（RYOKIN01  平日単価）の例。
【図５（Ｃ）】料金計算テーブル（RYOKIN01  従量料金）の例。
【図６】ダウンロード用料金計算テーブル作成のフローチャート。
【図７】計算対象特定テーブルの例。
【図８】料金計算テーブル（RYOKIN02,03  従量料金）の２次元配列イメージ。
【図９】料金取得処理におけるフローチャート。
【図１０】公知技術と本実施例の効果の比較（料金計算テーブルレコード件数）。
【図１１（Ａ）】単価マスタ（昼間基本料金）の例。
【図１１（Ｂ）】単価マスタ（昼間単価）の例。
【図１２】料金計算ルールテーブルの例
【図１３】単価マスタの例
【発明を実施するための形態】
【０００８】
以下、図面を用いて本発明に関する実施の形態を説明する。
【実施例１】
【０００９】
図１に示すように料金計算システムは、DBサーバ20に接続されたバッチサーバ10と利用企業側の料金計算システム30とをネットワーク40を介して接続することで構成する。ここで、料金計算システム30（料金計算サーバ）は会社毎に複数設けることができる。
【００１０】
パッケージ開発会社等が所有するバッチサーバ10は、料金計算テーブル作成処理部100を有し、DBサーバ内の各種テーブルに対してデータの読み込み、書き込みを実行し、セカンダリテーブルと、セカンダリテーブルから一部データを抽出した検索用テーブルとからなるA社用料金計算テーブル311を作成する。DBサーバはネットワーク40を用いて作成したA社用料金計算テーブル311を料金計算システム30へ送信する。
【００１１】
DBサーバ20は、計算対象料金プラン定義テーブル201、料金計算テーブル定義情報202、料金計算単価テーブル203、料金計算ルールテーブル204、料金計算テーブル205、計算対象特定テーブル206を有する。
【００１２】
料金計算システム30は、CPUなどの演算装置300とハードディスクなどの記憶装置310と送受信装置320とを備える。演算装置300は各種プログラムを実行することにより、ダウンロード用料金計算テーブル作成処理部301と料金取得処理部302とを機能させる。記憶装置310には、バッチサーバ10から送信されたA社用料金計算テーブル311と、顧客情報312が格納されている。ここで、顧客情報は、顧客を示す顧客識別子と、この顧客が契約している料金プランを示す料金プランコードと、この顧客の情報を処理するハンディーターミナルを識別するハンディータミナル識別子とを備えている。送受信装置320は、バッチサーバ10との間で料金計算テーブルに関する情報の送受信、及びハンディータミナル50との間でダウンロード用料金計算テーブルに関する情報の送受信を行なう。ここで、ハンディータミナル50との間の通信は、ネットワーク60を用いて行なう。なお、通信に暗号処理などを適用することにより、ネットワーク40とネットワーク60を合わせて、ひとつのネットワークで実現してもよい。
【００１３】
ハンディータミナル50は、料金取得処理部を実現する演算装置500と、ダウンロード用料金計算テーブルを格納する記憶装置と、ダウンロード用料金計算テーブルに関する情報を料金計算システムとの間で送受信する送受信装置とを有する。
【００１４】
図２、図３、図４を用いて、バッチサーバの料金計算テーブル作成処理部による料金計算テーブルの作成処理について説明する。この料金計算テーブルの作成処理は、システム新規導入時や、料金プラン新規追加時、単価改定時に行う。例として、料金プランRYOKIN01を新規追加し、検索用とセカンダリテーブルを作成するための、基本料金取得用の料金計算テーブルの作成と、計算対象特定テーブルの更新処理を示す。
【００１５】
RYOKIN01は平日と休日の基本料金と従量料金から料金が算出される料金プランである。単価は、平日と休日それぞれに決められており、更に、基本料金と単価は地区と使用量によって変化する料金プランである。
【００１６】
まず、PLAN01(平日基本料金取得01）についてセカンダリテーブルを作成するため、基本料金取得用の料金計算テーブルの作成と、計算対象特定テーブルの更新を行う。擬似入力情報作成２−１では、計算対象料金プラン定義テーブル201からRYOKIN01の料金算出に必要な計算対象プランコード、計算順、返却値を取得する。料金計算テーブル定義情報202から、引数キー情報、閾値上限、閾値下限、固定値を取得し、入力パターンを網羅した擬似入力情報を作成する。料金計算処理２−４では、作成した擬似入力情報と料金計算単価テーブル203を元に、料金計算ルールテーブル204に定義した処理を実行し、擬似入力情報に対する実行結果の金額を算出する。料金計算ルールテーブルは図１２に示すように、実際に実行する関数と、関数に渡す引数が定義されており、関数内で図１３に示すような単価マスタから情報取得等の処理を行っている。
【００１７】
２−９料金計算テーブル作成処理では、擬似入力情報と２−４料金計算処理の結果から料金計算テーブル205を作成する。PLAN０１で、地区A、使用量1で料金計算を行った結果、基本料金が1000円となった場合、料金計算テーブルのキー１は「地区A」、キー２は「1」金額は「1000」というレコードを作成する。料金計算テーブルのキー１、キー２は擬似入力情報から作成するため、例えば、PLAN03について料金計算テーブルを作成する場合は、擬似入力情報は使用量と単価である。使用量は2、単価が110円で料金計算を行った結果、従量料金が220円だった場合、料金計算テーブルのキー１は「2」、キー２は「110」金額は「220」というレコードを作成する。同様に計算対象プランごとに、擬似入力情報全てについてレコードを作成する。本実施例では、複数料金プランで検索テーブルの共通化を行っているため、計算対象特定テーブル206に対し、セカンダリテーブルの対象範囲（開始位置、終了位置、対象行、対象列）を更新する必要がある。そのため、２−１１計算対象特定テーブル更新処理では料金計算テーブル定義情報の閾値上限、閾値加減、固定値を参照し、計算対象特定テーブル206の開始位置、終了位置、対象行、対象列を更新する。PLAN01のキーは地区と昼間使用量である。地区は地区A、地区B、地区Cをのいずれかを取る固定値であり、昼間使用量は1〜1000の範囲のいずれかを取る範囲値である。計算対象特定テーブルの開始位置は固定値の場合1つ目の値、範囲値の場合、閾値下限から値を取得する。PLAN01の場合、キー情報「地区」の固定値の１つ目の値である「地区A」とキー情報「昼間使用量」の閾値下限である「１」から開始位置には「地区A,１」を設定する。同様に、固定値の最後の値と閾値上限から、終了位置には「地区C,1000」を設定する。キーが固定値だった場合は、更に計算対象特定テーブルの対象行、対象列に項目を設定する。PLAN01は地区が固定値であるため、対象行に料金計算テーブル定義情報の固定値の内容「地区A,地区B、地区C」を設定する。これらの設定値は、ハンディターミナル等にダウンロードする料金計算テーブル作成時に使用するため、図６で詳細を説明する。
【００１８】
また、本願発明では、１料金プランにつき、複数の料金計算テーブルを保持するため、計算結果が次の料金計算テーブルの入力となる可能性がある。RYOKIN01では、PLAN02(平日単価取得01）の結果がPLAN03（従量料金算出）の入力となっている。 そのため、PLAN02(平日単価取得01）の結果で、PLAN03の料金計算テーブル定義情報の固定値の更新処理が必要となる。PLAN02の処理を例に説明する。PLAN02 はPLAN01と同様に２−１、２−４の処理を行う。そして、２−７の判定処理で計算対象料金プラン定義テーブルの返却値がWORKであるかどうか判定する。PLAN02の返却値はWORKであるため、定義情報更新処理２−８で202料金計算テーブル定義情報の更新を行う。図４に示した料金計算テーブル定義情報から「WORK1」が定義されているレコードを抽出する。PLAN03の固定値に「WORK１」が設定されているため、PLAN02の実行結果である単価（110、120、・・・、300）を、料金計算テーブル定義情報の「WORK１」が定義されている箇所に書込む。書込み後の料金計算テーブル定義情報を基に、PLAN01と同様の処理を行い、PLAN03の料金計算テーブルを作成する。作成される料金計算テーブル例の一部を図５に示す。平日基本料金の料金計算テーブルはキー１(地区)とキー２(使用量)から基本料金を取得するテーブルとなっている。平日単価も同様にキー１(地区)とキー２(使用量)から単価を取得するテーブルとなっている。平日従量料金は、キー１(使用量) とキー２(単価) から従量料金を取得するテーブルとなっている。休日料金に関しても同様のテーブルが作成される。
【００１９】
このデータパターンにおいて特許文献１の方式で料金計算テーブルを作成すると、「地区3パターン×平日使用量1000パターン×休日使用量1000パターン=3,000,000レコード」の設定が必要となる。
【００２０】
しかし、本願発明では、平日料金と休日料金を別々に求めることが出来るため、
「平日基本料金」は、地区3パターン×平日使用量1000パターン =  3,000レコード、
「平日単価」は、地区3パターン×平日使用量1000パターン =  3,000レコード、
「平日従量料金」は、単価15パターン  ×平日使用量１０００パターン  ＝  １５，０００レコード、
「休日基本料金」は、地区    ３パターン×休日使用量1000パターン =  3,000レコード、
「休日単価」は、地区  3パターン×休日使用量1000パターン =  3,000レコード、
「休日従量料金」は、単価15パターン  ×休日使用量1000パターン = 15,000レコード、
となり、合計42,000レコードと、およそ1.4%程度のデータ量で定義を行うことが出来る。
【００２１】
図１０は、時間帯によって単価を変える料金プランを仮定した場合の、本実施例を適用させた場合と、適用させなかった場合の比較説明グラフである。横軸は時間帯分割数を示している。ここで時間帯分割数とは、一日の間に存在する料金体系の数を指している。例えば、昼間と夜間で単価を変える場合は「２」となる。また2時間単位で単価を変える場合「１２」となる。縦軸は料金計算テーブルのレコード数を表わす。ある時間帯の基本料金、単価パターンを図１１に示す。基本料金、従量料金は地区（３パターン）と使用量（1〜100）によって定まり、１地区につき５パターンの単価が存在する。従量料金は単価×使用量で算出する。以上の前提において、図１０の通り、時間帯の分割数が多くなれば多くなるほど、本願発明のデータ量削減効果は大きくなる。
【００２２】
ハンディターミナルは容量が小さいため、作成した料金計算テーブルを全てダウンロードすることは困難である。そのため、ダウンロードするデータを選別する必要がある。
【００２３】
図６、図７、図８を用いてデータ選別処理について説明する。まず、検針範囲に存在する顧客の料金プランを取得し、図７の計算対象特定テーブルで料金対象プランコードをキーに、検索用テーブル、セカンダリテーブルのダウンロード対象を決定する（６−１）。例として、RYOKIN02とRYOKIN03の料金プランを契約している顧客が存在すると仮定する。つまり、PLAN11、12、13、14、15それぞれの検索用テーブルとセカンダリテーブルのダウンロードが必要となる。まずPLAN11について、セカンダリテーブルTABLE11が今回のダウンロード対象となる他料金プランで使用しているかを判定する（６−２）。ここで判定をセカンダリテーブルに限定しているのは、それぞれの料金プランコードによって、検索テーブルに退避したいレコードが異なり、検索テーブルを共通化してしまうとレスポンスの低下を招くためである。また、検索テーブルは、元々セカンダリテーブルから一部データを抜粋したものであり、共通化することによるデータ量削減効果も低いと考えられる。セカンダリテーブルは検索テーブルにデータが存在しない場合のみ使用するため、共通化してもレスポンスへの影響は小さいと想定される。更に、全入力パターンのレコードを保持していることから、定義されているレコード数は多く、共通化することによるデータ量縮小の効果は大きい。よって、セカンダリテーブルのみを共通化の対象とする。セカンダリテーブルTABLE11は今回のダウンロード対象であるRYOKIN03では使用されていないため、図７の計算対象特定テーブルに定義されているRYOKIN02のPLAN11の開始位置、終了位置、対象行からそのままダウンロード対象を特定する。つまり、(地区A,1)〜(地区C,1000) の範囲の中で、行が地区A、地区B、地区Cとなるレコードのみをダウンロードし、セカンダリテーブルとする。ダウンロード対象のテーブルに対して全て処理が完了するまで６−２から繰り返し処理を行う（６−４）。PLAN12のセカンダリテーブルTABLE12もRYOKIN03では使用していないため、PLAN11の場合と同様にセカンダリテーブルを決定する。次に、PLAN13の処理を行う。PLAN13のセカンダリテーブルはRYOKIN03でも使用されている。そのため、複数料金プランの計算対象特定テーブルから、必要なセカンダリテーブルのレコード数を決定する（６−３）。図７計算対象特定テーブルの、RYOKIN01とRYOKIN02のPLAN13の開始位置、終了位置、対象行、対象列の設定値をマージし、ダウンロード対象を特定する。開始位置はそれぞれの最小値から定まるので、(1, 150)となる。終了位置は最大値から定まるため（1000, 500）となる。対象行、列は単純にマージし、重複を取り除きソートする。今回は、対象行は共に設定がないため、設定無し、対象列は、マージした結果である、100、150、200、250、300、350、400、500となる。つまり、(1, 150)〜（1000, 500）の範囲の中で100、150、200、250、300、350、400、500となるレコードのみをダウンロード対象とする。そのため、それぞれセカンダリテーブルを用意した場合に比べ、図８に示すように、単価200と300のデータを共通化することで、2割のデータを削減することができる。また、仮に検針範囲にRYOKIN02を契約している顧客のみが存在する場合、単価が100、200、300、400、500のレコードのみをダウンロードするため、セカンダリテーブルを共通化してはいるが、余分なデータの保持は防ぐことができる。
【００２４】
ハンディターミナル等で料金取得を行う処理について図５、７、９で説明する。まず、顧客が契約している料金プランコードをキーに、対象の料金計算テーブルを特定する。（９−１）。例として、顧客はRYOKIN01を契約していることとする。地区は地区A、平日使用量は2、休日使用量は1とする。まず、PLAN01の料金計算テーブルを取得する。図７からPLAN01の検索用テーブルはTABLE07、セカンダリテーブルはTABLE17であることがわかる。次に、料金計算テーブルから金額情報を取得する（９−２）。図５から、地区A、平日使用量1の場合の単価は1000となる。続いて、返却値がWORKであるか判定する（９−３）。PLAN01の返却値はWORKではないため、取得した金額を加算する（９−４）。PLAN01は最初の計算対象プランであるため、加算結果は1000となる。対象の料金プランに紐づく計算対象プランが全て実行されていない場合は、９−２から再度処理を行う（９−５）。
【００２５】
続いて、PLAN02について料金を取得する。図５より、返却値は300となる。PLAN02の返却値はWORKであるため、加算処理は行わない。同様に、PLAN03について処理を行う。PLAN03の返却値は600であり、WORKではないため、加算結果は1600となる。同様に休日料金も算出する。計算対象プランが全て実行された場合は、加算後の料金を結果として返却する（９−６）。更に、顧客数分処理が終了するまで、９−１から再度処理を行う（９−７）。
【符号の説明】
【００２６】
100：料金計算テーブル作成処理部、301：ダウンロード用料金計算テーブル作成処理部、20：ＤＢサーバ、40：料金計算テーブル配布ネットワーク、302：料金取得処理部、311：A社用料金計算テーブル、10：バッチサーバ、30：利用企業側料金計算システム、60：ハンディターミナルデータ配布用のネットワーク、50：利用企業側ハンディターミナル、201：計算対象料金プラン定義テーブル、202：料金計算テーブル定義情報、203：料金計算単価テーブル、204：料金計算ルールテーブル、205：料金計算テーブル、206：計算対象特定テーブル。
【図１】
2013105405.tif 000003
【図２】
2013105405.tif 000004
【図３】
2013105405.tif 000005
【図４】
2013105405.tif 000006
【図５（Ａ）】
2013105405.tif 000007
【図５（Ｂ）】
2013105405.tif 000008
【図５（Ｃ）】
2013105405.tif 000009
【図６】
2013105405.tif 000010
【図７】
2013105405.tif 000011
【図８】
2013105405.tif 000012
【図９】
2013105405.tif 000013
【図１０】
2013105405.tif 000014
【図１１（Ａ）】
2013105405.tif 000015
【図１１（Ｂ）】
2013105405.tif 000016
【図１２】
2013105405.tif 000017
【図１３】
2013105405.tif 000018