(57)【要約】【課題】料金プランの変更やサービスの追加を行う場合でも、システムに大幅な修正を施すことなく、それらを簡単に反映できる課金額算出方法及び課金額算出プログラムを、提供する。【構成】請求書作成装置１０は、利用ログを、単価を決定するための幾つかの要素とともに管理するとともに（図２）、各利用ログの課金額を算出するための単価も、それを決定する幾つかの要素とともに管理する（図３）。利用ログごとの課金額は、要素の組み合わせがその利用ログと合致する単価が特定された後（ステップＳ１０１〜Ｓ１１４）、その特定された単価と利用ログに係る単位利用量とに基づいて、算出される（ステップＳ１１５，Ｓ１１６）。【選択図】図４
2007179383.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
所定のサービスの一回の利用についての単価を決定するために必要な要素の内容が互いに異なる全ての組み合わせのそれぞれについて、その組み合わせとそれに対応する単位量当たりの単価とを対応付けた対応情報を記憶装置に記憶する単価定義手順，
所定のサービスの毎回の利用のそれぞれについて、その回の利用量と、その利用量に乗ずるべき単価を決定するために必要な幾つかの要素の内容とを対応付けて利用ログ情報として記憶装置に記憶するログ蓄積手順，
前記ログ蓄積手順において記憶装置に記録されている利用ログ情報のそれぞれについて、その利用ログ情報と要素の内容の組み合わせが一致する対応情報を、前記記憶装置から読み出す単価読出手順，
前記単価読出手順において対応情報が読み出されると、その利用ログ情報に含まれる利用量を単位量で除して得られる商に当該対応情報内の単価を乗じて、その利用ログ情報により示される一回の利用についての課金額を算出する課金額算出手順，及び、
前記課金額算出手順において課金額が算出されると、その課金額を、利用ログ情報に対応付けて記憶装置に記憶する課金額保存手順
を実行する
ことを特徴とする課金額算出方法。
【請求項２】
前記コンピュータは、
前記単価定義手順では、所定のサービスの一回の利用についての単価を決定するために必要な要素の内容が互いに異なる全ての組み合わせのそれぞれについて、その組み合わせとそれに対応する単位量当たりの単価とその単価から算出される課金額に加算される基本課金額とを対応付けた対応情報を記憶装置に記憶し、
前記課金額算出手順では、前記利用ログ情報に含まれる利用量を単位量で除して得られる商に、前記単価読出手順において読み出された対応情報内の単価を乗じて、その利用ログ情報により示される一回の利用についての課金額を算出し、更に、その課金額に、当該対応情報内の基本課金額を加算する
ことを特徴とする請求項１記載の課金額算出方法。
【請求項３】
前記コンピュータは、
前記単価定義手順では、所定のサービスの一回の利用についての単価を決定するために必要な要素の内容が互いに異なる全ての組み合わせのそれぞれについて、その組み合わせとそれに対応する単位量当たりの単価とその単価が乗ぜられる前に単位量で除せられる利用量から減算される削減量とを対応付けた対応情報を記憶装置に記憶し、
前記課金額算出手順では、前記利用ログ情報に含まれる利用量から、前記単価読出手順において読み出された対応情報内の削減量を減算し、その減算により得られる値を単位量で除して得られる商に、当該対応情報内の単価を乗じて、その利用ログ情報により示される一回の利用についての課金額を算出する
ことを特徴とする請求項１記載の課金額算出方法。
【請求項４】
前記コンピュータは、
前記単価定義手順では、所定のサービスの一回の利用についての単価を決定するために必要な要素の内容が互いに異なる全ての組み合わせのそれぞれについて、その組み合わせとそれに対応する単位量当たりの単価とその単価から算出される課金額の上限値とを対応付けた対応情報を記憶装置に記憶し、
前記課金額算出手順では、前記利用ログ情報に含まれる利用量を単位量で除して得られる商に、前記単価読出手順において読み出された対応情報内の単価を乗じて、その利用ログ情報により示される一回の利用についての課金額を算出し、更に、その課金額が当該対応情報内の上限値を超えている場合には、その上限値を課金額とする
ことを特徴とする請求項１記載の課金額算出方法。
【請求項５】
前記コンピュータは、
前記単価定義手順では、所定のサービスの一回の利用についての単価を決定するために必要な要素の内容が互いに異なる全ての組み合わせのそれぞれについて、その組み合わせとそれに対応する単位量当たりの単価とその単価から算出される課金額の下限値とを対応付けた対応情報を記憶装置に記憶し、
前記課金額算出手順では、前記利用ログ情報に含まれる利用量を単位量で除して得られる商に、前記単価読出手順において読み出された対応情報内の単価を乗じて、その利用ログ情報により示される一回の利用についての課金額を算出し、更に、その課金額が当該対応情報内の下限値を超えていない場合には、その下限値を課金額とする
ことを特徴とする請求項１記載の課金額算出方法。
【請求項６】
コンピュータを、
所定のサービスの一回の利用についての単価を決定するために必要な要素の内容が互いに異なる全ての組み合わせのそれぞれについて、その組み合わせとそれに対応する単位量当たりの単価とを対応付けた対応情報を記憶装置に記憶する単価定義手段，
所定のサービスの毎回の利用のそれぞれについて、その回の利用量と、その利用量に乗ずるべき単価を決定するために必要な幾つかの要素の内容とを対応付けて利用ログ情報として記憶装置に記憶するログ蓄積手段，
前記ログ蓄積手段が記憶装置に記録している利用ログ情報のそれぞれについて、その利用ログ情報と要素の内容の組み合わせが一致する対応情報を、前記記憶装置から読み出す単価読出手段，
前記単価読出手段が対応情報を読み出すと、その利用ログ情報に含まれる利用量を単位量で除して得られる商に、当該対応情報内の単価を乗じて、その利用ログ情報により示される一回の利用についての課金額を算出する課金額算出手段，及び、
前記課金額算出手段が課金額を算出すると、その課金額を、利用ログ情報に対応付けて記憶装置に記憶する課金額保存手段
として機能させる
ことを特徴とする課金額算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用ログと単価とに基づいて課金額を算出するための課金額算出方法，及び、そのような課金額算出方法を実現するための装置としてコンピュータを動作させる課金額算出プログラムに、関する。
【背景技術】
【０００２】
周知のように、サービス提供者は、各利用者の利用ログを蓄積しておき、各利用者に利用料金を請求するため、蓄積しておいた利用ログのそれぞれについて、その利用ログと事前に定めておいた単価とから課金額を算出して、一定期間の利用に係る課金額の総額を集計する処理を、定期的に行っている。そして、多くのサービス提供者は、前述したような課金額を算出する処理が自動的に行われるようにするためのシステムを、構築して運用している。
【０００３】
【特許文献１】特許第３５７０２３３号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述したシステムは、そのサービス提供者が利用者に提供する料金プランに基づいて定められたアルゴリズムに従って、課金額を算出するものとなっている。従って、サービス提供者は、料金プランを変更したり新しいサービスを追加したりする際には、システムの改修をしたり新たなシステムを別途構築したりする必要があった。
【０００５】
しかしながら、料金プランの変更やサービスの追加を行う都度に、システムを改修したり新規構築していたのでは、時間や費用が掛かってしまうという問題があった。
【０００６】
本発明は、前述したような従来技術の有する問題点に鑑みてなされたものであり、その課題は、料金プランの変更やサービスの追加を行う場合でも、システムに大幅な修正を施すことなく、それらを簡単に反映できるようにすることにある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために案出された課金額算出方法は、コンピュータが、所定のサービスの一回の利用についての単価を決定するために必要な要素の内容が互いに異なる全ての組み合わせのそれぞれについて、その組み合わせとそれに対応する単位量当たりの単価とを対応付けた対応情報を記憶装置に記憶する単価定義手順，所定のサービスの毎回の利用のそれぞれについて、その回の利用量と、その利用量に乗ずるべき単価を決定するために必要な幾つかの要素の内容とを対応付けて利用ログ情報として記憶装置に記憶するログ蓄積手順，前記ログ蓄積手順において記憶装置に記録されている利用ログ情報のそれぞれについて、その利用ログ情報と要素の内容の組み合わせが一致する対応情報を、前記記憶装置から読み出す単価読出手順，前記単価読出手順において対応情報が読み出されると、その利用ログ情報に含まれる利用量を単位量で除して得られる商に当該対応情報内の単価を乗じて、その利用ログ情報により示される一回の利用についての課金額を算出する課金額算出手順，及び、前記課金額算出手順において課金額が算出されると、その課金額を、利用ログ情報に対応付けて記憶装置に記憶する課金額保存手順を実行することを、特徴としている。
【０００８】
このように構成されると、単価を決定するために必要な要素を別途追加又は削除することによって料金プランを変更する場合、記憶装置に記憶される対応情報を、追加される要素を加え或いは削除される要素を除いてその変更に適合させた対応情報へと、更新するとともに、利用ログ情報に対してその要素を加え或いは除くようにすれば、システムに大幅な修正を施さずとも、簡単に、変更後の料金プランで課金額を算出することができるようになる。
【０００９】
また、上記の課題を解決するために案出された課金額算出プログラムは、コンピュータを、所定のサービスの一回の利用についての単価を決定するために必要な要素の内容が互いに異なる全ての組み合わせのそれぞれについて、その組み合わせとそれに対応する単位量当たりの単価とを対応付けた対応情報を記憶装置に記憶する単価定義手段，所定のサービスの毎回の利用のそれぞれについて、その回の利用量と、その利用量に乗ずるべき単価を決定するために必要な幾つかの要素の内容とを対応付けて利用ログ情報として記憶装置に記憶するログ蓄積手段，前記ログ蓄積手段が記憶装置に記録している利用ログ情報のそれぞれについて、その利用ログ情報と要素の内容の組み合わせが一致する対応情報を、前記記憶装置から読み出す単価読出手段，前記単価読出手段が対応情報を読み出すと、その利用ログ情報に含まれる利用量を単位量で除して得られる商に、当該対応情報内の単価を乗じて、その利用ログ情報により示される一回の利用についての課金額を算出する課金額算出手段，及び、前記課金額算出手段が課金額を算出すると、その課金額を、利用ログ情報に対応付けて記憶装置に記憶する課金額保存手段として機能させることを、特徴としている。
【００１０】
従って、この課金額算出プログラムによれば、前述した本発明による課金額算出方法を実現する装置としてコンピュータを動作させることができることになる。
【発明の効果】
【００１１】
以上に説明したように、本発明によれば、料金プランの変更やサービスの追加を行う場合でも、システムに大幅な修正を施すことなく、それらを簡単に反映できるようになる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明を実施するための五つの最良の形態について、添付図面を参照しながら、詳細に説明する。
【実施形態１】
【００１３】
図１は、第１の実施形態の請求書作成装置１０の構成図である。
【００１４】
第１の実施形態の請求書作成装置１０は、所定のサービスの利用について利用者に送付される請求書の作成機能を実現するために、後述の請求書作成ソフトウエア１５がインストールされたパーソナルコンピュータである。
【００１５】
この請求書作成装置１０を構成するパーソナルコンピュータは、液晶ディスプレイ等の表示装置１０ａ，キーボードやマウス等の入力装置１０ｂ，ローカルプリンタやネットワークプリンタ等の印刷装置１０ｃ，及び、本体からなり、このうち、本体は、ＣＰＵ［Central Processing Unit］１０ｄ，ＤＲＡＭ［Dynamic Random Access Memory］１０ｅ，ＭＤＤ［Multi Disk Drive］１０ｆ，及び、ＨＤＤ［Hard Disk Drive］１０ｇ等の周知なハードウエアを、内蔵している。
【００１６】
そして、ＨＤＤ１０ｇは、基本ソフトウエア１１を記憶している。この基本ソフトウエア１１は、表示装置１０ａや入力装置１０ｂにおける入出力の制御，印刷装置１０ｃでの出力の制御，及び、ＤＲＡＭ１０ｅやＭＤＤ１０ｆやＨＤＤ１０ｇの記憶領域（記憶素子，ＣＤ［Compact Disk］，ＤＶＤ［Digital Versatile Disk］，ＨＤ［Hard Disk］の記憶領域）に対する読み書きの制御といった基本的な機能を多くのアプリケーションソフトウエアに提供するソフトウエアである。
【００１７】
さらに、このＨＤＤ１０ｇには、利用ログテーブル１２，課金定義テーブル１３，料金定義テーブル１４，及び、請求書作成ソフトウエア１５が、インストールされている。なお、課金定義テーブル１３と料金定義テーブル１４は、当該サービスの提供者が各利用者に用意している各種の料金プランごとに、用意されており、一つの料金プランを、一つの課金定義テーブル１３と一つの料金定義テーブル１４とで、定義している。
【００１８】
利用ログテーブル１２は、当該サービスの利用履歴を記録しておくためのテーブルである。なお、この利用ログテーブル１２は、前述したログ蓄積手順及びログ蓄積手段に相当している。
【００１９】
図２は、この利用ログテーブル１２のデータ構造の一例を示す図である。
【００２０】
図２の利用ログテーブル１２は、当該サービスが利用された回数と同数のレコードを、有している。各レコードは、「日付」，「利用者情報」，「コード」，「要素１」，「要素２」，…，「要素１０」，「単位利用量」及び「課金額」のフィールドを有している。
【００２１】
「日付」フィールドは、当該サービスが利用された年月日が記録されるフィールドである。「利用者情報」フィールドは、多数の利用者の中から各利用者を個別に識別するための利用者情報が記録されるフィールドである。「コード」フィールドは、当該サービスの提供者が提供している各種の料金プランのうち、その利用者識別情報の示す利用者が当該サービスの提供者と契約している料金プランを示すコード情報が記録されるフィールドである。
【００２２】
「要素ｎ」フィールドは、利用量に乗ぜられる単価を決定するために必要な要素が記録されるフィールドである。ここで、要素は、料金体系において単価の違いを生み出すものであり、例えば、印刷サービスにおいては、用紙の大きさや色や紙質などがあり、通話サービスにおいては、通話距離や通話時間帯や曜日などがある。第１の実施形態では、利用ログテーブル１２には、１０個の「要素ｎ」フィールドが用意されており、単価を決定するために必要な要素の数よりもｎの値が大きい「要素ｎ」フィールドは、空欄となる。
【００２３】
「単位利用量」フィールドは、その利用者の一回の利用に係る利用量が記録されるフィールドである。「課金額」フィールドは、その利用者の一回の利用について課金される額が記録されるフィールドである。なお、この「課金額」フィールドは、後述の請求書作成ソフトウエアにより課金額が算出されるまで、空欄となっている。
【００２４】
課金定義テーブル１３は、当該サービスの一回の利用について発生する課金額を算出するために利用されるテーブルである。なお、この課金定義テーブル１３は、前述した単価定義手順及び単価定義手段に相当している。
【００２５】
図３は、この課金定義テーブル１３のデータ構造の一例を示す図である。
【００２６】
図３の課金定義テーブル１３は、一つの料金プランにおける各要素の組み合わせのパターンと同数のレコードを、有している。各レコードは、「要素１」，「要素２」，…，「要素１０」，「単位数量」，「単価」，「無料相当分」，「基本課金額」，「最高課金額」及び「最低課金額」のフィールドを、有している。
【００２７】
「要素ｎ」フィールドは、単価を決定するために必要な要素が記録されるフィールドである。利用ログテーブル１２と同様に、課金定義テーブル１３にも、１０個の「要素ｎ」フィールドが用意されており、単価を決定するために必要な要素の数よりもｎの値が大きい「要素ｎ」フィールドは、空欄となる。
【００２８】
「単位数量」フィールドは、単価が課せられる単位となる数量が記録されるフィールドである。「単価」フィールドは、単位数量当たりの単価が記録されるフィールドである。なお、この料金プランが従量制課金を行わない料金プランである場合、この「単価」フィールドは、空欄又は「０円」となる。
【００２９】
「無料相当分」フィールドは、一回の利用に掛かった利用量の中から値引きに相当する特典として削減し得る最大の利用量が無料相当分として記録されるフィールドである。なお、この料金プランが無料相当分削減サービスを行わない料金プランである場合、この「無料相当分」フィールドは、空欄となる。
【００３０】
「基本課金額」フィールドは、一回の利用についてその利用量とは無関係に利用者に課せられる基本課金額が記録されるフィールドである。なお、この料金プランが一回の利用について基本課金額を利用者に課さない料金プランである場合、この「基本課金額」フィールドは、空欄となる。
【００３１】
「最高課金額」フィールドは、一回の利用に対していわゆるキャップ制課金を採用する場合における最高課金額が記録されるフィールドである。ここで、キャップ制課金とは、基本課金額と従量課金額（｛（単位利用量）÷（単位数量）：小数点以下切り上げ｝×（単価））との総和が、設定された上限である最高課金額を超えていないときには、その総和をそのまま一回の利用に掛かる課金額として利用者に請求し、その総和が、設定された最高課金額を超えているときには、その設定された最高課金額を一回の利用に掛かる課金額として利用者に請求するという課金方法を言う。なお、この料金プランが一回の利用に対してキャップ制課金を採用しない料金プランである場合、「最高課金額」フィールドは、空欄となる。
【００３２】
「最低課金額」フィールドは、一回の利用に対していわゆるミニマムチャージ制課金を採用する場合における最低課金額が記録されるフィールドである。ここで、ミニマムチャージ制課金とは、基本課金額と従量課金額との総和が、設定された所定の下限である最低課金額を超えているときには、その総和をそのまま一回の利用に掛かる課金額として利用者に請求し、その総和が、設定された最低課金額を超えていないときには、その設定された最低課金額を一回の利用に掛かる課金額として利用者に請求するという課金方法を言う。なお、この料金プランが一回の利用に対してミニマムチャージ制課金を採用しない料金プランである場合、「最低課金額」フィールドは、空欄となる。
【００３３】
料金定義テーブル１４は、利用者の一定期間における当該サービスの利用についての請求課金額を算出するのに利用されるテーブルである。この料金定義テーブル１４は、本発明には関係ないため図示していないが、簡単に説明するならば、一定期間の当該サービスの利用についての課金額の総額を従量料金とすると、その従量料金から差し引かれるべき無料相当料金，その従量料金に加えるべき基本料金，キャップ制課金を採用する場合における従量料金と基本料金の総和の最高利用料金，ミニマムチャージ制課金を採用する場合における従量料金と基本料金の総和の最低利用料金を、それぞれ、定義している。
【００３４】
請求書作成ソフトウエア１５は、当該サービスの各利用者に送付される請求書を作成するためのソフトウエアである。この請求書作成ソフトウエア１５は、課金額算出モジュール（プログラム）１５ａ，請求総額算出モジュール（プログラム）１５ｂ，請求書印刷モジュール（プログラム）１５ｃを、含んでいる。
【００３５】
課金額算出モジュール１５ａは、当該サービスの一回の利用について利用者に課金すべき額を算出するいわゆるレイティングモジュールである。この課金額算出モジュール１５ａに従ってＣＰＵ１０ｄが行う処理の内容については、後で図４及び図５を用いて詳しく説明するが、簡単に説明するならば、その内容は、利用ログテーブル１２に蓄積されている利用ログのそれぞれについて、課金定義テーブル１３の内容に基づいて課金額を算出するというものである。なお、この課金額算出モジュール１５ａは、一月毎や一週毎のように定期的に動作するように設定されていても良いし、当該サービス提供者によって任意の時期に動作されるようであってもよい。
【００３６】
請求総額算出モジュール１５ｂは、利用者のそれぞれについて、当該サービスの一定期間の利用に掛かる課金額の総額を従量料金として集計し、その従量料金から無料相当分を削減したり基本料金を加算したりして請求総額を確定するプライシングモジュールである。この請求総額算出モジュール１５ｂに従ってＣＰＵ１０ｄが行う処理は、一般的であり、且つ、本発明とは無関係であるため、その処理の内容については、説明を省略する。  
【００３７】
請求書印刷モジュール１５ｃは、請求総額算出モジュール１５ｂが利用者ごとに確定した請求総額を、印刷装置１０ｃを通じて、所定の請求書に印刷するモジュールである。この請求書印刷モジュール１５ｃに従ってＣＰＵ１０ｄが行う処理も、一般的であり、且つ、本発明とは無関係であるため、その処理の内容については、説明を省略する。
【００３８】
図４及び図５は、課金額算出モジュール１５ａによる処理の流れを示す図である。
【００３９】
当該処理の開始後、ＣＰＵ１０ｄは、第１の処理ループを実行する（Ｌ１）。具体的には、ＣＰＵ１０ｄは、利用ログテーブル１２内の一つのレコードを処理対象として特定して、この処理対象として特定したレコードについてステップＳ１０１乃至Ｓ１１７を行う。ＣＰＵ１０ｄは、このような処理を、利用ログテーブル１２内の全てのレコードについて一つずつ順に行い、全てのレコードについて処理を終えると、図４及び図５に係る処理を終了する。
【００４０】
ステップＳ１０１では、ＣＰＵ１０ｄは、変数ｎに「１」を代入する処理を行い、ステップＳ１０２へ処理を進める。
【００４１】
ステップＳ１０２では、ＣＰＵ１０ｄは、処理対象レコードにおける「要素ｎ」フィールドの値を読み出す。
【００４２】
次のステップＳ１０３では、ＣＰＵ１０ｄは、読み出した値が有効な値であるか否か（当該フィールドが空欄でないかどうか）を判別する。そして、ＣＰＵ１０ｄは、読み出した値が有効な値であった場合、ステップＳ１０３からステップＳ１０４へ処理を分岐する。
【００４３】
ステップＳ１０４では、ＣＰＵ１０ｄは、変数ｎの代入値が「１」であるか否かを判別する。そして、ＣＰＵ１０ｄは、変数ｎの代入値が「１」であった場合、ステップＳ１０４からステップＳ１０５へ処理を分岐する。
【００４４】
ステップＳ１０５では、ＣＰＵ１０ｄは、処理対象レコードの「コード」フィールドに格納されているコード情報にて特定される課金定義テーブル１３の中から、ステップＳ１０２で読み出した値を要素ｎに含むレコードを検索する。
【００４５】
次のステップＳ１０６では、ＣＰＵ１０ｄは、ステップＳ１０２で読み出した値を要素ｎに含むレコードが当該課金定義テーブル１３の中から検出できたか否かを判別する。そして、ＣＰＵ１０ｄは、ステップＳ１０２で読み出した値を要素ｎに含むレコードが当該課金定義テーブル１３の中から検出できた場合、ステップＳ１０６からステップＳ１０７へ処理を分岐する。
【００４６】
ステップＳ１０７では、ＣＰＵ１０ｄは、当該課金定義テーブル１３の中から検出したレコードを図示せぬワークテーブルへ格納する処理を行い、ステップＳ１１１へ処理を進める。
【００４７】
ステップＳ１１１では、ＣＰＵ１０ｄは、変数ｎの代入値を「１」繰り上げる処理を行う。
【００４８】
ステップＳ１１２では、ＣＰＵ１０ｄは、変数ｎの代入値が「１１」であるか否かを判別する。そして、ＣＰＵ１０ｄは、変数ｎの代入値が「１１」でなかった場合、ステップＳ１１２からステップＳ１０２へ処理を戻す。
【００４９】
一方、ステップＳ１０４において、変数ｎの代入値が「１」でなかった場合、ＣＰＵ１０ｄは、ステップＳ１０８へ処理を進める。
【００５０】
ステップＳ１０８では、ＣＰＵ１０ｄは、処理対象レコードの「コード」フィールドに格納されているコード情報にて示される課金定義テーブル１３の中から、ステップＳ１０２で読み出した値を要素ｎに含むレコードを検索する。
【００５１】
次のステップＳ１０９では、ＣＰＵ１０ｄは、ステップＳ１０２で読み出した値を要素ｎに含むレコードが当該課金定義テーブル１３の中から検出できたか否かを判別する。そして、ＣＰＵ１０ｄは、ステップＳ１０２で読み出した値を要素ｎに含むレコードが当該課金定義テーブル１３の中から検出できた場合、ステップＳ１０９からステップＳ１１０へ処理を分岐する。
【００５２】
ステップＳ１１０では、ＣＰＵ１０ｄは、図示せぬワークテーブルから、当該課金定義テーブル１３の中から検出したレコード以外のレコードを、全て削除する処理を行い、ステップＳ１１１へ処理を進める。
【００５３】
なお、以上のステップＳ１０２乃至Ｓ１１２の処理ループは、前述した単価読出手順に相当しており、この処理ループを実行するＣＰＵ１０ｄは、前述した単価読出手段に相当している。
【００５４】
このステップＳ１０２乃至Ｓ１１２の処理ループの実行中、処理対象レコードの「要素ｎ」フィールドの値が有効な値でなくなった場合（ステップＳ１０３；ＮＯ）、又は、変数ｎの値が「１１」に達した場合（ステップＳ１１２；ＹＥＳ）、ＣＰＵ１０ｄは、ステップＳ１１３へ処理を進める。
【００５５】
ステップＳ１１３では、ＣＰＵ１０ｄは、図示せぬワークテーブルにレコードが含まれているか否かを確認するため、このワークテーブルを検索する。
【００５６】
次のステップＳ１１４では、ＣＰＵ１０ｄは、検索の結果として図示せぬワークテーブルからレコードをただ一つだけ検出できたか否かを判別する。そして、ＣＰＵ１０ｄは、図示せぬワークテーブルからレコードをただ一つだけ検出できた場合、ステップＳ１１４からステップＳ１１５へ処理を進める。
【００５７】
ステップＳ１１５では、ＣＰＵ１０ｄは、処理対象レコードについての課金額を算出する処理を行う。具体的には、ＣＰＵ１０ｄは、処理対象レコードの「単位利用量」フィールドの値と、図示せぬワークテーブルに残された一つのレコードの「単位数量」，「単価」，「無料相当分」及び「基本課金額」のフィールドの値とから、次の計算式に従って、課金額を算出する処理を行う。
計算式：（課金額）＝（基本課金額）＋［｛（単位利用量）−（無料相当分）｝÷（単位数量）］×（単価）
なお、ＣＰＵ１０ｄは、上記計算式における（単位利用量）−（無料相当分）の部分が負の値となるときは、その部分の値をゼロに変更する。また、ＣＰＵ１０ｄは、上記計算式における｛（単位利用量）−（無料相当分）｝÷（単位数量）の部分が小数点以下の端数を持つ値となるときには、その部分の値を小数点以下を切り上げた値に変更する。
【００５８】
また、ＣＰＵ１０ｄは、上記計算式において課金額を算出した後、図示せぬワークテーブルに残された一つのレコードの「最高課金額」及び「最低課金額」のフィールドの値を参照し、最高課金額が設定されている場合において、上記計算式を使って算出した課金額が、最高課金額を超えたときには、課金額をその最高課金額と同額に変更し、最低課金額が設定されている場合において、上記計算式を使って算出した課金額が、最低課金額を超えていなかったときには、課金額をその最低課金額と同額に変更する。
【００５９】
なお、このステップＳ１１５は、前述した課金額算出手順に相当しており、このステップＳ１１５を実行するＣＰＵ１０ｄは、前述した課金額算出手段に相当している。
【００６０】
次のステップＳ１１６では、ＣＰＵ１０ｄは、ステップＳ１１５において算出した課金額を、図２の利用ログテーブル１２における処理対象レコードの「課金額」フィールドに格納する処理を行う。
【００６１】
なお、このステップＳ１１６は、前述した課金額保存手順に相当しており、このステップＳ１１６を実行するＣＰＵ１０ｄは、前述した課金額保存手段に相当している。
【００６２】
また、ＣＰＵ１０ｄは、ステップＳ１０２乃至Ｓ１１２の処理ループの実行中、ステップＳ１０２で読み出した値を要素ｎに含むレコードが課金定義テーブル１３の中から検出できなかった場合（ステップＳ１０６；ＮＯ，若しくは、ステップＳ１０９；ＮＯ）、又は、図示せぬワークテーブルからレコードを一つも検出できなかったか、若しくは、レコードを二つ以上検出した場合（ステップＳ１１４；ＮＯ）、ステップＳ１１７へ処理を進める。
【００６３】
ステップＳ１１７では、ＣＰＵ１０ｄは、エラーを示す情報を、図２の利用ログテーブル１２における処理対象レコードの「課金額」フィールドに格納する処理を行う。
【００６４】
以上に説明した第１の実施形態では、利用ログは、単価を決定するための幾つかの要素とともに管理されるとともに（図２）、単価も、それを決定する幾つかの要素とともに管理される（図３）。そして、利用ログごとの課金額は、要素の組み合わせがその利用ログと合致する単価が特定された後（ステップＳ１０１〜Ｓ１１４）、その特定された単価と利用ログに係る単位利用量とに基づいて、算出されることとなる（ステップＳ１１５，Ｓ１１６）。
【００６５】
ここで、課金額の算出は、利用者が当該サービス提供者と取り交わした契約において定められた料金プランに従って、なされている。サービスの提供者が、一つの料金プランの内容を変更しようとする場合、従来のシステムでは、利用料金を算出するための計算式がその当時の料金プランに最適なものとして作成されていたため、システムの大幅な変更が必要であった。これに対し、第１の実施形態では、課金定義テーブル１３に対し、新たな料金プランに適合したレコードを追加又は削除するだけで済む。
【００６６】
図６は、図３の課金定義テーブル１３の内容を一部変更した例を示す図である。
【００６７】
図３は、印刷サービスの料金プランの一例を示しており、図３では、単価を決定するための要素として、印刷に使用するインクの種類を規定する要素１と、印刷用紙の大きさを規定する要素２が、定められており、要素３以上の要素は、定められていなかった。
【００６８】
これに対し、図６は、図３に係る料金プランにおいて、印刷用紙の紙質を、単価の違いを生む要素として新たに付け加えた例を示しており、インクの種類を規定する要素１と印刷用紙の大きさを規定する要素２とに加えて、更に、印刷用紙の紙質を規定する要素３が、定められている。例えば、図２では、要素１が「白黒」で要素２が「Ａ４以下」であるレコードは、一つしか存在していないが、図６では、要素１が「白黒」で要素２が「Ａ４以下」であるレコードが、要素３に含まれ得る数（図６では、「上質紙」と「普通紙」の二つ）存在している。
【００６９】
このように、単価を決定するための要素を追加することによって料金プランを変更する場合、課金定義テーブル１３に対し、その変更に適合したレコードを追加又は削除して、新たな課金定義テーブル１３’を作成することにより、システムを大幅に変更することなく、簡単に、変更後の料金プランで課金額を算出することができるようになる。
【００７０】
また、第１の実施形態においては、課金定義テーブル１３に設定されている基本課金額，無料相当分，最高課金額，最低課金額を適宜変更することにより、一回の利用に掛かる課金額についての単位利用量に応じた変化量を、変更することができる。具体的には、以下の通りである。
【００７１】
図７（ａ）は、定額制課金を採用したときの課金定義テーブル１３”の例示図であり、図７（ｂ）は、定額制課金における課金額と単位利用量との関係を示すグラフである。図７に示されるように、基本課金額だけを設定し、単価，無料相当分，最高課金額，最低課金額を何れも設定しなかった場合、単位利用量の変化と無関係に課金額が一定となる（定額制課金）。
【００７２】
図８（ａ）は、単純な従量制課金を採用したときの課金定義テーブル１３”の例示図であり、図８（ｂ）は、単純な従量制課金における課金額と単位利用量との関係を示すグラフである。図８に示されるように、単位数量と単価だけを設定し、無料相当分，基本課金額，最高課金額，最低課金額を何れも設定しなかった場合、単位利用量の単純増加に伴って課金額も単純増加する（単純な従量制課金）。
【００７３】
図９（ａ）は、基本課金額付きの従量制課金を採用したときの課金定義テーブル１３”の例示図であり、図９（ｂ）は、基本課金額付きの従量制課金における課金額と単位利用量との関係を示すグラフである。図９に示されるように、単位数量と単価と基本課金額を設定し、無料相当分，最高課金額，最低課金額を何れも設定しなかった場合、単位利用量の単純増加に伴って単純増加する課金額に対し、基本課金額が上乗せされる（基本課金額付きの従量制課金）。
【００７４】
図１０（ａ）は、値引き特典付きの従量制課金を採用したときの課金定義テーブル１３”の例示図であり、図１０（ｂ）は、値引き特典付きの従量制課金における課金額と単位利用量との関係を示すグラフである。図１０に示されるように、単位数量と単価と無料相当分だけを設定し、基本課金額，最高課金額，最低課金額を何れも設定しなかった場合、所定の利用量に達するまでは課金額は無く、所定の利用量に達した後は、単位利用量の単純増加に伴って課金額が増加する（値引き特典付きの従量制課金）。
【００７５】
図１１（ａ）は、ステップ型の従量制課金を採用したときの課金定義テーブル１３”の例示図であり、図１１（ｂ）は、ステップ型の従量制課金における課金額と単位利用量との関係を示すグラフである。図１１に示されるように、単位数量を最小数より大きめの値に設定し（印刷サービスにおいては最小数が１枚であるので、２枚以上の値を単位数量と設定する）、基本課金額，最高課金額，最低課金額を何れも設定しなかった場合、単位利用量が単位数量の倍数に到達するごとに、課金額が段階的に増加する（ステップ型の従量制課金）。なお、ステップ課金制においては、無料相当分は、設定されていても良いし、設定されていなくても良い。
【００７６】
図１２（ａ）は、キャップ制課金を採用したときの課金定義テーブル１３”の例示図であり、図１２（ｂ）は、キャップ制課金における課金額と単位利用量との関係を示すグラフである。図１２に示されるように、単位数量と単価と最高課金額とを設定し、無料相当分，基本課金額，最低課金額を何れも設定しなかった場合、単位利用量の単純増加に伴って課金額も単純増加し、課金額が最高課金額に到達した段階で、課金額は頭打ちとなり、単位利用量の増加に拘わらず、その最高課金額と同額の一定を維持する（キャップ制課金）。
【００７７】
図１３（ａ）は、ミニマムチャージ制課金を採用したときの課金定義テーブル１３”の例示図であり、図１３（ｂ）は、ミニマムチャージ制課金における課金額と単位利用量との関係を示すグラフである。図１３に示されるように、単位数量と単価と最低課金額（又は無料相当分と基本課金額）とを設定し、無料相当分及び基本課金額（又は最低課金額），並びに、最高課金額を何れも設定しなかった場合、課金額は、単位利用量の増加に拘わらず、最低課金額に到達するまでその最低課金額と同額の一定を維持し、最低課金額に到達すると、単位利用量の単純増加に伴って単純増加する（ミニマムチャージ制課金）。
【００７８】
図１４（ａ）は、ダブル定額制課金を採用したときの課金定義テーブル１３”の例示図であり、図１４（ｂ）は、ダブル定額制課金における課金額と単位利用量との関係を示すグラフである。図１４に示されるように、単位数量と単価と最高課金額と最低課金額（又は無料相当分と基本課金額）とを設定し、無料相当分及び基本課金額（又は最低課金額）を設定しなかった場合、課金額は、単位利用量の増加に拘わらず、最低課金額に到達するまでその最低課金額と同額の一定を維持し、最低課金額に到達すると、単位利用量の単純増加に伴って単純増加し、課金額が最高課金額に到達した段階で、課金額は頭打ちとなり、単位利用量の増加に拘わらず、その最高課金額と同額の一定を維持する（ダブル定額制課金）。
【００７９】
このように、一回の利用について算出される課金額の単位利用量との関係を変更することによって料金プランを変更する場合、課金定義テーブル１３に対し、その変更に適合したレコードを追加又は削除して、新たな課金定義テーブル１３”を作成することにより、システムを大幅に変更することなく、簡単に、変更後の料金プランで課金額を算出することができるようになる。
【００８０】
ところで、第１の実施形態の利用ログテーブル１２は、図２に示されるように、印刷サービスの利用ログを蓄積したものとなっている。この利用ログは、図示せぬ利用ログ保存機能により、当該サービスの利用が発生するごとに、利用ログテーブル１２に格納されるものであっても良いが、別のシステム内の印刷ログテーブルに蓄積されていて図示せぬコピー機能により図２の利用ログテーブル１２にコピーされたものであっても良い。
【００８１】
なお、後者の場合、図２の利用ログテーブル１２に利用ログをコピーするのと同時に、その別システムに用意されている料金表内の情報を記録した課金定義テーブル１３を、この請求書作成装置１０に生成せねばならない。
【００８２】
図１５は、別システム内の印刷ログテーブル２１の一例を示す図である。
【００８３】
図１５に示される別システムの印刷ログテーブル２１の各レコードは、「日付」，「利用者情報」，「大きさ」，「色」，「枚数」のフィールドを、有している。この印刷ログテーブル２１のログレコードを、図２の利用ログテーブル１２へコピーする際には、「大きさ」フィールドの値が「要素１」フィールドの値となり、「色」フィールドの値が「要素２」フィールドの値となり、「枚数」フィールドの値が「単位利用量」フィールドの値となるよう、処理する必要がある。
【００８４】
図１６は、別システム内の契約管理テーブル２２の一例を示す図である。
【００８５】
図１６に示される別システム内の契約管理テーブル２２の各レコードは、「利用者情報」，「コード」，「サービス名」のフィールドを、有している。別システム内において、複数の料金表が用意されており、この契約管理テーブル２２では、利用者情報とコード情報とが対応付けられることによって、利用者がどの料金プランで契約しているかが、定義されている。
【００８６】
図１７は、別システム内の料金表２３の一例を示す図である。
【００８７】
図１７に示される別システム内の料金表２３では、単位数量当たりの単価とその単価で計算される印刷条件とが、対応付けられた状態で定義されている。この料金表２３の情報に基づいて図３の課金定義テーブル１３を生成する際には、料金表２３中の印刷条件に含まれる各要素が、課金定義テーブル１３の「要素ｎ」フィールドに格納され、料金表２３中の単位数量と単価とが、課金定義テーブル１３の「単位数量」及び「単価」フィールドに格納されるよう、処理せねばならない。
【実施形態２】
【００８８】
図１８は、第２の実施形態の利用ログテーブル１６のデータ構造の一例を示す図である。また、図１９及び図２０は、課金定義テーブル１７のデータ構造の一例を示す図である。
【００８９】
図１８と図２とを比較し、且つ、図１９及び図２０と図３とを比較して明らかなように、第２の実施形態の利用ログテーブル１６の各レコードは、第１の実施形態のそれと、全く同じフィールドを有し、第２の実施形態の課金定義テーブル１７は、第１の実施形態のそれと、全く同じフィールドを有している。第１の実施形態との違いは、利用ログテーブル１６に蓄積されている利用ログと、課金定義テーブル１７において定義されている単価等とが、通話サービスに係るものである点にある。
【００９０】
このように、サービスの内容や料金プランの相違に拘わらず、利用ログテーブルのデータ構造と課金定義テーブルのデータ構造とを統一することにより、第１の実施形態でも第２の実施形態でも、図４及び図５で示した課金計算のアルゴリズムを、標準化したものとして、利用することができることになる。
【００９１】
ところで、第２の実施形態においても、利用ログは、図示せぬ利用ログ保存機能により、当該サービスの利用が発生するごとに、利用ログテーブル１６に格納されるものであって良いが、別のシステム内の通話ログテーブルに蓄積されていて図示せぬコピー機能により図１８の利用ログテーブル１６にコピーされたものであっても良い。
【００９２】
なお、後者の場合、図１８の利用ログテーブル１６に利用ログをコピーするのと同時に、その別システムに用意されている料金表内の情報を記録した課金定義テーブル１７を、この請求書作成装置１０に生成せねばならない。
【００９３】
図２１は、別システム内の通話ログテーブル３１の一例を示す図である。
【００９４】
図２１に示される別システムの通話ログテーブル３１の各レコードは、「日付」，「発信番号」，「着信番号」，「通話開始時刻」，「通話終了時刻」のフィールドを、有している。この印刷ログテーブル３１のログレコードを、図２の利用ログテーブル１２へコピーする際には、「発信番号」フィールドの値が「利用者情報」フィールドの値となり、「発信番号」フィールドの値と「着信番号」フィールドの値とから確定される通話先種別（市内、市外の種別）と距離が、「要素１」及び「要素２」フィールドの値となり、「日付」フィールドの値から確定される曜日種別（平日、休日の種別）と時間帯種別（昼間，夜間又は深夜の種別）とが、「要素３」及び「要素４」フィールドの値となり、「通話開始時刻」フィールドの値と「通話終了時刻」フィールドの値とから確定される単位利用量が「単位利用量」フィールドの値となるよう、処理する必要がある。
【００９５】
図２２は、別システム内の契約管理テーブル３２の一例を示す図である。
【００９６】
図２２に示される別システム内の契約管理テーブル３２の各レコードは、「契約番号」，「コード」，「サービス名」のフィールドを、有している。別システム内において、複数の料金表が用意されており、この契約管理テーブル３２では、契約番号とコード情報とが対応付けられることによって、利用者がどの料金プランで契約しているかが、定義されている。
【００９７】
図２３は、別システム内の料金表３３の一例を示す図である。
【００９８】
図２３に示される別システム内の料金表３３では、単位数量当たりの単価とその単価が適用される通話条件（通話先種別、距離、曜日種別、時間帯種別）とが、対応付けられた状態で定義されている。この料金表３３の情報に基づいて図１９及び図２０の課金定義テーブル１７を生成する際には、料金表３３中の通話条件に含まれる各要素が、課金定義テーブル１７の「要素ｎ」フィールドに格納され、料金表３３中の単位数量と単価とが、課金定義テーブル１３の「単位数量」及び「単価」フィールドに格納されるよう、処理せねばならない。
【実施形態３】
【００９９】
図２４は、第３の実施形態の課金定義テーブル４１のデータ構造の一例を示す図である。
【０１００】
図２４と図３とを比較して明らかなように、第３の実施形態の課金定義テーブル４１の各レコードは、第１の実施形態のそれと、全く同じフィールドを有している。また、図示していないが、第３の実施形態の利用ログテーブルの各レコードは、第１の実施形態のそれと、全く同じフィールドを有している。第１の実施形態との違いは、課金定義テーブル４１において定義されている単価等と、図示せぬ利用ログテーブルに蓄積されている利用ログとが、パケット通信サービスに係るものである点にある。
【０１０１】
このように、サービスの内容や料金プランの相違に拘わらず、利用ログテーブルのデータ構造と課金定義テーブルのデータ構造とを統一することにより、第１の実施形態でも第３の実施形態でも、図４及び図５で示した課金計算のアルゴリズムを、標準化したものとして、利用することができることになる。
【実施形態４】
【０１０２】
図２５は、第４の実施形態の課金定義テーブル４２のデータ構造の一例を示す図である。
【０１０３】
図２５と図３とを比較して明らかなように、第４の実施形態の課金定義テーブル４２の各レコードは、第１の実施形態のそれと、全く同じフィールドを有している。また、図示していないが、第４の実施形態の利用ログテーブルの各レコードは、第１の実施形態のそれと、全く同じフィールドを有している。第１の実施形態との違いは、課金定義テーブル４２において定義されている単価等と、図示せぬ利用ログテーブルに蓄積されている利用ログとが、小包配送サービスに係るものである点にある。
【０１０４】
このように、サービスの内容や料金プランの相違に拘わらず、利用ログテーブルのデータ構造と課金定義テーブルのデータ構造とを統一することにより、第１の実施形態でも第４の実施形態でも、図４及び図５で示した課金計算のアルゴリズムを、標準化したものとして、利用することができることになる。
【実施形態５】
【０１０５】
図２６は、第５の実施形態の課金定義テーブル４３のデータ構造の一例を示す図である。
【０１０６】
図２６と図３とを比較して明らかなように、第５の実施形態の課金定義テーブル４３の各レコードは、第１の実施形態のそれと、全く同じフィールドを有している。また、図示していないが、第５の実施形態の利用ログテーブルの各レコードは、第１の実施形態のそれと、全く同じフィールドを有している。第１の実施形態との違いは、課金定義テーブル４３において定義されている単価等と、図示せぬ利用ログテーブルに蓄積されている利用ログとが、タクシーサービスに係るものである点にある。
【０１０７】
このように、サービスの内容や料金プランの相違に拘わらず、利用ログテーブルのデータ構造と課金定義テーブルのデータ構造とを統一することにより、第１の実施形態でも第５の実施形態でも、図４及び図５で示した課金計算のアルゴリズムを、標準化したものとして、利用することができることになる。
【図面の簡単な説明】
【０１０８】
【図１】第１の実施形態の請求書作成装置の構成図
【図２】利用ログテーブルのデータ構造の一例を示す図
【図３】課金定義テーブルのデータ構造の一例を示す図
【図４】課金額算出モジュールによる処理の流れを示す図
【図５】課金額算出モジュールによる処理の流れを示す図
【図６】図３の課金定義テーブルの内容を一部変更した例を示す図
【図７】定額制課金を採用したときの（ａ）課金定義テーブルの例示図と（ｂ）課金額と単位利用量との関係を示すグラフ
【図８】単純な従量制課金を採用したときの（ａ）課金定義テーブルの例示図と（ｂ）課金額と単位利用量との関係を示すグラフ
【図９】基本課金額付きの従量制課金を採用したときの（ａ）課金定義テーブルの例示図と（ｂ）課金額と単位利用量との関係を示すグラフ
【図１０】値引き特典付きの従量制課金を採用したときの（ａ）課金定義テーブルの例示図と（ｂ）課金額と単位利用量との関係を示すグラフ
【図１１】ステップ型の従量制課金を採用したときの（ａ）課金定義テーブルの例示図と（ｂ）課金額と単位利用量との関係を示すグラフ
【図１２】キャップ制課金を採用したときの（ａ）課金定義テーブルの例示図と（ｂ）課金額と単位利用量との関係を示すグラフ
【図１３】ミニマムチャージ制課金を採用したときの（ａ）課金定義テーブルの例示図と（ｂ）課金額と単位利用量との関係を示すグラフ
【図１４】ダブル定額制課金を採用したときの（ａ）課金定義テーブルの例示図と（ｂ）課金額と単位利用量との関係を示すグラフ
【図１５】別システム内の印刷ログテーブルの一例を示す図
【図１６】別システム内の契約管理テーブルの一例を示す図
【図１７】別システム内の料金表の一例を示す図
【図１８】第２の実施形態の利用ログテーブルのデータ構造の一例を示す図
【図１９】課金定義テーブルのデータ構造の一例を示す図
【図２０】課金定義テーブルのデータ構造の一例を示す図
【図２１】別システム内の通話ログテーブルの一例を示す図
【図２２】別システム内の契約管理テーブルの一例を示す図
【図２３】別システム内の料金表の一例を示す図
【図２４】第３の実施形態の課金定義テーブルのデータ構造の一例を示す図
【図２５】第４の実施形態の課金定義テーブルのデータ構造の一例を示す図
【図２６】第５の実施形態の課金定義テーブルのデータ構造の一例を示す図
【符号の説明】
【０１０９】
１０    請求書作成装置
１０ｄ  ＣＰＵ
１０ｇ  ＨＤＤ
１２    利用ログテーブル
１３    課金定義テーブル
１４    料金定義テーブル
１５    請求書作成ソフトウエア
１５ａ  課金額算出モジュール
【図１】
2007179383.tif 000003
【図２】
2007179383.tif 000004
【図３】
2007179383.tif 000005
【図４】
2007179383.tif 000006
【図５】
2007179383.tif 000007
【図６】
2007179383.tif 000008
【図７】
2007179383.tif 000009
【図８】
2007179383.tif 000010
【図９】
2007179383.tif 000011
【図１０】
2007179383.tif 000012
【図１１】
2007179383.tif 000013
【図１２】
2007179383.tif 000014
【図１３】
2007179383.tif 000015
【図１４】
2007179383.tif 000016
【図１５】
2007179383.tif 000017
【図１６】
2007179383.tif 000018
【図１７】
2007179383.tif 000019
【図１８】
2007179383.tif 000020
【図１９】
2007179383.tif 000021
【図２０】
2007179383.tif 000022
【図２１】
2007179383.tif 000023
【図２２】
2007179383.tif 000024
【図２３】
2007179383.tif 000025
【図２４】
2007179383.tif 000026
【図２５】
2007179383.tif 000027
【図２６】
2007179383.tif 000028