【解決手段】入金データテーブルから振込人名のデータと振込金額のデータとを抽出し、振込人名のデータを用いて顧客データテーブルを検索し、該当するレコードの各々に記憶された顧客IDのデータを抽出し、各顧客IDのデータを用いて請求データテーブルを検索し、該当するレコードに記憶された請求金額のデータを抽出する。入金データテーブルから抽出された振込金額のデータについて、各顧客IDについて請求データテーブルから抽出された請求金額のデータと比較して、所定の一致条件を満たす請求金額のデータがある場合には該当するレコードの消込処理を行い、該所定の一致条件を満たす請求金額のデータがない場合には他の顧客IDについて抽出された請求金額のデータと比較する。
複数のレコードを有し、各レコードについて、振込人名のデータを記憶するためのフィールドと、振込金額のデータを記憶するためのフィールドと、を含む入金データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、振込人名のデータを記憶するためのフィールドと、を含む顧客データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、請求金額のデータを記憶するためのフィールドと、を含む請求データテーブルと、
を参照して、入金データと請求データとを照合する装置であって、
前記入金データテーブルに含まれる1つのレコードについて、振込人名のデータと振込金額のデータとを抽出する入金データ抽出手段と、
前記入金データテーブルから抽出された振込人名のデータを用いて前記顧客データテーブルを検索し、該当するレコードの各々に記憶された顧客IDのデータを抽出する顧客データ抽出手段と、
前記顧客データテーブルから抽出された各顧客IDのデータを用いて前記請求データテーブルを検索し、各顧客IDについて、該当するレコードに記憶された請求金額のデータを抽出する請求データ抽出手段と、
前記入金データテーブルから抽出された振込金額のデータについて、各顧客IDについて前記請求データテーブルから抽出された請求金額のデータと比較して、所定の一致条件を満たす請求金額のデータがある場合には該当するレコードの消込処理を行い、前記所定の一致条件を満たす請求金額のデータがない場合には他の顧客IDについて前記請求データテーブルから抽出された請求金額のデータと比較する比較手段と、
を具備するデータ照合装置。
前記比較手段は、前記請求データテーブルの前記消込処理を行うレコードに記憶された顧客IDのデータに対応する顧客IDのデータが記憶された前記顧客データテーブルのレコードに、振込元の金融機関コード又は口座番号のデータが記憶されていなかった場合に、前記入金データテーブルの前記消込処理を行うレコードに記憶された振込元の金融機関コード又は口座番号のデータを、前記顧客データテーブルの該当するレコードに記憶させる、請求項4記載のデータ照合装置。
複数のレコードを有し、各レコードについて、振込人名のデータを記憶するためのフィールドと、振込金額のデータを記憶するためのフィールドと、を含む入金データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、振込人名のデータを記憶するためのフィールドと、を含む顧客データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、請求金額のデータを記憶するためのフィールドと、を含む請求データテーブルと、
を参照可能なコンピュータに以下の各ステップを実行させることによって、入金データと請求データとを照合する方法であって、
前記入金データテーブルに含まれる1つのレコードについて、振込人名のデータと振込金額のデータとを抽出する入金データ抽出ステップと、
前記入金データテーブルから抽出された振込人名のデータを用いて前記顧客データテーブルを検索し、該当するレコードの各々に記憶された顧客IDのデータを抽出する顧客データ抽出ステップと、
前記顧客データテーブルから抽出された各顧客IDのデータを用いて前記請求データテーブルを検索し、各顧客IDについて、該当するレコードに記憶された請求金額のデータを抽出する請求データ抽出ステップと、
前記入金データテーブルから抽出された振込金額のデータについて、各顧客IDについて前記請求データテーブルから抽出された請求金額のデータと比較して、所定の一致条件を満たす請求金額のデータがある場合には該当するレコードの消込処理を行い、前記所定の一致条件を満たす請求金額のデータがない場合には他の顧客IDについて前記請求データテーブルから抽出された請求金額のデータと比較する比較ステップと、
を具備するデータ照合方法。
複数のレコードを有し、各レコードについて、振込人名のデータを記憶するためのフィールドと、振込金額のデータを記憶するためのフィールドと、を含む入金データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、振込人名のデータを記憶するためのフィールドと、を含む顧客データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、請求金額のデータを記憶するためのフィールドと、を含む請求データテーブルと、
を参照可能なコンピュータに以下の各ステップを実行させることによって、入金データと請求データとを照合するプログラムであって、
前記入金データテーブルに含まれる1つのレコードについて、振込人名のデータと振込金額のデータとを抽出する入金データ抽出ステップと、
前記入金データテーブルから抽出された振込人名のデータを用いて前記顧客データテーブルを検索し、該当するレコードの各々に記憶された顧客IDのデータを抽出する顧客データ抽出ステップと、
前記顧客データテーブルから抽出された各顧客IDのデータを用いて前記請求データテーブルを検索し、各顧客IDについて、該当するレコードに記憶された請求金額のデータを抽出する請求データ抽出ステップと、
前記入金データテーブルから抽出された振込金額のデータについて、各顧客IDについて前記請求データテーブルから抽出された請求金額のデータと比較して、所定の一致条件を満たす請求金額のデータがある場合には該当するレコードの消込処理を行い、前記所定の一致条件を満たす請求金額のデータがない場合には他の顧客IDについて前記請求データテーブルから抽出された請求金額のデータと比較する比較ステップと、
を実行させるデータ照合プログラム。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態に係るデータ照合装置について、図面を参照しながら詳しく説明する。
【0011】
<1.データ照合装置の構成>
図1は、本発明の一実施形態に係るデータ照合装置の概略構成図である。データ照合装置1は、入金データテーブル11、顧客データテーブル12及び請求データテーブル13を記憶した記憶媒体にアクセス可能なコンピュータ装置である。
データ照合装置1は、入金データ抽出部21と、顧客データ抽出部22と、請求データ抽出部23と、合計値算出部24と、最小値選出部25と、比較部26と、出力部27と、入力部28とを具備している。ここでは、データ照合装置1の各構成は、1つのコンピュータ装置内に含まれるものとして図示したが、これらの構成が別個のコンピュータ装置に分散し、それらのコンピュータ装置が協働して動作することとしても良い。
【0012】
図2は、データ照合装置が参照可能な各種データテーブルのデータ構成例(照合前)を示す図である。
図3は、データ照合装置によって更新された各種データテーブルのデータ構成例(照合後)を示す図である。
【0013】
<1−1.入金データテーブル11>
入金データテーブル11は、主に取引銀行から送付される振込データから作成されている。入金データテーブル11は、シーケンシャル番号111で特定される複数のレコードを有している。入金データテーブル11の各レコードは、入金日112を記憶するためのフィールドと、振込人名(カナ)113を記憶するためのフィールドと、振込金額114を記憶するためのフィールドと、振込元口座番号115を記憶するためのフィールドと、振込元金融機関コード116を記憶するためのフィールドと、振込元支店コード117を記憶するためのフィールドと、消込情報118を記憶するためのフィールドと、を含んでいる。
【0014】
入金日112、振込人名(カナ)113及び振込金額114は、銀行振込において通常付加される情報である。これに対し、振込元口座番号115、振込元金融機関コード116及び振込元支店コード117は、銀行振込において任意的に付加される情報(任意情報)であり、これらの任意情報が入金データテーブル11のすべてのレコードに記憶されているとは限らない。
【0015】
消込情報118は、上記実施形態に係るデータ照合装置1により、当該レコードに係る入金データが請求データに対して所定の一致条件を満たすことを確認済か否かを示す情報である。消込情報118としては、例えば、請求データテーブル13のシーケンシャル番号131を特定することにより、入金データが請求データテーブル13の内のどのレコードに対して所定の一致条件を満たしたかを示す情報を記憶する(
図3参照)。
或いは、消込情報118として、単に請求データに対して所定の一致条件を満たすことを確認済か否かを示す2値データ(例えば、0又は1)を記憶しても良い。
【0016】
<1−2.顧客データテーブル12>
顧客データテーブル12は、データ照合装置1を使用するユーザの顧客に関する情報を記憶している。顧客データテーブル12は、シーケンシャル番号121で特定される複数のレコードを有している。顧客データテーブル12の各レコードは、顧客ID122を記憶するためのフィールドと、振込人名(カナ)123を記憶するためのフィールドと、振込元口座番号125を記憶するためのフィールドと、振込元金融機関コード126を記憶するためのフィールドと、振込元支店コード127を記憶するためのフィールドと、を含んでいる。
【0017】
顧客ID122は、顧客を一意に識別するために付与された文字列である。振込人名(カナ)123は、顧客の名称に基づいてオペレータが入力したものでも良いし、当該顧客からの過去の振込のデータに基づいてオペレータが入力したものでも良い。また、例えば、顧客データテーブル12の第1及び第2レコードに示すように、同一の顧客ID「A001」について複数通りの振込人名「A0」及び「A1」を入力できるようにしても良い。
【0018】
振込元口座番号125、振込元金融機関コード126及び振込元支店コード127は、当該顧客からの過去の振込においてこれらの任意情報が付加されていた場合に、当該任意情報に基づいて記憶される情報である(
図3参照)。入金データテーブル11の振込人名(カナ)113に対応する振込人名(カナ)123が記憶されたレコードが、顧客データテーブル12に複数存在する場合でも、振込元口座番号125、振込元金融機関コード126又は振込元支店コード127に基づいて、顧客を特定できる場合がある。
【0019】
<1−3.請求データテーブル13>
請求データテーブル13は、データ照合装置1を使用するユーザから顧客に送付した請求書の情報を記憶している。請求データテーブル13は、シーケンシャル番号131で特定される複数のレコードを有している。請求データテーブル13の各レコードは、請求日132を記憶するためのフィールドと、顧客ID133を記憶するためのフィールドと、請求金額134を記憶するためのフィールドと、案件情報135を記憶するためのフィールドと、消込情報136を記憶するためのフィールドと、部分入金額137を記憶するためのフィールドと、を含んでいる。
【0020】
請求日132は、顧客への請求書の日付である。顧客ID133は、顧客データテーブル12の顧客ID122に対応する文字列である。請求金額134は、顧客への請求金額であり、例えば、商品代金、送料及び消費税の合計額が記憶される。或いは、請求の内訳を示す明細を記憶しても良い。案件情報135は、当該請求書の対象となった案件に関する情報であり、例えば、プロジェクト名、顧客側の担当者名等の情報が記憶される。
【0021】
消込情報136は、上記実施形態に係るデータ照合装置1により、当該レコードに係る請求データに対応する顧客からの入金を入金データによって確認済か否かを示す情報である。消込情報136としては、例えば、入金データテーブル11のシーケンシャル番号111を特定することにより、請求データが入金データテーブル11の内のどのレコードに対して所定の一致条件を満たしたかを示す情報を記憶する(
図3参照)。
或いは、消込情報136として、単に入金を確認済か否かを示す2値データ(例えば、0又は1)を記憶しても良い。
【0022】
部分入金額137は、当該レコードに係る請求データに対応する顧客からの入金済み金額が、請求金額134の一部のみであって、残りの金額は後日入金される予定である場合に、当該入金済みの金額を示す情報である。例えば、請求データテーブル13の第4レコードに係る請求金額「¥50,000」のうち、¥20,000の入金が入金データによって確認された場合に、当該請求データテーブル13の第4レコードに係る部分入金額137としては、入金された金額「¥20,000」が記憶される。
【0023】
<1−4.入金データ抽出部21>
図1に戻り、入金データ抽出部21は、入金データテーブル11に含まれる各レコードについて、振込人名(カナ)113と、振込金額114と、を抽出する機能を有する。入金データ抽出部21は、入金データテーブル11に含まれる各レコードについて、さらに、振込元口座番号115、振込元金融機関コード116又は振込元支店コード117を抽出することもできる。
なお、入金データテーブル11からのデータの抽出においては、消込処理が済んでいるレコードのデータは抽出しない。
【0024】
<1−5.顧客データ抽出部22>
顧客データ抽出部22は、入金データテーブル11から抽出された振込人名(カナ)113を用いて顧客データテーブル12を検索し、該当するレコードの各々に記憶された顧客ID122を抽出する機能を有する。検索の結果、複数のレコードが該当した場合には、これに対応して複数の顧客ID122を抽出する。
検索の結果、複数のレコードが該当した場合であって、且つ、入金データテーブル11から振込元口座番号115、振込元金融機関コード116又は振込元支店コード117が抽出された場合には、顧客データ抽出部22は、入金データテーブル11から抽出された振込元口座番号115、振込元金融機関コード116又は振込元支店コード117を用いて、顧客データテーブル12の該当するレコードを絞り込んで、顧客ID122を抽出する。
【0025】
<1−6.請求データ抽出部23>
請求データ抽出部23は、顧客データテーブル12から抽出された各顧客ID122を用いて請求データテーブル13を検索し、各顧客ID122に対応する各顧客ID133について、該当するレコードの各々に記憶された請求金額134を抽出する機能を有する。顧客データテーブル12から複数の顧客ID122が抽出された場合、或いは、同一顧客に複数件の請求書を送付していた場合には、請求データテーブル13の複数のレコードから請求金額134が抽出される。
なお、請求金額の抽出においては、請求データテーブル13のうち、全額の消込処理が済んでいるレコードの請求金額は抽出しない。また、部分入金額137が記憶されているレコードについては、請求金額134と部分入金額137との差額を、請求金額として抽出する。例えば、請求データテーブル13の第4レコードからは、部分入金額¥20,000を差し引いた¥30,000を、請求金額として抽出する。
【0026】
<1−7.合計値算出部24>
合計値算出部24は、請求データテーブル13から抽出された請求金額134を用いて、各顧客ID133について、請求金額134の合計値を算出する機能を有する。
【0027】
<1−8.最小値選出部25>
最小値選出部25は、請求データテーブル13から抽出された請求金額134を用いて、各顧客ID133について、請求金額134の最小値を選出する機能を有する。最小値の選出は、例えば、ある顧客ID133のデータを記憶した複数のレコードのうち、2つのレコードに係る請求金額134を比較し、低額な方の請求金額134を当該顧客ID133の未比較のレコードに係る請求金額134と比較することを、未比較のレコードが無くなるまで繰り返す等、公知の方法によることができる。
【0028】
<1−9.比較部26>
比較部26は、入金データテーブル11から抽出された振込金額114について、各顧客ID133について請求データテーブル13から抽出された請求金額134と比較して、所定の一致条件を満たす場合には入金データテーブル11及び請求データテーブル13の該当するレコードについて消込処理を行う機能を有する。比較の結果、振込金額114と請求金額134とが所定の一致条件を満たさない場合には、請求データテーブル13から抽出された他の請求金額134と比較する。
【0029】
ここで、振込金額114と請求金額134とを比較した場合に満たすべき所定の一致条件とは、例えば、これらの差額が¥0であるか、振込手数料相当額であるという条件である。例えば、振込手数料として、¥210、¥315、¥420、¥525、¥630、¥735、¥840の7通りが想定される場合に、これらの振込手数料のいずれかを請求金額134から減算した値が振込金額114と等しいときに、所定の一致条件を満たすものとすることができる。
【0030】
比較部26は、合計値算出部24によって、各顧客ID133について請求金額134の合計値が算出された場合には、当該合計値と振込金額114とを比較する。合計値が振込金額114より小さい場合には、当該顧客IDについての請求金額134と振込金額114との比較をそれ以上行わず、他の顧客IDについての請求金額134と振込金額114とを比較する。
【0031】
比較部26は、最小値選出部25によって、各顧客ID133について請求金額134の最小値が選出された場合には、当該最小値と振込金額114とを比較する。最小値が振込金額114より大きい場合には、当該顧客IDについての請求金額134と振込金額114との比較をそれ以上行わず、他の顧客IDについての請求金額134と振込金額114とを比較する。
【0032】
比較部26は、入金データテーブル11の振込元口座番号115、振込元金融機関コード116又は振込元支店コード117を、顧客データテーブル12に記憶させる。
【0033】
<1−10.出力部27>
出力部27は、顧客データ抽出部22において、該当するレコードがまったく存在しなかった場合に、結果の出力や、顧客リストの出力を行う。
また、出力部27は、比較部26において、振込金額114に対して所定の一致条件を満たす請求金額134を記憶したレコードが複数存在した場合、或いは、まったく存在しなかった場合に、結果の出力や、請求データの消込候補リストの出力を行う。
【0034】
<1−11.入力部28>
入力部28は、出力部27によって出力された顧客リストや消込候補リストの中から、オペレータの操作による顧客や請求データの指定を受付ける。
【0035】
<2.データ照合装置の動作>
図4は、上記実施形態に係るデータ照合装置の動作例を示すフローチャートである。データ照合装置1は、上述の入金データ抽出部21、顧客データ抽出部22、請求データ抽出部23、合計値算出部24、最小値選出部25、比較部26の各機能を実現するプログラムの各モジュールをコンピュータ読み取り可能な記憶媒体から読み出して実行することにより、以下の各ステップの処理を行う。
【0036】
<2−1.S1>
まず、入金データ抽出部21が、入金データテーブル11に含まれる1つのレコードから、振込人名(カナ)113と振込金額114とを抽出する(S1)。
例えば、
図2において、入金データテーブル11の第1レコードから入金データを抽出する場合には、振込人名(カナ)113として「A0」を、振込金額114として「¥90,000」を抽出する。
また、入金データテーブル11の第2レコードから入金データを抽出する場合には、振込人名(カナ)113として「B」を、振込金額114として「¥39,580」を抽出する。
【0037】
<2−2.S2>
次に、顧客データ抽出部22が、入金データテーブル11から抽出された振込人名(カナ)113を用いて顧客データテーブル12を検索する(S2)。
【0038】
<2−3.S3>
S2において、振込人名(カナ)113を用いて顧客データテーブル12を検索した結果、該当するレコードが1つであった場合には、顧客が1つに特定される。そこで、顧客データ抽出部22が、当該レコードに記憶された顧客ID122を抽出する(S3)。
例えば、入金データテーブル11から振込人名(カナ)113として「A0」を抽出した場合には、顧客データテーブル12の第1レコードから、顧客ID122として「A001」が抽出される。
【0039】
<2−4.S4>
S2において、振込人名(カナ)113を用いて顧客データテーブル12を検索した結果、該当するレコードが複数であった場合には、入金データ抽出部21が、入金データテーブル11の上記レコードに、振込元口座番号115、振込元金融機関コード116及び振込元支店コード117等の任意情報が記憶されているか否かを判定する(S4)。
【0040】
<2−5.S5>
S4において、入金データテーブル11に任意情報が記憶されていない場合には、顧客データ抽出部22が、顧客データテーブル12の該当する複数のレコードに記憶された顧客ID122を抽出する(S5)。
例えば、入金データテーブル11から振込人名(カナ)113として「B」を抽出した場合には、顧客データテーブル12の第3〜第5レコードから、顧客ID122として「B001」、「B002」、「B003」の3つが抽出される。
なお、S5において抽出される顧客ID122の数をI個とし、以下の説明において各顧客IDを自然数i(但し、iの最大値は2以上の整数I)によって識別する。
【0041】
<2−6.S6>
S4において、入金データテーブル11に任意情報が記憶されている場合には、入金データ抽出部21が当該任意情報を抽出し、当該任意情報を用いて、顧客データ抽出部22が顧客データテーブル12の該当するレコードの絞り込みを行う(S6)。
【0042】
S6において、任意情報を用いた絞り込みの結果、1つのレコードに絞り込まれた場合には、顧客データ抽出部22が、当該レコードに記憶された顧客ID122を抽出する(S3)。ここで1つのレコードに絞り込まれる場合の例としては、入金データテーブル11に記憶されている振込元口座番号115と同一の振込元口座番号125が顧客データテーブル12に記憶されていた場合が考えられる。
【0043】
S6において、任意情報を用いた絞り込みの結果、より少ない複数のレコードに絞り込まれた場合、或いは、絞り込みができなかった場合には、顧客データ抽出部22が、顧客データテーブル12の該当する複数のレコードに記憶された顧客ID122を抽出する(S5)。より少ない複数のレコードに絞り込まれる場合の例としては、入金データテーブル11に記憶されている振込元金融機関コード116又はこれと振込元支店コード117と同一のデータが顧客データテーブル12の複数のレコードに記憶されている場合が考えられる。絞り込みができない場合の例としては、顧客データテーブル12に振込元口座番号125、振込元金融機関コード126及び振込元支店コード127等の任意情報が記憶されていない場合が考えられる。
【0044】
<2−7.S7>
S6において、任意情報を用いた絞り込みの結果、該当するレコードがなくなってしまった場合には、顧客データ抽出部22が、結果の出力及び顧客リストの出力をするよう出力部27を制御する(S7)。該当するレコードがなくなってしまう場合の例としては、顧客データテーブル12に記憶されている任意情報のデータが古く、顧客の取引銀行の情報を正確に反映していなかった場合が考えられる。
【0045】
出力部27によって出力する顧客リストとしては、例えば、S2における振込人名(カナ)113を用いた顧客データテーブル12の検索結果を出力しても良いし、全顧客リストを出力しても良い。オペレータが入力部28の操作によって顧客リストの中の1つの顧客を指定した場合には、顧客データ抽出部22が、当該顧客の顧客ID122を抽出する(S3)。また、オペレータが、入力部28の操作によって顧客リストの中の複数の顧客を指定できるようにして、顧客データ抽出部22が、当該複数の顧客の顧客ID122を抽出するようにしても良い(S5)。
【0046】
<2−8.S8>
S2において、振込人名(カナ)113を用いて顧客データテーブル12を検索した結果、該当するレコードが存在しなかった場合には、顧客データ抽出部22が、結果の出力及び顧客リストの出力をするよう出力部27を制御する(S8)。顧客リストとしては、例えば、全顧客リストを出力する。オペレータが入力部28の操作によって顧客リストの中の1つの顧客を指定した場合には、顧客データ抽出部22が、当該顧客の顧客ID122を抽出する(S3)。また、オペレータが、入力部28の操作によって顧客リストの中の複数の顧客を指定できるようにして、顧客データ抽出部22が、当該複数の顧客の顧客ID122を抽出するようにしても良い(S5)。
【0047】
<2−9.S100>
S3により、顧客データ抽出部22によって顧客ID122が1つ抽出された場合には、請求データ抽出部23が、当該顧客ID122に対応する顧客ID133についての請求金額134を抽出し、合計値算出部24が、当該顧客ID133について、請求金額134の合計値を算出し、比較部26が、これらの請求金額134と振込金額114とを比較する(S100)。この処理の詳細は後述する。
【0048】
<2−10.S200>
S5により、顧客データ抽出部22によって顧客ID122が複数抽出された場合には、請求データ抽出部23が、各顧客ID122に対応する各顧客ID133についての請求金額134を抽出し、合計値算出部24が、各顧客ID133について、請求金額134の合計値を算出し、最小値選出部25が、各顧客ID133について、請求金額134の最小値を選出し、比較部26が、これらの請求金額134と振込金額114とを比較する(S200)。この処理の詳細は後述する。
【0049】
<2−11.S9>
S100又はS200により、振込金額114を請求金額134と比較し、入金データテーブル11の上記レコードに対して所定の一致条件を満たす請求データテーブル13のレコードが1つ(1組)に特定された場合には、比較部26は、入金データテーブル11及び請求データテーブル13の該当するレコードについて消込処理を行う(S9)。
消込処理は、例えば、入金データテーブル11に消込情報118を記憶させるとともに、請求データテーブル13に消込情報136を記憶させることにより行う。
【0050】
例えば、S100において、入金データテーブル11の第1レコードに係る入金データが、請求データテーブル13の第1及び第2レコードに係る請求データに対応することが確認された場合には、
図3に示すように、当該入金データテーブル11の第1レコードに係る消込情報118として、対応する請求データテーブル13のシーケンシャル番号「1、2」を記憶させる。また、請求データテーブル13の第1及び第2レコードに係る消込情報136として、入金データテーブル11のシーケンシャル番号「1」を記憶させる。
【0051】
また、S200において、入金データテーブル11の第2レコードに係る入金データが、請求データテーブル13の第7及び第8レコードに係る請求データに対応することが確認された場合には、
図3に示すように、当該入金データテーブル11の第2レコードに係る消込情報118として、対応する請求データテーブル13のシーケンシャル番号「7、8」を記憶させる。また、請求データテーブル13の第7及び第8レコードに係る消込情報136として、入金データテーブル11のシーケンシャル番号「2」を記憶させる。
【0052】
<2−12.S10>
比較部26は、(a)入金データテーブル11の消込処理を行うレコードに、振込元口座番号115、振込元金融機関コード116又は振込元支店コード117が記憶されている場合であって、且つ、(b1)顧客データテーブル12の該当レコードに振込元口座番号125、振込元金融機関コード126又は振込元支店コード127が記憶されておらず、或いは(b2)入金データテーブル11のデータと異なっている場合には、顧客データテーブル12の該当レコードに、入金データテーブル11の振込元口座番号115、振込元金融機関コード116又は振込元支店コード117を記憶させる(S10)。
ここで顧客データテーブル12の該当レコードとは、請求データテーブル13の消込処理を行うレコードに記憶された顧客ID133に対応する顧客ID122のデータが記憶された顧客データテーブル12のレコードを意味する。そのような該当レコードが複数存在する場合には、さらに、入金データテーブル11の消込処理を行うレコードに記憶された振込人名(カナ)113に対応する振込人名(カナ)123のデータが記憶された顧客データテーブル12のレコードに限定しても良い。
【0053】
例えば、請求データテーブル13の消込処理を行う第1及び第2レコードに顧客ID133として「A001」が記憶されており、これに対応する顧客ID122が顧客データテーブル12の第1及び第2レコードに記憶されている。さらに、入金データテーブル11の消込処理を行う第1レコードに振込人名(カナ)113として「A0」が記憶されており、これに対応する振込人名(カナ)123が顧客データテーブル12の第1レコードに記憶されている。そこで、
図3に示すように、顧客データテーブル12の第1レコードに、入金データテーブル11の消込処理を行う第1レコードに記憶された振込元口座番号「1234567」、振込元金融機関コード「0003」及び振込元支店コード「246」を記憶させる。
【0054】
S10の処理により、その後に顧客データ抽出部22による振込人名(カナ)113を用いた検索において顧客データテーブル12の複数のレコードが該当した場合には、振込元口座番号115、振込元金融機関コード116又は振込元支店コード117による絞り込みが可能となる。
なお、S10の処理は、振込元口座番号115、振込元金融機関コード116及び振込元支店コード117等の任意情報を用いた絞り込みの結果、1つのレコードに絞り込めなかった場合(S6からS5又はS7に遷移した場合)に行うこととしても良い。
【0055】
<3.S100の詳細>
図5は、
図4のS3において顧客IDが1つ抽出された場合のマッチング処理の詳細を示すフローチャートである。
【0056】
<3−1.S102>
図4のS3により、顧客データ抽出部22によって顧客ID122が1つ抽出された場合には、請求データ抽出部23が、当該顧客ID122に対応する顧客ID133を用いて請求データテーブル13を検索し、当該顧客ID133について、該当するレコードの各々に記憶された請求金額134を抽出する(S102)。同一顧客に複数の請求書を送付していた場合には、請求データテーブル13の複数のレコードから請求金額134が抽出される。
【0057】
<3−2.S103>
次に、合計値算出部24が、請求データテーブル13から抽出された請求金額134を用いて、当該顧客ID133について、請求金額134の合計値を算出する(S103)。
【0058】
<3−3.S104、S105>
次に、比較部26が、合計値算出部24によって算出された請求金額134の合計値と振込金額114とを比較する(S104)。
【0059】
請求金額134の合計値が振込金額114に対して所定の一致条件を満たす場合には、入金データテーブル11の上記レコードに対して所定の一致条件を満たす請求データテーブル13のレコードが1つ(1組)に特定されたことになるので、S100の処理を終了する。
【0060】
請求金額134の合計値が振込金額114より小さい場合には、入金データテーブル11の上記レコードは当該顧客ID133についての請求データに関する入金データではないと考えられるので、エラー情報を出力して(S105)、S100の処理を終了する。或いは、
図4のS8に戻って顧客の選択をやり直す。
【0061】
請求金額134の合計値が振込金額114より大きい場合には、入金データテーブル11の上記レコードは当該顧客ID133についての一部の請求データに関する入金データであると考えられるので、次のS109に進んで当該顧客ID133についての請求金額134との比較を続ける。
【0062】
<3−4.S109>
請求金額134の合計値が振込金額114より大きかった場合には、合計値算出部24が、当該顧客ID133について、未だ部分入金されていない請求データに限定して請求金額134の合計値を算出する(S109)。例えば、請求データテーブル13の第4レコードのように部分入金されている請求データは、ここでは除外して合計値を算出する。部分入金されている請求データとのマッチングは、自動処理になじまない場合があるからである。
【0063】
<3−5.S110、S111>
次に、比較部26が、合計値算出部24によって算出された(部分入金されていない請求データの)請求金額134の合計値と振込金額114とを比較する(S110)。
【0064】
請求金額134の合計値が振込金額114に対して所定の一致条件を満たす場合には、入金データテーブル11の上記レコードに対して所定の一致条件を満たす請求データテーブル13のレコードが1つ(1組)に特定されたことになるので、S100の処理を終了する。
【0065】
請求金額134の合計値が振込金額114より小さい場合には、入金データテーブル11の上記レコードは当該顧客ID133についての請求データに関する入金データではないと考えられるので、エラー情報を出力して(S111)、S100の処理を終了する。或いは、
図4のS8に戻って顧客の選択をやり直す。
【0066】
請求金額134の合計値が振込金額114より大きい場合には、入金データテーブル11の上記レコードは当該顧客ID133についてのさらに一部の請求データに関する入金データであると考えられるので、次のS112に進んで当該顧客ID133についての請求金額134との比較を続ける。
【0067】
<3−6.S112、S113>
請求金額134の合計値が振込金額114より大きかった場合には、比較部26が、当該顧客ID133についての(未だ部分入金されていない請求データの)請求金額134と振込金額114とを、請求データテーブル13のレコードごとに(請求書単位で)比較する(S112)。
請求金額134が振込金額114に対して所定の一致条件を満たすようなレコードがある場合には、比較部26は、当該レコードに係るシーケンシャル番号131を、所定の記憶装置に一致データとして記憶させる(S113)。
【0068】
<3−7.S114、S115>
次に、合計値算出部24が、当該顧客ID133について、案件情報135ごとの(未だ部分入金されていない請求データの)請求金額134の合計値を算出し、比較部26が、算出された案件情報135ごとの請求金額134の合計値と振込金額114とを比較する(S114)。
請求金額134の合計値が振込金額114に対して所定の一致条件を満たすような案件情報135がある場合には、比較部26は、当該案件情報135を記憶したレコードに係るシーケンシャル番号131の組を、所定の記憶装置に一致データとして記憶させる(S115)。
【0069】
例えば、請求データテーブル13の第1〜第3レコードに示されるように、顧客ID「A001」に対する請求金額の合計値は¥130,000、最小値は¥30,000、レコードごとの請求金額は¥60,000、¥30,000、¥40,000であり、いずれも、入金データテーブル11の第1レコードに係る振込金額「¥90,000」とは一致しないが、案件情報135として「U」を記憶した第1及び第2レコードに係る請求金額の合計値は¥90,000であり、振込金額と一致する。従って、所定の一致条件を満たすものとして、案件情報135として「U」を記憶したレコードに係るシーケンシャル番号「1、2」の組を一致データとして記憶させる。
【0070】
<3−8.S118>
次に、比較部26は、上述のS113及びS115の処理において記憶された一致データを参照し、一致データの数を判定する(S118)。
一致データが1つであれば、入金データテーブル11の上記レコードに対して所定の一致条件を満たす請求データテーブル13のレコードが1つ(1組)に特定されたことになるので、S100の処理を終了する。
【0071】
<3−9.S119>
一致データが複数ある場合、又は、一致データがない場合には、比較部26は、結果の出力及び請求データの消込候補リストの出力をするよう出力部27を制御する(S119)。消込候補リストとしては、例えば、一致データが複数ある場合に、請求データテーブル13のうち当該一致データに該当する複数のレコードの組を出力する。或いは、一致データがない場合に、請求データテーブル13のうち当該顧客ID133についてのすべてのレコードを出力する。
【0072】
また、請求データテーブル13の当該顧客ID133についてのレコードに、部分入金額137のデータが記憶されている場合には、比較部26は、当該顧客ID133についてのレコードのうち、部分入金額137のデータを記憶したすべてのレコードを消込候補リストとして出力するよう出力部27を制御しても良い。S109〜S114の処理において、部分入金されている請求データが除外されていたためである。
【0073】
オペレータが入力部28の操作によって消込候補リストの中の1つ(1組)を指定した場合には、請求データテーブル13のレコードが1つ(1組)に特定されたことになるので、S100の処理を終了する。また、オペレータが、消込候補リストからの指定をせずに、
図4のS8に戻って顧客の選択をやり直せるようにしても良い。
【0074】
なお、上述の比較処理において、既に終了した比較処理と同一の請求金額を比較対象とする場合は、比較処理を省略しても良い。例えば、当該顧客について部分入金額137のデータを有するレコードがない場合には、S109及び110の比較処理は、既に終了したS103及びS104の比較処理と同一の請求金額を比較対象とするので、省略しても良い。
【0075】
<4.S200の詳細>
図6は、
図4のS5において顧客IDが複数(I個)抽出された場合のマッチング処理の詳細を示すフローチャートである。
【0076】
<4−1.S201>
図4のS5により、顧客データ抽出部22によって顧客ID122が複数抽出された場合には、I個の顧客IDのそれぞれについて請求金額134と振込金額114とを比較するため、まず、各顧客ID122に対応する各顧客ID133を識別する自然数iを1にセットする(S201)。
以下のS202〜S216の処理は、自然数iで特定される1つの顧客IDについて行い、S217において自然数iに1を加えるごとに、次の顧客IDについて同じ処理を繰り返す。例えば、i=1のときは顧客ID「B001」、i=2のときは顧客ID「B002」、i=3のときは顧客ID「B003」について、S202〜S216の処理を行う。
【0077】
<4−2.S202>
S202において、請求データ抽出部23が、自然数iによって識別される当該顧客ID133を用いて請求データテーブル13を検索し、当該顧客ID133について、該当するレコードの各々に記憶された請求金額134を抽出する。同一顧客に複数の請求書を送付していた場合には、請求データテーブル13の複数のレコードから請求金額134が抽出される。
【0078】
<4−3.S203>
次に、合計値算出部24が、請求データテーブル13から抽出された請求金額134を用いて、当該顧客ID133について、請求金額134の合計値を算出する(S203)。
【0079】
<4−4.S204、S205>
次に、比較部26が、合計値算出部24によって算出された請求金額134の合計値と振込金額114とを比較する(S204)。
【0080】
請求金額134の合計値が振込金額114に対して所定の一致条件を満たす場合には、入金データテーブル11の上記レコードに対して所定の一致条件を満たす請求データテーブル13のレコードが1つ(1組)に特定されたことになるので、請求データテーブル13のうち当該顧客ID133が記憶されたレコードに係るシーケンシャル番号131の組を、所定の記憶装置に一致データとして記憶させ(S205)、当該顧客ID133についての比較を終了して後述のS216に進む。
【0081】
請求金額134の合計値が振込金額114より小さい場合には、入金データテーブル11の上記レコードは当該顧客ID133についての請求データに関する入金データではないと考えられるので、当該顧客ID133についての比較を終了して後述のS216に進む。
例えば、請求データテーブル13の第4レコードに示されるように、顧客ID「B001」に対する請求金額(部分入金額との差額)の合計値が¥30,000の場合に、入金データテーブル11の第2レコードに係る振込金額「¥39,580」の入金がなされることは通常考えられないので、当該顧客ID133についての比較を終了する。
【0082】
請求金額134の合計値が振込金額114より大きい場合には、入金データテーブル11の上記レコードは当該顧客ID133についての一部の請求データに関する入金データである可能性があるので、次のS206に進んで当該顧客ID133についての請求金額134との比較を続ける。
【0083】
<4−5.S206>
次に、最小値選出部25が、請求データテーブル13から抽出された請求金額134を用いて、当該顧客ID133について、請求金額134の最小値を選出する(S206)。
【0084】
<4−6.S207、S208>
次に、比較部26が、最小値選出部25によって選出された請求金額134の最小値と振込金額114とを比較する(S207)。
【0085】
請求金額134の最小値が振込金額114に対して所定の一致条件を満たす場合には、入金データテーブル11の上記レコードに対して所定の一致条件を満たす請求データテーブルのレコードが、当該最小値を記憶したレコードに特定されたことになるので、当該最小値を記憶したレコードに係るシーケンシャル番号131を、所定の記憶装置に一致データとして記憶させ(S208)、当該顧客ID133についての比較を終了して後述のS216に進む。
【0086】
請求金額134の最小値が振込金額114より大きい場合には、入金データテーブル11の上記レコードは当該顧客ID133についての請求データに関する入金データではないと考えられるので、当該顧客ID133についての比較を終了して後述のS216に進む。
例えば、請求データテーブル13の第5レコードに示されるように、顧客ID「B002」に対する請求金額の最小値が「¥90,000」の場合に、入金データテーブル11の第2レコードに係る振込金額「¥39,580」の入金がなされることは(部分入金でない限り)考えられないので、当該顧客ID133についての比較を終了する。
【0087】
請求金額134の最小値が振込金額114より小さい場合には、入金データテーブル11の上記レコードは当該顧客ID133についての他の請求データに関する入金データである可能性があるので、次のS209に進んで当該顧客ID133についての請求金額134との比較を続ける。
【0088】
<4−7.S209>
請求金額134の最小値が振込金額114より小さかった場合には、合計値算出部24が、当該顧客ID133について、未だ部分入金されていない請求データに限定して請求金額134の合計値を算出する(S209)。
【0089】
<4−8.S210、S211>
次に、比較部26が、合計値算出部24によって算出された(部分入金されていない請求データの)請求金額134の合計値と振込金額114とを比較する(S210)。
【0090】
請求金額134の合計値が振込金額114に対して所定の一致条件を満たす場合には、入金データテーブル11の上記レコードに対して所定の一致条件を満たす請求データテーブル13のレコードが1つ(1組)に特定されたことになるので、請求データテーブル13のうち当該顧客ID133が記憶されたレコードに係るシーケンシャル番号131の組を、所定の記憶装置に一致データとして記憶させ(S211)、当該顧客ID133についての比較を終了して後述のS216に進む。
【0091】
請求金額134の合計値が振込金額114より小さい場合には、入金データテーブル11の上記レコードは当該顧客ID133についての請求データに関する入金データではないと考えられるので、当該顧客ID133についての比較を終了して後述のS216に進む。
【0092】
請求金額134の合計値が振込金額114より大きい場合には、入金データテーブル11の上記レコードは当該顧客ID133についてのさらに一部の請求データに関する入金データである可能性があるので、次のS212に進んで当該顧客ID133についての請求金額134との比較を続ける。
【0093】
<4−9.S212、S213>
次に、比較部26が、当該顧客ID133についての(未だ部分入金されていない請求データの)請求金額134と振込金額114とを、請求データテーブル13のレコードごとに(請求書単位で)比較する(S212)。
請求金額134が振込金額114に対して所定の一致条件を満たすようなレコードがある場合には、比較部26は、当該レコードに係るシーケンシャル番号131を、所定の記憶装置に一致データとして記憶させる(S213)。
【0094】
<4−10.S214、S215>
次に、合計値算出部24が、当該顧客ID133について、案件情報135ごとの(未だ部分入金されていない請求データの)請求金額134の合計値を算出し、比較部26が、算出された案件情報135ごとの請求金額134の合計値と振込金額114とを比較する(S214)。
請求金額134の合計値が振込金額114に対して所定の一致条件を満たすような案件情報135がある場合には、比較部26は、当該案件情報135を記憶したレコードに係るシーケンシャル番号131の組を、所定の記憶装置に一致データとして記憶させる(S215)。
【0095】
例えば、請求データテーブル13の第6〜第8レコードに示されるように、顧客ID「B003」に対する請求金額の合計値は¥60,000、最小値は¥20,000、レコードごとの請求金額はそれぞれ¥20,000であり、いずれも、入金データテーブル11の第2レコードに係る振込金額「¥39,580」とは一致しないが、案件情報135として「Z」を記憶した第7及び第8レコードに係る請求金額の合計値は¥40,000であり、この¥40,000から振込手数料¥420を減算した値が振込金額「¥39,580」と一致する。従って、所定の一致条件を満たすものとして、案件情報135として「Z」を記憶したレコードに係るシーケンシャル番号「7、8」の組を一致データとして記憶させる。
以上で当該顧客ID133についての比較を終了し、S216に進む。
【0096】
<4−11.S216、S217>
S216においては、各顧客IDを識別する自然数iが最大値Iに達しているか否かを判定する。
自然数iが最大値Iに達している場合には、顧客データ抽出部22によって抽出されたすべての顧客ID122に対応する顧客ID133について請求金額134と振込金額114との比較が終了したことになるので、S218に進む。
自然数iが最大値Iに達していない場合には、次の顧客ID133について請求金額134と振込金額114とを比較するため、自然数iに1を加えて(S217)、上述のS202〜S216の処理を繰り返す。
【0097】
<4−12.S218>
S218において、比較部26は、上述のS205、S208、S211、S213、S215の処理において記憶された一致データを参照し、一致データの数を判定する。
一致データが1つであれば、入金データテーブル11の上記レコードに対して所定の一致条件を満たす請求データテーブル13のレコードが1つ(1組)に特定されたことになるので、S200の処理を終了する。
【0098】
<4−13.S219>
一致データが複数ある場合、又は、一致データがない場合には、比較部26は、結果の出力及び請求データの消込候補リストの出力をするよう出力部27を制御する(S219)。消込候補リストとしては、例えば、一致データが複数ある場合に、請求データテーブル13のうち当該一致データに該当する複数のレコードの組を出力する。
【0099】
オペレータが入力部28の操作によって消込候補リストの中の1つ(1組)を指定した場合には、請求データテーブル13のレコードが1つ(1組)に特定されたことになるので、S200の処理を終了する。
【0100】
なお、上述の比較処理において、既に終了した比較処理と同一の請求金額を比較対象とする場合は、比較処理を省略しても良い。例えば、当該顧客について部分入金額137のデータを有するレコードがない場合には、S209及びS210の比較処理は、既に終了したS203及びS204の比較処理と同一の請求金額を比較対象とするので、省略しても良い。
【0101】
<5.上記実施形態による効果>
上記実施形態によれば、入金データの振込人名に該当する顧客が複数存在する場合でも(S5)、入金データテーブル11から抽出された振込金額114のデータと、各顧客IDについて請求データテーブル13から抽出された請求金額134のデータとを比較し(S202〜S216)、振込金額114のデータに対して所定の一致条件を満たす請求金額134のデータがない場合には他の顧客IDについて抽出された請求金額134のデータと比較することによって(S217)、顧客を特定できるので、入金データと請求データとの照合を効率的に行うことができる。
【0102】
また、上記実施形態によれば、合計値算出部24によって算出された合計値と振込金額114とを比較し(S204、S210)、合計値が振込金額114より小さい場合に、個別の請求金額134との比較をすることなく当該顧客IDについての比較を終了するので、比較処理を簡素化することができる。
【0103】
また、上記実施形態によれば、最小値選出部25によって選出された最小値と振込金額114とを比較し(S207)、最小値が振込金額114より大きい場合に、個別の請求金額134との比較をすることなく当該顧客IDについての比較を終了するので、比較処理を簡素化することができる。
【0104】
また、上記実施形態によれば、振込人名に基づいた検索によって複数の顧客が該当した場合でも、振込元の金融機関コード、支店コード又は口座番号に基づいて顧客IDの絞り込みをすることができる(S6)。
【0105】
また、上記実施形態によれば、振込元の金融機関コード、支店コード又は口座番号を顧客データテーブル12に記憶させるので(S10)、以後の絞り込みを容易にすることができる。
複数のレコードを有し、各レコードについて、振込人名のデータを記憶するためのフィールドと、振込金額のデータを記憶するためのフィールドと、を含む入金データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、振込人名のデータを記憶するためのフィールドと、を含む顧客データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、請求金額のデータを記憶するためのフィールドと、を含む請求データテーブルと、
を参照して、入金データと請求データとを照合する装置であって、
前記入金データテーブルに含まれる1つのレコードについて、振込人名のデータと振込金額のデータとを抽出する入金データ抽出手段と、
前記入金データテーブルから抽出された振込人名のデータを用いて前記顧客データテーブルを検索し、該当するレコードに記憶された顧客IDのデータを抽出する顧客データ抽出手段と、
前記顧客データテーブルから抽出された顧客IDのデータを用いて前記請求データテーブルを検索し、顧客IDについて、該当するレコードに記憶された請求金額のデータを抽出する請求データ抽出手段と、
前記請求データテーブルから抽出された請求金額のデータを用いて、顧客IDについて請求金額の合計値を算出する合計値算出手段と、
前記入金データテーブルから抽出された振込金額と、顧客IDについて算出された請求金額の合計値とを比較し、一致する場合に、該当するレコードの消込処理を行う手段と、
を具備するデータ照合装置。
複数のレコードを有し、各レコードについて、振込人名のデータを記憶するためのフィールドと、振込金額のデータを記憶するためのフィールドと、を含む入金データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、振込人名のデータを記憶するためのフィールドと、を含む顧客データテーブルと、
複数のレコードを有し、各レコードについて、顧客IDのデータを記憶するためのフィールドと、請求金額のデータを記憶するためのフィールドと、を含む請求データテーブルと、
を参照して、入金データと請求データとを照合する装置であって、
前記入金データテーブルに含まれる1つのレコードについて、振込人名のデータと振込金額のデータとを抽出する入金データ抽出手段と、
前記入金データテーブルから抽出された振込人名のデータを用いて前記顧客データテーブルを検索し、該当するレコードに記憶された顧客IDのデータを抽出する顧客データ抽出手段と、
前記顧客データテーブルから抽出された顧客IDのデータを用いて前記請求データテーブルを検索し、顧客IDについて、該当するレコードに記憶された請求金額のデータを抽出する請求データ抽出手段と、
前記請求データテーブルから抽出された請求金額のデータを用いて、顧客IDについて案件情報ごとの請求金額の合計値を算出する合計値算出手段と、
前記入金データテーブルから抽出された振込金額と、顧客IDについて算出された案件情報ごとの請求金額の合計値とを比較し、一致する場合に、該当する案件情報のレコードの消込処理を行う手段と、
を具備するデータ照合装置。