(57)【要約】【課題】伝票の仕訳作業を行う際にその仕訳条件の検索時間を短縮して仕訳処理を高速化することが可能な技術を提供する。【解決手段】伝票の仕訳作業を行う自動仕訳処理方法において、指定された仕訳条件指示ファイルを読み込み、仕訳処理を行う際の条件を示す仕訳条件とその仕訳処理の内容を示す仕訳指示とを記憶装置上の記憶領域にツリー構造で保持するステップと、仕訳伝票ファイルから仕訳伝票データを読み込むステップと、前記記憶領域に保持したツリー構造を参照し、前記読み込んだ仕訳伝票データが満たす仕訳条件を前記ツリー構造から検索して、その検索された仕訳条件に対応する仕訳指示を取得するステップと、前記検索により取得した仕訳指示に従って前記仕訳伝票データの仕訳処理を実行するステップとを有するものである。【選択図】        図３
2004302803.tif 000002
【特許請求の範囲】
【請求項１】
伝票の仕訳作業を行う自動仕訳処理方法において、
指定された仕訳条件指示ファイルを読み込み、仕訳処理を行う際の条件を示す仕訳条件とその仕訳処理の内容を示す仕訳指示とを記憶装置上の記憶領域にツリー構造で保持するステップと、
仕訳伝票ファイルから仕訳伝票データを読み込むステップと、前記記憶領域に保持したツリー構造を参照し、前記読み込んだ仕訳伝票データが満たす仕訳条件を前記ツリー構造から検索して、その検索された仕訳条件に対応する仕訳指示を取得するステップと、前記検索により取得した仕訳指示に従って前記仕訳伝票データの仕訳処理を実行するステップとを有することを特徴とする自動仕訳方法。
【請求項２】
前記仕訳条件を記憶領域のツリー構造で保持する際に、そのツリー構造の末端の葉の部分に仕訳処理で必要な仕訳指示を保持することを特徴とする請求項１に記載された自動仕訳処理方法。
【請求項３】
前記ツリー構造を幹から葉に向かって辿って行くことにより前記仕訳条件を検索することを特徴とする請求項１または請求項２のいずれかに記載された自動仕訳処理方法。
【請求項４】
伝票の仕訳作業を行う自動仕訳処理装置において、
指定された仕訳条件指示ファイルを読み込み、仕訳処理を行う際の条件を示す仕訳条件とその仕訳処理の内容を示す仕訳指示とを記憶装置上の記憶領域にツリー構造で保持する仕訳条件指示ファイル読み込み処理部と、
仕訳伝票ファイルから仕訳伝票データを読み込む仕訳伝票ファイル読み込み処理部と、前記記憶領域に保持したツリー構造を参照し、前記読み込んだ仕訳伝票データが満たす仕訳条件を前記ツリー構造から検索して、その検索された仕訳条件に対応する仕訳指示を取得する仕訳条件検索処理部と、前記検索により取得した仕訳指示に従って前記仕訳伝票データの仕訳処理を実行する仕訳処理部とを備えることを特徴とする自動仕訳処理装置。
【請求項５】
前記仕訳条件指示ファイル読み込み処理部は、前記仕訳条件を記憶領域のツリー構造で保持する際に、そのツリー構造の末端の葉の部分に仕訳処理で必要な仕訳指示を保持するものであることを特徴とする請求項４に記載された自動仕訳処理装置。
【請求項６】
前記仕訳条件検索処理部は、前記ツリー構造を幹から葉に向かって辿って行くことにより前記仕訳条件を検索するものであることを特徴とする請求項４または請求項５のいずれかに記載された自動仕訳処理装置。
【請求項７】
伝票の仕訳作業を行う自動仕訳処理装置としてコンピュータを機能させる為のプログラムにおいて、
指定された仕訳条件指示ファイルを読み込み、仕訳処理を行う際の条件を示す仕訳条件とその仕訳処理の内容を示す仕訳指示とを記憶装置上の記憶領域にツリー構造で保持する仕訳条件指示ファイル読み込み処理部と、
仕訳伝票ファイルから仕訳伝票データを読み込む仕訳伝票ファイル読み込み処理部と、前記記憶領域に保持したツリー構造を参照し、前記読み込んだ仕訳伝票データが満たす仕訳条件を前記ツリー構造から検索して、その検索された仕訳条件に対応する仕訳指示を取得する仕訳条件検索処理部と、前記検索により取得した仕訳指示に従って前記仕訳伝票データの仕訳処理を実行する仕訳処理部としてコンピュータを機能させることを特徴とするプログラム。
【請求項８】
前記仕訳条件指示ファイル読み込み処理部は、前記仕訳条件を記憶領域のツリー構造で保持する際に、そのツリー構造の末端の葉の部分に仕訳処理で必要な仕訳指示を保持するものであることを特徴とする請求項７に記載されたプログラム。
【請求項９】
前記仕訳条件検索処理部は、前記ツリー構造を幹から葉に向かって辿って行くことにより前記仕訳条件を検索するものであることを特徴とする請求項７または請求項８のいずれかに記載されたプログラム。
【請求項１０】
伝票の仕訳作業を行う自動仕訳処理装置としてコンピュータを機能させる為のプログラムを記録したコンピュータ読み取り可能な記録媒体において、
指定された仕訳条件指示ファイルを読み込み、仕訳処理を行う際の条件を示す仕訳条件とその仕訳処理の内容を示す仕訳指示とを記憶装置上の記憶領域にツリー構造で保持する仕訳条件指示ファイル読み込み処理部と、
仕訳伝票ファイルから仕訳伝票データを読み込む仕訳伝票ファイル読み込み処理部と、前記記憶領域に保持したツリー構造を参照し、前記読み込んだ仕訳伝票データが満たす仕訳条件を前記ツリー構造から検索して、その検索された仕訳条件に対応する仕訳指示を取得する仕訳条件検索処理部と、前記検索により取得した仕訳指示に従って前記仕訳伝票データの仕訳処理を実行する仕訳処理部としてコンピュータを機能させる為のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記仕訳条件指示ファイル読み込み処理部は、前記仕訳条件を記憶領域のツリー構造で保持する際に、そのツリー構造の末端の葉の部分に仕訳処理で必要な仕訳指示を保持するものであることを特徴とする請求項１０に記載されたコンピュータ読み取り可能な記録媒体。
【請求項１２】
前記仕訳条件検索処理部は、前記ツリー構造を幹から葉に向かって辿って行くことにより前記仕訳条件を検索するものであることを特徴とする請求項１０または請求項１１のいずれかに記載されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は伝票の仕訳作業を行う自動仕訳処理装置に関し、特にコンピュータ装置を使用して会計伝票の仕訳作業を自動的に行う自動仕訳処理装置に適用して有効な技術に関するものである。
【０００２】
【従来の技術】
従来、会計伝票の仕訳作業をコンピュータ装置を使って行う場合には、仕訳処理をする自動仕訳プログラムを作成し、コンピュータ装置に搭載された記憶装置に読み込ませ、コンピュータ装置に搭載されたＣＰＵ等を用いて仕訳処理を自動化している。ここで会計伝票を仕訳するには、仕訳条件と仕訳処理とが必要であるが、仕訳条件を予め作成しておき、コンピュータ装置に接続されたデータベース等の外部記憶装置に格納しておいて、自動仕訳プログラムの指示により、会計伝票（例えば、「売上伝票」）の伝票項目名（例えば、「営業店名」）と仕訳伝票の伝票項目名に記載された値（例えば、「Ａ営業所」）とを使ってデータベース等の外部記憶装置に格納された仕訳条件を検索して、仕訳方法を示した仕訳コード（例えば、「仕訳方法０１」）を取得し、自動仕訳プログラム内に記述された仕訳コードを判断する処理によって仕訳コード毎に区別された仕訳処理をしている。
【０００３】
この様な自動仕訳システムの例として、企業の経済活動で発生する取引からその企業の財政状態や損益に関する情報を容易に作成するためのシステム及び方法が提供されており（例えば特許文献１参照）、データベース等の外部記憶装置を用いて仕訳コードを検索している。
【０００４】
【特許文献１】
特開２０００−２１５２６３号公報
【０００５】
【発明が解決しようとする課題】
前記従来の技術において、仕訳方法を示した仕訳コードを取得する為には、コンピュータ装置に接続されたデータベース等の外部記憶装置に格納されている仕訳条件を検索しており、更に、取得した仕訳方法を示した仕訳コードを判断する処理及び仕訳コード毎に区別された仕訳処理が自動仕訳プログラム内に必要である為、外部記憶装置に格納された仕訳条件の件数が増大した場合に、検索に要する性能確保が難しいという問題と、仕訳コードが追加変更になった場合に自動仕訳プログラム内に仕訳処理の追加変更が必要であるという問題があった。
【０００６】
本発明の目的は上記問題を解決し、伝票の仕訳作業を行う際にその仕訳条件の検索時間を短縮して仕訳処理を高速化することが可能な技術を提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、伝票の仕訳作業を行う自動仕訳処理装置において、記憶装置上にツリー構造で保持された仕訳条件及び仕訳指示により伝票データの仕訳処理を行うものである。
【０００８】
本発明の自動仕訳処理装置では、まず、指定された仕訳条件指示ファイルを読み込み、仕訳処理を行う際の条件を示す仕訳条件とその仕訳処理の内容を示す仕訳指示とをコンピュータ装置内の記憶装置上の記憶領域にツリー構造で保持する処理を行う。また、前記仕訳条件を記憶領域のツリー構造で保持する際に、そのツリー構造の末端の葉の部分に仕訳処理で必要な仕訳指示を保持しておく。
【０００９】
次に、仕訳伝票ファイルから仕訳伝票データを読み込んだ後、前記記憶領域に保持したツリー構造を参照し、そのツリー構造を幹から葉に向かって辿って行くことにより、読み込んだ仕訳伝票データが満たす仕訳条件を前記ツリー構造から検索して、その検索された仕訳条件に対応する仕訳指示を末端の葉の部分から取得し、その取得した仕訳指示に従って当該仕訳伝票データの仕訳処理を実行して仕訳結果を仕訳済み伝票ファイルに出力する。
【００１０】
そして、仕訳伝票ファイル中の全仕訳伝票データについて、ツリー構造中の仕訳条件の検索、仕訳指示の末端の葉の部分からの取得、その仕訳指示による仕訳処理の実行と出力を行った後、仕訳伝票ファイルを最後まで処理したら自動仕訳処理を終了する。
【００１１】
また本発明の好ましい実施形態では、仕訳処理に必要な仕訳条件と仕訳処理に必要な仕訳指示とが対応し、仕訳条件には、伝票項目名とその伝票項目値を比較する条件となる仕訳条件項目名とその仕訳条件項目値とを指定し、また、仕訳指示には、仕訳方法を指定しておく。そして、仕訳条件の指定の際には、仕訳条件項目名と仕訳条件項目値とを１対とした、１対乃至複数の対を指定し、複数の対を指定した場合には、全ての対をアンド条件として条件の一致する仕訳条件の検索を行う。
【００１２】
前記仕訳条件項目値として、所定の値（例えば、「１００」）或いは、所定の範囲（例えば、「１から１００」、若しくは、「２００１／１０／０１から２００２／０３／３１」）を指定することができ、所定の値であれば伝票項目値が等しいことにより、或いは、所定の範囲であれば伝票項目値がその範囲以内であることにより、仕訳条件の一致と判断する。
【００１３】
本発明では、仕訳条件として１つ或いは複数の仕訳条件項目名の指定を行うものとするが、異なる仕訳条件においては、異なる仕訳条件項目名が指定されていても良い。
【００１４】
前記の様に本発明の技術では、仕訳処理に必要な仕訳条件を、予めコンピュータ装置内の記憶装置に記憶しておくことで、データベース等の外部記憶装置に記憶しておいた場合よりも、仕訳処理に必要な仕訳条件を高速に検索することができ、かつ、本発明のツリー構造による記憶装置内の仕訳条件の保持方法により仕訳条件比較の回数を減らすことで更に高速に検索することができる。また本発明では、仕訳指示を仕訳方法とすることにより、仕訳方法を追加しようとした場合に自動仕訳プログラムの変更を不要とすることができる。
【００１５】
以上の様に本発明の自動仕訳処理装置によれば、記憶装置上にツリー構造で保持された仕訳条件及び仕訳指示により伝票データの仕訳処理を行うので、伝票の仕訳作業を行う際にその仕訳条件の検索時間を短縮して仕訳処理を高速化することが可能である。
【００１６】
【発明の実施の形態】
以下に記憶装置上にツリー構造で保持された仕訳条件及び仕訳指示により伝票データの仕訳処理を行う一実施形態の自動仕訳処理装置について説明する。
【００１７】
図１は本実施形態の自動仕訳処理装置のシステム構成を示す図である。図１に示す様に本実施形態の自動仕訳処理装置は、仕訳条件指示ファイル読み込み処理部１と、仕訳伝票ファイル読み込み処理部２と、仕訳条件検索処理部３と、仕訳処理部４とを有している。
【００１８】
仕訳条件指示ファイル読み込み処理部１は、指定された仕訳条件指示ファイルを読み込み、仕訳処理を行う際の条件を示す仕訳条件とその仕訳処理の内容を示す仕訳指示とを記憶装置１７上の記憶領域にツリー構造で保持する処理部であり、前記仕訳条件を記憶領域のツリー構造で保持する際に、そのツリー構造の末端の葉の部分に仕訳処理で必要な仕訳指示を保持するものである。
【００１９】
仕訳伝票ファイル読み込み処理部２は、仕訳伝票ファイルから仕訳伝票データを読み込む処理部である。仕訳条件検索処理部３は、前記記憶領域に保持したツリー構造を参照し、前記読み込んだ仕訳伝票データが満たす仕訳条件を前記ツリー構造から検索して、その検索された仕訳条件に対応する仕訳指示を取得する処理部であり、前記ツリー構造を幹から葉に向かって辿って行くことにより前記仕訳条件を検索するものである。仕訳処理部４は、前記検索により取得した仕訳指示に従って前記仕訳伝票データの仕訳処理を実行する処理部である。
【００２０】
本実施形態の自動仕訳処理装置を、仕訳条件指示ファイル読み込み処理部１、仕訳伝票ファイル読み込み処理部２、仕訳条件検索処理部３及び仕訳処理部４として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００２１】
図１の自動仕訳処理装置のコンピュータ装置１６には記憶装置１７及びＣＰＵ１８が搭載されており、記憶装置１７にはＣＰＵ１８で実行するプログラムの使用する記憶領域が含まれている。また、コンピュータ装置１６には外部記憶装置１１〜１４及び入力装置１５が接続されており、コンピュータ装置１６は、各外部記憶装置に格納されたファイルの入出力、及び入力装置１５からの入力を処理する機能や、名称等の文字情報をソートする機能を持っている。ここで、図１は本実施形態における構成例を示したもので、他の実施形態においては、図１に示した以外の外部記憶装置があっても良く、また、次項に示す各ファイルが個別に入出力可能な状態であれば同一の外部記憶装置に格納されていても構わないものとする。
【００２２】
ここで、外部記憶装置１１には仕訳伝票ファイル、外部記憶装置１２には仕訳条件／指示ファイル（以下、仕訳条件指示ファイル）、外部記憶装置１３には仕訳済み伝票ファイル、外部記憶装置１４には自動仕訳プログラムがそれぞれ格納されている。仕訳伝票ファイルには、１つまたは複数件の会計伝票データが格納されており、仕訳条件指示ファイルには、仕訳条件と仕訳指示を１対とした仕訳条件指示データが１つ乃至複数件格納されている。更に、仕訳済み伝票ファイルには、自動仕訳プログラムが処理した結果の会計伝票が１つまたは複数件出力される。
【００２３】
次に、自動仕訳プログラムの処理内容について説明する。入力装置１５より自動仕訳プログラムの実行開始が入力されると、自動仕訳プログラムが、外部記憶装置１４から記憶装置１７に読み込まれて前記各処理部が記憶装置１７上に形成され、ＣＰＵ１８を使って各処理部の処理が実行される。ここで、入力装置１５より自動仕訳プログラムの実行開始が入力される際に、仕訳伝票ファイル、仕訳条件指示ファイル、仕訳済み伝票ファイルの格納場所が同時に指定されるものとする。この格納場所は、外部記憶装置における各ファイルの位置を示す名称である。
【００２４】
本実施形態の自動仕訳処理では、仕訳伝票ファイルと仕訳条件指示ファイルを、指定された格納場所から入力し、仕訳条件指示ファイルに格納されている仕訳条件指示データに従った仕訳処理をして、指定された格納場所の仕訳済み伝票ファイルに出力する。続いて、図２のフローチャート及び図３を用いて、自動仕訳処理について詳細に説明する。
【００２５】
図２は本実施形態の自動仕訳処理の処理手順を示すフローチャートである。入力装置１５より自動仕訳プログラムの実行開始が入力されると、仕訳条件指示ファイル読み込み処理部１は、同時に指定された仕訳条件指示ファイルを読み込み、記憶装置１７上の記憶領域に、図３に示すツリー構造の仕訳条件及び仕訳指示データを保持する（ステップ２１）。
【００２６】
次に仕訳伝票ファイル読み込み処理部２は、仕訳伝票ファイルから仕訳伝票データを１件読み込み（ステップ２２）、仕訳条件検索処理部３は、ステップ２１により作成したツリー構造を参照して仕訳条件を検索し（ステップ２３）、仕訳処理部４は、ステップ２３で検索して得た仕訳指示データに従った仕訳処理を実行し（ステップ２４）、実行した仕訳結果を仕訳済み伝票ファイルに出力する（ステップ２４）。
【００２７】
そして、仕訳伝票ファイルの最後まで処理したかチェックし（ステップ２５）、仕訳伝票ファイルを最後まで処理していなければステップ２２に戻って処理を繰り返し、仕訳伝票ファイルを最後まで処理したら自動仕訳処理を終了する。
【００２８】
図３は本実施形態の記憶装置内で仕訳条件指示データを保持するツリー構造の概要を示す図である。ここで、前記ステップ２１において作成するツリー構造について、図３を用いて詳細に説明する。
【００２９】
図３に示すツリー構造は、名称がＴＯＰであるノード３１を先頭に、項目名１のＰに示すポインタにより次のノード３２にポイントし、ノード３２の名称は項目名１であるので、更にノード３２の値１のＰに示すポインタにより次のノード３３にポイントし、ノード３３の名称は項目名一覧であるので、更にノード３３の項目名２のＰに示すポインタにより次のノード３４にポイントし、ノード３４の名称は項目名２であるので、更にノード３４の値１のＰに示すポインタにより次のノード３５にポイントし、ノード３５の名称は仕訳指示であって項目名及び項目名一覧ではないので、ノード３５から次のノードへはポイントしていない。
【００３０】
ここで、ノード３３は、ノード３１からノード３３に至るまでに通過したノードが示す項目名及び値の条件が同一である複数の条件があることを示しており、ノード３３の項目名により、ノード３３より先のノードが示す項目名及び値の条件が異なる複数の条件が存在することを示している。
【００３１】
前記の様に本実施形態の図３のツリー構造では、仕訳条件として指定された項目名または項目名一覧のポインタにより各ノードの位置を指し示し、そのツリー構造の末端の葉の部分に仕訳処理で必要な仕訳指示を保持しているものとしている。
【００３２】
この為、前記の様にノードから次のノードにポイントしたときに、ポイントされたノードが項目名である場合には、該ノードの値のＰに示すポインタにより更に次のノードへポイントし、ノードから次のノードにポイントしたときに、ポイントされたノードの名称が項目名一覧である場合には、該ノードの項目名のＰに示すポインタにより更に次のノードへポイントしているが、ノードから次のノードにポイントしたときに、ポイントされたノードの名称が仕訳指示である場合には、該ノードから次のノードへポイントしていない。
【００３３】
図３において、仕訳条件が複数の仕訳条件項目名をアンド条件とする場合、図３に示すノード３１〜ノード３４の様に、ＴＯＰと呼ばれるノード３１から始まり仕訳条件項目名の数に応じた回数だけ次のノードへのポイントが繰り返される。また、仕訳条件が１つの仕訳条件項目名を条件とする場合、図３に示すノード３６の様に、ＴＯＰと呼ばれるノード３１から１回ポイントするだけのノードが作成される。
【００３４】
図３のノード３５に示す様なツリー構造の末端の葉の部分に位置する仕訳指示は、ＴＯＰのノード３１からその直前のノードまでの仕訳条件が一致したときに、その仕訳処理に必要な仕訳指示データを保持している。
【００３５】
図３において、仕訳条件項目名、仕訳条件項目値、仕訳指示を例示すれば、項目名１には、仕訳条件項目名（例えば、「営業店名」）、値１には、会計伝票の仕訳条件項目名に記載されたデータ（例えば、「Ａ営業所」）、仕訳指示には、仕訳処理に必要な仕訳方法（例えば、「販売伝票￥５０００に対して、売掛金  借方￥５０００、商品  貸方￥５０００、の様に借方、貸方を仕訳する方法」）を仕訳指示データとして保持する。
【００３６】
ここで、図３に示すツリー構造を作成する手順について、図４〜図６のフローチャートを用いて詳細に説明する。
【００３７】
図４〜図６は本実施形態の仕訳条件指示ファイル読み込み処理の処理手順を示すフローチャートである。図４〜図６に示す様に自動仕訳処理装置の仕訳条件指示ファイル読み込み処理部１は、指定された仕訳条件指示ファイルを読み込み、仕訳処理を行う際の条件を示す仕訳条件とその仕訳処理の内容を示す仕訳指示とを記憶装置１７上の記憶領域にツリー構造で保持する処理を行う。
【００３８】
まず、ノード３１の項目名をクリアし、ノード３１に項目名を保持していない状態にする（ステップ７０１）。
【００３９】
次に、仕訳条件指示ファイルから、仕訳条件指示データを１件読み込み（ステップ７０２）、仕訳条件指示データが読み込めたか、或いは仕訳条件指示ファイルの終わりに達したかをチェックする（ステップ７０３）。
【００４０】
ステップ７０３において、仕訳条件指示ファイルの終わりに達した場合には、仕訳条件指示ファイルの読み込み処理を終了する。
【００４１】
ステップ７０３において、仕訳条件指示データが読み込めた場合には、仕訳条件データ（例えば、「起票日：２００１／０４／０１〜２００１／０９／３０」、「営業店名：Ａ営業所」、「支払区分：売掛」）と仕訳指示データ（例えば、「仕訳処理１」）とに分離する（ステップ７０４）。ここで、仕訳条件データは、仕訳条件項目名（例えば、「起票日」、「営業店名」、「支払区分」）と仕訳条件項目値（例えば、「２００１／０４／０１〜２００１／０９／３０」、「Ａ営業所」、「売掛」）を含んでいるものとする。
【００４２】
仕訳条件データに含まれる仕訳条件項目名をコンピュータ装置１６に搭載されたソート機能を用いてソートする（ステップ７０５）。ここで、ソート機能については、文字コード順、或いは、数値の大小順等のソート条件は問わないが、ソート機能に組み込まれた所定の順序性をもってソートされるものとする。
【００４３】
次にＴＯＰであるノード３１を着目ノードとした後（ステップ７０６）、仕訳条件項目名の内で１つ目の仕訳条件項目名に着目し、これを着目仕訳条件項目名とする（ステップ７０７）。例えば、ステップ７０５におけるソートの結果が、「起票日」「営業店名」「支払区分」の順であった場合、「起票日」を着目仕訳条件項目名とする。
【００４４】
次に、着目ノードの項目名に、着目仕訳条件項目名に一致する項目名が含まれるか否かをチェックする（ステップ７０８）。
【００４５】
ステップ７０８において、着目仕訳条件項目名に一致する項目名が含まれる場合には、項目名のＰが示すポインタを取得し、該ポインタが示すノードを着目ノードとする（ステップ７１３）。
【００４６】
ステップ７０８において、着目仕訳条件項目名に一致する項目名が含まれない場合には、着目仕訳条件項目名（例えば、「起票日」）を項目名とする新たなノードを作成し（ステップ７０９）、着目仕訳条件項目名を着目ノードの項目名に追加し（ステップ７１０）、該項目名のＰに、該作成したノードをポイントするポインタを設定し（ステップ７１１）、該作成したノードを着目ノードとする（ステップ７１２）。
【００４７】
次に、着目ノードの値に、着目仕訳条件項目名の仕訳条件項目値（例えば、「２００１／０４／０１〜２００１／０９／３０」）に一致する値が含まれているか否かをチェックする（ステップ７１４）。
【００４８】
ステップ７１４において、仕訳条件項目値に一致する値が含まれている場合には、一致した値のＰが仕訳指示のノードをポイントしているか否かをチェックする（ステップ７２１）。
【００４９】
ステップ７２１において、一致した値のＰが仕訳指示のノードをポイントしていない場合、着目仕訳条件項目名が仕訳条件項目名の最後が否かをチェックする（ステップ７２２）。
【００５０】
ステップ７２２において、着目仕訳条件項目名が仕訳条件項目名の最後でない場合には、ステップ７１４において一致した値のＰのポインタが示すノードを着目ノードとし（ステップ７２３）、着目仕訳条件項目名の次の仕訳条件項目名を着目仕訳条件項目名とし（ステップ７２４）、ステップ７０８に戻って処理を繰り返す。
【００５１】
ステップ７２２において、着目仕訳条件項目名が仕訳条件項目名の最後であった場合には、重複する仕訳条件が存在するエラーとし（ステップ７２５）、自動仕訳処理をエラー終了する。
【００５２】
ステップ７１４において、仕訳条件項目値に一致する値が含まれていない場合には、着目仕訳条件項目名の仕訳条件項目値を着目ノードの値に追加し（ステップ７１５）、着目仕訳条件項目名が仕訳条件項目名の最後か否かをチェックする（ステップ７１６）。
【００５３】
ステップ７１６において、着目仕訳条件項目名が最後の場合には、仕訳指示ノードを作成し（ステップ７１７）、該仕訳指示ノードをポイントするポインタを、ステップ７１５で追加した値のＰに設定し（ステップ７１７）、ステップ７０２に戻って次の仕訳条件指示データを読み込み、これまでの処理を繰り返す。
【００５４】
ステップ７１６において、着目仕訳条件項目名が最後でない場合には、項目名一覧を名称とする次ノードを作成し（ステップ７１８）、着目ノードの値のＰに該作成した次ノードをポイントするポインタを設定し（ステップ７１８）、該次ノードを着目ノードとし（ステップ７１９）、ステップ７０９に戻って処理を繰り返す。
【００５５】
ステップ７２１において、一致した値のＰが仕訳指示のノードをポイントしている場合には、着目仕訳条件項目名が最後の仕訳条件項目名か否かをチェックする（ステップ７２６）。
【００５６】
ステップ７２６において、最後の仕訳条件項目名である場合には、同じ仕訳条件が存在するエラーとし（ステップ７２７）、最後の仕訳条件項目名でない場合には、重複する仕訳条件が存在するエラーとし（ステップ７２８）、ステップ７２７、ステップ７２８共に、自動仕訳処理をエラー終了する。
【００５７】
次に、前記ステップ２３における仕訳条件検索処理について、図３、図７及び図８のフローチャートを用いて詳細に説明する。
【００５８】
図７及び図８は本実施形態の仕訳条件検索処理の処理手順を示すフローチャートである。図７及び図８に示す様に自動仕訳処理装置の仕訳条件検索処理部３は、前記記憶領域に保持したツリー構造を参照し、前記読み込んだ仕訳伝票データが満たす仕訳条件を前記ツリー構造から検索して、その検索された仕訳条件に対応する仕訳指示を取得する処理を行う。
【００５９】
ステップ２２において仕訳伝票ファイルから読み込んだ仕訳伝票データ（例えば、「起票日：２００１／０９／０１」、「営業店名：Ａ営業所」、「支払区分：売掛」）から、仕訳条件項目名と同じ伝票項目名（例えば、「起票日」、「営業店名」、「支払区分」）の伝票項目値（例えば、「２００１／０９／０１」、「Ａ営業所」、「売掛」）を、該当する伝票項目値全てについて抽出する（ステップ８０１）。
【００６０】
次に、着目ノード控えスタックをクリアする（ステップ８０２）。ここで、着目ノード控えスタックとは、着目ノードを新たなノードに変更する際に、現着目ノード及び現着目項目名の控えを保持する先入れ後出しの、記憶装置１７内に確保したステップ２３の仕訳条件検索処理の間に有効な記憶領域である。
【００６１】
ステップ８０１において、仕訳条件項目名に存在し、仕訳伝票データに、伝票項目名若しくは伝票項目値が存在しない場合には、該伝票項目名の伝票項目値にＮＵＬが記載されていたものとして扱う。ここで、ＮＵＬは、便宜上、長さを持たない文字列（例えば、伝票項目名「営業店名」の伝票項目値が「」、すなわち「営業店名：」）であるものとする。
【００６２】
次に、ＴＯＰノードを着目ノードとし（ステップ８０３）、ＴＯＰノードの１つ目の項目名を着目項目名とする（ステップ８０４）。そして、着目ノード控えスタックの最後尾に、現在の着目ノードを示すポインタ及び現在の着目項目名を１対として追加する（ステップ８０５）。
【００６３】
次に、着目項目名のＰのポインタの示すノードを着目ノードとし（ステップ８０６）、着目ノードの項目名と同じ伝票項目名の伝票項目値を取得した後（ステップ８０７）、着目ノードの値に伝票項目値が含まれるか否かをチェックする（ステップ８０８）。
【００６４】
ステップ８０８において、伝票項目値が含まれる場合、着目ノードの該値のＰの示すポインタが仕訳指示ノードをポイントするか否かをチェックする（ステップ８０９）。
【００６５】
ステップ８０９において、該値のＰのポインタが仕訳指示ノードをポイントする場合には、該仕訳指示ノードの保持する仕訳指示データを取得し、仕訳条件検索処理を終了する（ステップ８１０）。
【００６６】
ステップ８０９において、該値のＰのポインタが仕訳指示ノードをポイントしない場合には、該値のＰのポイントするノードを着目ノードとして（ステップ８１１）、ステップ８０４に戻って処理を繰り返す。
【００６７】
ステップ８０８において、伝票項目値が含まれない場合、着目ノード控えスタックの最後尾からポインタと着目項目名の１対を抜き取り、着目ノード及び着目項目名とする（ステップ８１２）。
【００６８】
次に、着目項目名が着目ノードの最後の項目名か否かをチェックし（ステップ８１３）、ステップ８１３において、着目項目名が最後の項目名であった場合には、着目ノード控えスタックに着目ノードの控えがあるかチェックする（ステップ８１４）。
【００６９】
ステップ８１４において、着目ノードの控えがあった場合には、ステップ８１２に戻って処理を繰り返す。またステップ８１４において、着目ノードの控えが無かった場合には、仕訳指示データは無いものとし（ステップ８１５）、仕訳条件検索処理を終了する。
【００７０】
ステップ８１３において、着目項目名が最後の項目名でない場合には、着目ノードの次の項目名を着目項目名とし（ステップ８１６）、ステップ８０５に戻って処理を繰り返す。
【００７１】
次に、前記ステップ２４において処理する、仕訳指示実行処理について説明する。仕訳指示実行処理は、仕訳方法（例えば、「販売伝票￥５０００に対して、売掛金  借方￥５０００、商品  貸方￥５０００、の様に借方、貸方を仕訳する方法」）に示される仕訳指示データに従って仕訳処理を行うものである。また、仕訳方法を示した仕訳指示データが無い場合には、伝票データをそのまま出力する。
【００７２】
次に、仕訳伝票ファイルの仕訳伝票データの例を図９に、仕訳条件指示ファイルの仕訳条件指示データの例を図１０に示し、ステップ２１に従って図１０の仕訳条件指示データを読み込み、図３に従ったツリー構造を作成した例を図１１に示す。
【００７３】
図９は本実施形態の仕訳伝票ファイルの仕訳伝票データの例を示す図である。図９に示す仕訳伝票データ４１〜４６には、起票日、営業店名、販売店、品目、数量、金額、支払区分の各項目名と、それらの値が入力されている。
【００７４】
図１０は本実施形態の仕訳条件指示ファイルの仕訳条件指示データの例を示す図である。図１０に示す仕訳条件指示データ５１〜５６には、起票日、支払区分、仕訳指示等の各項目名及びそれらの値が登録されている。
【００７５】
図１１は本実施形態の図１０の仕訳条件指示データを記憶領域内のツリー構造に変換した場合の変換例を示す図である。図３及び図４〜図６のフローチャートに示した手順に従うと、図１０に示した仕訳条件指示ファイルの例では、図１１に示したツリー構造が作成される。
【００７６】
図１１の、例えばノード６４は、図１０の仕訳条件指示データ５１の仕訳指示を示している。また、例えばノード６６は、図１０の仕訳条件指示データ５３の仕訳指示を示している。
【００７７】
次に、ステップ２２に従って図９の仕訳伝票データ４１を読み込み、ステップ２３に従って仕訳条件を検索すると、ノード６４に示す仕訳指示データを取得し、ステップ２４に従って仕訳指示を実行処理し、仕訳済み伝票ファイルに出力する。
【００７８】
同じ様に、ステップ２２に従って図９の仕訳伝票データ４２を読み込んだときに、ステップ２３に従って仕訳条件を検索すると、ノード６７において「Ｅ工場」が含まれない為に、仕訳指示データ無しとなり、ステップ２４に従って、仕訳処理されず該仕訳伝票データはそのまま仕訳済み伝票ファイルに出力される。
【００７９】
同じ様に、ステップ２２に従って図９の仕訳伝票データ４３を読み込んだときに、ステップ２３に従って仕訳条件を検索すると、ノード６８に示す仕訳指示データを取得し、ステップ２４に従って仕訳指示を実行処理し、仕訳済み伝票ファイルに出力する。
【００８０】
同じ様にして、仕訳伝票データ４６までを仕訳処理し、自動仕訳処理を終了する。
【００８１】
前記の様に本実施形態では、自動仕訳システムに必要な仕訳条件の検索処理をツリー構造に保持すること、及び、ツリー構造の末端の葉から仕訳指示データへポイントすることで、仕訳処理に必要な仕訳条件の検索が高速に処理されるという効果が得られる。
【００８２】
ここで、従来の技術において、データベース等の外部記憶装置を用いた場合の仕訳条件の検索に必要な条件比較の回数を、図１０、図１２を用いて説明する。
【００８３】
図１２は従来技術を用いて図１０の仕訳条件指示データを検索する時のデータベースのデータ例を示す図である。従来の技術では、図１０の仕訳条件指示データについて、図１２に示す様なデータを作成してデータベース等の外部記憶装置に格納し、自動仕訳プログラムの指示により、仕訳伝票の伝票項目名と伝票項目値とを用いてデータベース等の外部記憶装置に格納した仕訳条件データを検索する。このときの条件比較の回数を求める計算式及び計算例を数１及び数２に示す。
【００８４】
【数１】
仕訳伝票データ１件あたりの比較回数  ＝仕訳条件項目名数ｘ（仕訳条件データ数÷２）
上の数１に数字を当てはめると、
【００８５】
【数２】
４ｘ（６÷２）  ＝  １２
となり、仕訳伝票データ１件あたり、平均して、条件値の比較を１２回行うことが判る。なお、この式で、仕訳条件データ数を「÷２」とするのは、仕訳条件データを上から順に比較すると、何件目で一致するかについて、平均を求めることを意味しているからである。
【００８６】
前記の様に従来技術では、図１０の仕訳条件を検索するには、仕訳伝票データ１件あたり、平均して１２回の比較が必要である。なお、この回数には、いずれの仕訳条件も一致しなかった場合も含まれている。
【００８７】
一方、本実施形態の技術を用いた場合の仕訳条件の検索に必要な条件比較の回数を説明すると、本実施形態の技術では、図１１に示した様なツリー構造としてコンピュータ装置内の記憶装置の記憶領域に格納し、これを検索しており、このとき条件比較の回数を求める計算式は以下の様になる。
【００８８】
ツリー構造の条件比較の回数の平均を求める場合、項目名一覧を名称とするノードにおける条件比較回数について、以下の処理を考慮する必要がある。
【００８９】
図７及び図８のステップ８０５〜ステップ８１６により、着目項目名と同じ伝票項目名の伝票項目値が着目項目名のＰのポイントするノードの値に含まれる場合には１回の比較となるが、前記ノードの値に含まれない場合には、着目項目名を次の項目名に切り替えて同様の比較を繰り返す。
【００９０】
この処理を考慮することにより、条件比較の回数は、最小で数３、最大で数４の様になり、その平均は数５で求めることができる。
【００９１】
【数３】
項目名一覧の項目名の数（最小＝１）
×その次の項目名の値の数（最小＝１）×階層の深さ
＝階層の深さ
【００９２】
【数４】
項目名一覧の項目名の数×その次の項目名の値の数×階層の深さ
【００９３】
【数５】
（階層の深さ＋項目名一覧の項目名の数×その次の項目名の値の数×階層の深さ）÷２
【００９４】
ここで、「項目名一覧の項目名の数」は、特定の１つの仕訳条件にのみ仕訳条件項目名が指定されていた場合、或いは、全ての仕訳条件にまたがって同じ仕訳条件項目名が指定されている場合を平均すると、一意な仕訳条件項目名が、仕訳条件全体に一様に分散していると考えられ、数６によって近似値を求めることができる。
【数６】
仕訳条件全体の一意な仕訳条件項目名の数÷仕訳条件の個数
【００９５】
また、「その次の項目名の値の数」は、特定の１つの仕訳条件にのみ仕訳条件項目値が指定された場合、或いは、全ての仕訳条件にまたがって同じ仕訳条件項目名が指定されている場合を平均すると、一意な仕訳条件項目値が、仕訳条件全体に一様に分散していると考えられ、数７によって近似値を求めることができる。
【数７】
仕訳条件全体の一意な仕訳条件項目値の数÷仕訳条件の個数
【００９６】
更に階層の深さは、「仕訳条件あたりの条件項目名の数の平均」によって、平均値を求めることができる。従って、条件比較の回数の平均は、数８によって近似値を求めることができる。
【数８】
2004302803.tif 000003
【００９７】
図１０の条件から値をとって、この近似値式に当てはめると、図１０の条件比較の回数の平均は数９の様になる。
【数９】
図１０の条件比較の回数の平均
＝（１＋（４×８）÷（６２））×（１６÷６）÷２
＝２．５１
よって図１０の条件比較の回数の平均は、近似値で約２．５回となる。
【００９８】
前記の様に本実施形態では、図１０の仕訳条件を検索する際に、仕訳伝票データ１件あたり、約２．５回の比較を行えば良い。なお、この回数にはいずれの仕訳条件も一致しなかった場合も含まれている。
【００９９】
これにより、本実施形態の技術を用いれば、従来技術より少ない条件比較の回数で仕訳条件の検索が可能になり、仕訳処理に必要な仕訳条件の検索が高速に処理できることになる。
【０１００】
以上説明した様に本実施形態の自動仕訳処理装置によれば、記憶装置上にツリー構造で保持された仕訳条件及び仕訳指示により伝票データの仕訳処理を行うので、伝票の仕訳作業を行う際にその仕訳条件の検索時間を短縮して仕訳処理を高速化することが可能である。
【０１０１】
【発明の効果】
本発明によれば記憶装置上にツリー構造で保持された仕訳条件及び仕訳指示により伝票データの仕訳処理を行うので、伝票の仕訳作業を行う際にその仕訳条件の検索時間を短縮して仕訳処理を高速化することが可能である。
【図面の簡単な説明】
【図１】本実施形態の自動仕訳処理装置のシステム構成を示す図である。
【図２】本実施形態の自動仕訳処理の処理手順を示すフローチャートである。
【図３】本実施形態の記憶装置内で仕訳条件指示データを保持するツリー構造の概要を示す図である。
【図４】本実施形態の仕訳条件指示ファイル読み込み処理の処理手順を示すフローチャートである。
【図５】本実施形態の図４の続きを示す図である。
【図６】本実施形態の図４の続きを示す図である。
【図７】本実施形態の仕訳条件検索処理の処理手順を示すフローチャートである。
【図８】本実施形態の図７の続きを示す図である。
【図９】本実施形態の仕訳伝票ファイルの仕訳伝票データの例を示す図である。
【図１０】本実施形態の仕訳条件指示ファイルの仕訳条件指示データの例を示す図である。
【図１１】本実施形態の図１０の仕訳条件指示データを記憶領域内のツリー構造に変換した場合の変換例を示す図である。
【図１２】従来の術を用いて図１０の仕訳条件指示データを検索する時のデータベースのデータ例を示す図である。
【符号の説明】
１１〜１４…外部記憶装置、１５…入力装置、１６…コンピュータ装置、１７…記憶装置、１８…ＣＰＵ、１…仕訳条件指示ファイル読み込み処理部、２…仕訳伝票ファイル読み込み処理部、３…仕訳条件検索処理部、４…仕訳処理部、３１〜３６…ノード、４１〜４６…仕訳伝票データ、５１〜５６…仕訳条件指示データ、６１〜６８…ノード、９１…起票日、９２…支払区分、９３…営業店名、９４…事業所、９５…仕訳指示。
【図１】
2004302803.tif 000004
【図２】
2004302803.tif 000005
【図３】
2004302803.tif 000006
【図４】
2004302803.tif 000007
【図５】
2004302803.tif 000008
【図６】
2004302803.tif 000009
【図７】
2004302803.tif 000010
【図８】
2004302803.tif 000011
【図９】
2004302803.tif 000012
【図１０】
2004302803.tif 000013
【図１１】
2004302803.tif 000014
【図１２】
2004302803.tif 000015