(57)【特許請求の範囲】
【請求項１】
複数の入力ファイルに記録されたレコードを所定の条件に従ってソート・マージするソート・マージ処理装置において、
グループごとに同一のレコード選択条件を指定したグループ情報を含むコマンドを入力してそのグループ情報からグループごとのレコード選択条件を判断するグループ情報判断手段と、
前記グループ情報判断手段で判断された前記レコード選択条件を入力ファイルが属するグループのレコード選択条件に設定する選択条件設定手段と、
前記入力ファイルを読み込むファイル入力手段と、
読み込まれた入力ファイルのレコードに対して前記選択条件設定手段にて設定されたレコード選択条件でレコードの選択を行うレコード選択処理手段と、
選択されおよび／または再編成されたレコードに対してソート・マージを実行するソート・マージ実行手段と、
ソート・マージ処理されたレコードを出力ファイルに書き込むファイル出力手段と、
を備えていることを特徴とするソート・マージ処理装置。
【請求項２】
前記グループ情報判断手段が前記コマンドに含まれるグループ情報からグループごとに指定されたレコード再編成条件を判断する機能を有し、前記グループ情報判断手段で判断された前記レコード再編成条件を入力ファイルが属するグループのレコード再編成条件に設定する再編成条件設定手段と、読み込まれた入力ファイルのレコードに対して前記再編成条件設定手段にて設定されたレコード再編成条件でレコードの再編成を行うレコード再編成処理手段とをさらに備えていることを特徴とする請求項１記載のソート・マージ処理装置。
【請求項３】
前記グループ情報判断手段が前記コマンドに含まれるグループ情報からグループごとに指定されたファイルシステムを判断する機能を有し、前記グループ情報判断手段で判断された前記ファイルシステムを前記ファイル入力手段が読み込もうとする入力ファイルが属するグループのファイルシステムに設定するファイルシステム設定手段をさらに備えていることを特徴とする請求項２記載のソート・マージ処理装置。
【請求項４】
グループごとに同一のレコード選択条件、同一のレコード再編成条件および同一のファイルシステムの入力ファイルをそれぞれ指定したグループ情報を含むコマンドを受け付けて前記グループ情報からグループごとのファイルシステム、レコード選択条件およびレコード再編成条件を判断するグループ情報判断手段と、前記ファイルシステムを入力ファイルが属するグループのファイルシステムに設定するファイルシステム設定手段と、前記レコード選択条件を入力ファイルが属するグループのレコード選択条件に設定する選択条件設定手段と、前記レコード再編成条件を入力ファイルが属するグループのレコード再編成条件に設定する再編成条件設定手段と、設定された前記ファイルシステムで入力ファイルを読み込むファイル入力手段と、設定された前記レコード選択条件に従ってレコードの選択を行うレコード選択処理手段と、設定された前記レコード再編成条件に従ってレコードの再編成を行うレコード再編成処理手段と、選択されおよび／または再編成されたレコードに対してソート・マージを実行するソート・マージ実行手段と、ソート・マージ処理されたレコードを出力ファイルに書き込むファイル出力手段とを有するソート・マージプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はソート・マージ処理装置に関し、特に複数のレコード選択条件および再構成条件を同時に満たすような処理を一度の指定で行うことを可能にし、ソート・マージなどファイルを扱うプログラム全般に適用することができるソート・マージ処理装置に関する。
【０００２】
従来より、たとえば銀行系のオンラインシステムなどにおける企業の定型業務では、各種レコードを特定の条件に従って選択およびソートしたり、さらには選択およびソートしたレコードを特定の条件に従って再構成するようなことが日常的に行われている。このような処理には、一般にソート・マージプログラムと呼ばれるプログラムが使用される。
【０００３】
【従来の技術】
従来のこの種ソート・マージプログラムでは、レコード選択機能、レコード再編成機能、およびファイルシステムの指定機能を有しており、ある入力ファイルに対して特定の条件の基でそれぞれの機能が実行される。
【０００４】
図１１は従来のソート・マージ処理の流れを示すフローチャートである。従来のソート・マージ処理では、まず、処理対象とする入力ファイルのファイル形式に対応したファイルシステムを選択する（ステップＳ１）。次に、入力ファイルを選択されたファイルシステムにて読み込む（ステップＳ２）。次に、指定されたレコード選択条件に従ってレコード選択処理を行い（ステップＳ３）、指定されたレコード再編成条件に従ってレコード再編成処理を行う（ステップＳ４）。なお、このレコード再編成条件が指定されていない場合は、このステップはスキップされる。そして、選択され、再編成されたレコードに対してソート・マージ処理を行う（ステップＳ５）。以上のステップＳ２〜Ｓ５は入力ファイルの読み込みが終わるまで繰り返して実行され、データの終わり（ＥＯＤ）になると、出力ファイルの書き込みを行う（ステップＳ６）。
【０００５】
ここで、二つの入力ファイルをそれぞれ異なったファイルシステムおよびレコード選択条件でソート・マージを行う場合を例にして具体的に説明する。
図１２は従来のソート・マージ処理の処理ステップを説明する図であって、（Ａ）はソート・マージ処理の第１のステップを示し、（Ｂ）はソート・マージ処理の第２のステップを示し、（Ｃ）はソート・マージ処理の第３のステップを示している。ここで、第１入力ファイル１はファイルシステムが標準ファイル形式であって、第１レコード選択条件でソート・マージ処理が行われ、第２入力ファイル２はファイルシステムがＣＯＢＯＬ（common business oriented language）索引ファイル形式であって、第２レコード選択条件でソート・マージ処理が行われるものとする。
【０００６】
第１ステップでは、第１入力ファイル１を標準ファイルのファイルシステムで読み込み、これを図１１の処理の流れに従って第１レコード選択条件でレコードを選択し、ソートして第１中間ファイル３へ書き込む。第２ステップでも同様にして、第２入力ファイル２をＣＯＢＯＬ索引ファイルのファイルシステムで読み込み、これを図１１の処理の流れに従って第２レコード選択条件でレコードを選択し、ソートして第２中間ファイル４へ書き込む。第１および第２ステップにて生成される第１および第２中間ファイル３，４は標準ファイルとする。第３ステップでは、これら第１および第２中間ファイル３，４を読み込み、全レコードに対してソート・マージ処理を行い、出力ファイル５への書き込みを行う。このように、ファイルシステムおよびレコード選択条件の違う場合には、それぞれのジョブステップを必要とし、さらに、それらの結果をマージするステップが必要となる。
【０００７】
ここで、ソート・マージ処理装置に対して各ステップの処理を実行するために指示されるコマンドの記述例を示す。
第１ステップ
bsort -s infile1 -o intermediatefile1 -p 10.4asc.eq.'test' -z 100
第２ステップ
bsort -s infile2 -o intermediatefile2 -p 20.4asc.eq.'test' -z 100 -Fdosfs,cobidx
第３ステップ
bsort -m intermediatefile1 intermediatefile2 -o outfile -z 100
なお、「ｂｓｏｒｔ」はソート・マージ処理のコマンド名を表し、「−」で始まるオプションについては、「−ｓ／−ｍ」はソート／マージスイッチ、「−ｏ」は出力ファイル名指定、「−ｐ」はレコード選択指定、「−ｚ」はレコード長指定、「−Ｆ」は出力ファイルシステム，入力ファイルシステムの指定をそれぞれ表している。
【０００８】
上記のコマンド記述例によれば、第１ステップでは、第１入力ファイル１を標準のファイルシステムで読み込み、レコード選択条件に従ってレコード選択を行い、ソートして第１中間ファイル３を生成するというもので、レコード選択条件の例として、１０バイト目から４バイトをアスキー形式で見たときに、その４バイトが「ｔｅｓｔ」という文字列であるレコードをソートの対象とするとしている。第２ステップでは、別のレコード選択条件を指定し、さらに、ファイルシステムとして、出力ファイルシステムは標準のＤＯＳ（disk operating system）ファイルシステム、入力ファイルシステムはＣＯＢＯＬ索引ファイルシステムを指定している。第３ステップでは、第１および第２中間ファイル３，４を読み込み、マージして出力ファイル５を作る指定をしている。
【０００９】
【発明が解決しようとする課題】
このように、従来のソート・マージ処理では、入力ファイルのファイルシステム、レコード選択条件およびレコード再編成条件が異なるたびにジョブステップを追加する必要がある。このため、異なった条件を指定すると、指定の数だけソート・マージ処理を実行させなければならず、処理効率も低下するという問題点があった。
【００１０】
本発明はこのような点に鑑みてなされたものであり、異なったレコード選択条件、異なったレコード再編成条件、異なったファイルシステムの指定などを同時に複数の入力ファイルに対して指定することができるソート・マージ処理装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
図１は上記目的を達成する本発明の原理図である。本発明によるソート・マージ処理装置１０は、グループごとに同一のレコード選択条件、同一のレコード再編成条件および同一のファイルシステムの入力ファイルをそれぞれ指定したグループ情報を含むコマンドを入力してそのグループ情報からグループごとのファイルシステム、レコード選択条件およびレコード再編成条件を判断するグループ情報判断手段１１と、ファイルシステムを入力ファイルが属するグループのファイルシステムに設定するファイルシステム設定手段１２と、レコード選択条件を入力ファイルが属するグループのレコード選択条件に設定する選択条件設定手段１３と、レコード再編成条件を入力ファイルが属するグループのレコード再編成条件に設定する再編成条件設定手段１４と、設定されたファイルシステムで入力ファイルを読み込むファイル入力手段１５と、設定されたレコード選択条件でレコードの選択を行うレコード選択処理手段１６と、設定されたレコード再編成条件でレコードの再編成を行うレコード再編成処理手段１７と、選択されおよび／または再編成されたレコードに対してソート・マージを実行するソート・マージ実行手段１８と、ソート・マージ処理されたレコードを出力ファイルに書き込むファイル出力手段１９とを備えている。
【００１２】
以上の構成を有するソート・マージ処理装置１０によれば、ソート・マージのコマンドが入力されると、グループ情報判断手段１１がグループごとに指定された入力ファイル、ファイルシステム、レコード選択条件およびレコード再編成条件を判断し、ファイルシステム設定手段１２、選択条件設定手段１３および再編成条件設定手段１４がファイルシステム、レコード選択条件およびレコード再編成条件をそれぞれ設定する。ファイル入力手段１５は、設定されたファイルシステムで入力ファイルを読み込み、レコード選択処理手段１６およびレコード再編成処理手段１７がそれぞれ設定されたレコード選択条件およびレコード再編成条件を基にしてレコードの選択および再編成を行い、ソート・マージ実行手段１８がソート・マージの処理を実行する。このファイルシステム、レコード選択条件およびレコード再編成条件の設定、およびファイル入力からソート・マージ実行までの処理は、グループごとに繰り返し行う。すべてのグループの処理が終了したなら、ファイル出力手段１９が出力ファイルへの書き込みを行う。
【００１３】
このように、入力ファイルの形式が異なるなどの実際業務において頻繁に起こる各種条件でのソート・マージ処理を一度に処理することができ、作業効率を改善することができる。
【００１４】
また、本発明によれば、グループごとに同一のレコード選択条件、同一のレコード再編成条件および同一のファイルシステムの入力ファイルをそれぞれ指定したグループ情報を含むコマンドを受け付けて前記グループ情報からグループごとのファイルシステム、レコード選択条件およびレコード再編成条件を判断するグループ情報判断手段と、前記ファイルシステムを入力ファイルが属するグループのファイルシステムに設定するファイルシステム設定手段と、前記レコード選択条件を入力ファイルが属するグループのレコード選択条件に設定する選択条件設定手段と、前記レコード再編成条件を入力ファイルが属するグループのレコード再編成条件に設定する再編成条件設定手段と、設定された前記ファイルシステムで入力ファイルを読み込むファイル入力手段と、設定された前記レコード選択条件に従ってレコードの選択を行うレコード選択処理手段と、設定された前記レコード再編成条件に従ってレコードの再編成を行うレコード再編成処理手段と、選択されおよび／または再編成されたレコードに対してソート・マージを実行するソート・マージ実行手段と、ソート・マージ処理されたレコードを出力ファイルに書き込むファイル出力手段とを有するソート・マージプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００１５】
この媒体に記録されたソート・マージプログラムをコンピュータに実行させることにより、グループ情報判断手段と、ファイルシステム設定手段と、選択条件設定手段と、再編成条件設定手段と、ファイル入力手段と、レコード選択処理手段と、レコード再編成処理手段と、ソート・マージ実行手段と、ファイル出力手段との各機能がコンピュータによって実現できる。
【００１６】
【発明の実施の形態】
まず、本発明の概略について図面を参照して説明する。
図１は本発明によるソート・マージ処理装置の原理的な構成を示すブロック図である。図１において、本発明によるソート・マージ処理装置１０は、ソート・マージのコマンドを受け付けるグループ情報判断手段１１と、ファイルシステムの設定を行うファイルシステム設定手段１２と、レコード選択条件の設定を行う選択条件設定手段１３と、レコード再編成条件の設定を行う再編成条件設定手段１４と、入力ファイルを読み込むファイル入力手段１５と、レコード選択条件に従ってレコードの選択を行うレコード選択処理手段１６と、レコード再編成条件に従ってレコードの再編成を行うレコード再編成処理手段１７と、レコードのソート・マージを実行するソート・マージ実行手段１８と、ソート・マージの処理が実行されたレコードを出力ファイルに書き込むファイル出力手段１９とを備えている。
【００１７】
入力されるコマンドには、グループごとに同一のレコード選択条件および同一のレコード再編成条件、および同一のファイルシステムの入力ファイルをそれぞれ指定したグループ情報が含まれている。グループ情報判断手段１１は、そのグループ情報からグループごとのファイルシステム、レコード選択条件およびレコード再編成条件を判断し、ファイルシステムをファイルシステム設定手段１２によって設定し、レコード選択条件を選択条件設定手段１３によって設定し、レコード再編成条件を再編成条件設定手段１４によって設定する。これによりあるグループに属する入力ファイルについてのソート・マージ処理が可能になる。
【００１８】
ここで、ファイル入力手段１５は、設定されたファイルシステムで入力ファイルを読み込み、レコード選択処理手段１６およびレコード再編成処理手段１７がそれぞれ設定されたレコード選択条件およびレコード再編成条件を基にしてレコードの選択および再編成を行い、ソート・マージ実行手段１８でソート・マージが実行される。これは、あるグループに属するすべての入力ファイルについて同じように実施される。また、別のグループの入力ファイルをソート・マージする場合は、改めて、ファイルシステム、レコード選択条件およびレコード再編成条件の設定が行われ、それらの条件でそのグループに属する入力ファイルのソート・マージが実行される。すべてのグループの処理が終了したなら、ファイル出力手段１９が出力ファイルへの書き込みを行う。
【００１９】
ここで、従来と同じ条件でソート・マージ処理を指令する具体的なコマンド例を以下に示す。
bsortex -sort
−ｉｎｐｕｔ  ｆｉｌｅ＝ｉｎｆｉｌｅ１  ｉｎｃｌｕｄｅ＝１０．４ａｓｃ．ｅｑ．’ｔｅｓｔ’  ｒｅｃｌｅｎ＝１００
−ｉｎｐｕｔ  ｆｉｌｅ＝ｉｎｆｉｌｅ２  ｉｎｃｌｕｄｅ＝２０．４ａｓｃ．ｅｑ．’ｔｅｓｔ’  ｒｅｃｌｅｎ＝１００  ｆｉｌｅｓｙｓ＝ｃｏｂｉｄｘ
−ｏｕｔｐｕｔ  ｆｉｌｅ＝ｏｕｔｐｕｔ３  −ｒｅｃｏｒｄ  ｒｅｃｆｏｒｍ＝ｆｉｘ
なお、「ｂｓｏｒｔｅｘ」はソート・マージ処理のコマンド名を表し、「−」で始まるオプションについては、「−ｓｏｒｔ」はソートスイッチ、「−ｉｎｐｕｔ」はファイルグループ、「ｆｉｌｅ」はファイル名、「ｉｎｃｌｕｄｅ」はレコード選択指定、「ｒｅｃｌｅｎ」はレコード長、「−ｏｕｔｐｕｔ」は出力ファイルグループ、「−ｒｅｃｏｒｄ  ｒｅｃｆｏｒｍ」はレコード形式指定、「ｆｉｌｅｓｙｓ」はファイルシステムの指定を表している。
【００２０】
このように、同じ処理条件を満たす複数の入力ファイルを一つのグループと考え、ソート・マージ処理では、グループごとに同じ条件でレコード処理を行うようにして複数の異なったグループを持つ入力ファイルを一度にソートすることができるようになる。このため、入力ファイルの形式が異なるなど、条件が異なるたびに毎回行わなければならない作業（ソート・マージ処理）を一度に処理することができ、作業効率の改善を望むことができる。
【００２１】
次に、本発明の実施の形態を、ソート・マージプログラムに適用した場合を例にして説明する。まず、ソート・マージプログラムが実行されるコンピュータの構成例を示す。
【００２２】
図２はソート・マージプログラムが実行されるコンピュータの構成例を示すブロック図である。コンピュータ２０は、中央処理装置（ＣＰＵ）２１と、読み取り専用メモリ（ＲＯＭ）２２と、メインメモリ（ＲＡＭ）２３と、ハードディスク（ＨＤＤ）２４と、画像制御部（ＧＣ）２５と、インタフェース部（Ｉ／Ｆ）２６とを備え、これらの要素はバス２７によって相互に接続されている。インタフェース部２６には、キーボードなどの入力装置２８が接続され、画像制御部２５には、ディスプレイ２９が接続される。
【００２３】
ソート・マージプログラムおよび入力ファイルは、ハードディスク２４に格納されており、また、ソート・マージ処理の結果、作られた出力ファイルは、ハードディスク２４に格納される。ソート・マージプログラムは、ハードディスク２４からメインメモリ２３にロードされ、中央処理装置２１による演算にてソート・マージ処理が実行される。そのソート・マージプログラムを実行するためのコマンドは、入力装置２８によって入力される。
【００２４】
次に、異なったレコード選択条件の入力ファイルを持つソート・マージ処理の例を示す。ここでは、一例として、四つの支店Ａ〜Ｄにおける１９９８年および１９９９年の売上げのリストから１９９８年度の売上げのリストを作成する場合について説明する。また、四つの支店Ａ〜Ｄにおける１９９８年の売上げを記録したファイルを第１ファイルグループとし、四つの支店Ａ〜Ｄにおける１９９９年の売上げを記録したファイルを第２ファイルグループとする。
【００２５】
図３は第１ファイルグループの例を示す図であって、（Ａ）はレコードの形式を示し、（Ｂ）はレコードの例を示している。図４は第２ファイルグループの例を示す図であって、（Ａ）はレコードの形式を示し、（Ｂ）はレコードの例を示し、図５はソート・マージ処理結果を示す図である。
【００２６】
第１ファイルグループには第１〜第４ファイルがあり、そこには、各々の支点Ａ〜Ｄの１９９８年の売上げが図３の（Ａ）に示したレコードの形式で記録されている。レコードの形式は、最初のカラムが「支店名」、２番目のカラムが「年」、３番目のカラムが「月」、４番目のカラムが「売上額」になっており、各カラムはブランクによって区切られている。図３の（Ｂ）に示したファイルの中身を見ると、一番上のレコードによれば、「支店名」は「Ａ」、「年」は「１９９８」、「月」は「０１」、「売上額」は「５００００００」となっており、ファイルはこのようなレコードの集まりとなっている。このようなファイルが、支店ごとに四つあり、それが第１〜第４ファイルに該当する。
【００２７】
また、第２ファイルグループにおいても、支店Ａ〜Ｄの「１９９９年」の１月から１２月までの売上げが図４の（Ａ）に示したレコードの形式で記録されている。このような支店ごとのファイルが図４の（Ｂ）において第５〜第８ファイルに該当する。
【００２８】
１９９８年度（１９９８年４月〜１９９９年３月）の各支店ごとの売上げリストを作成するには、第１ファイルグループのレコード選択条件は、「月」データが「０４以上１２以下」と設定し、第２ファイルグループのレコード選択条件は、「月」データが「０１以上０３以下」と設定する。さらに、ソートキーを「支店名」、「年」、「月」の順に昇順指定する。
【００２９】
これにより、図５に示すようなソート結果が得られる。すなわち、１９９８年４月〜１９９９年３月の売上げが、支店名Ａ〜Ｄの順にソートされ、出力ファイルに記録される。
【００３０】
以上のソート・マージ処理を指示するコマンドの例を以下に示す。
bsortex -sort -input reclen=22 file=file1,file2,file3,file4 include=7.2asc.ge.'04'.and. 7.2asc.le.'12' -input reclen=22 file=file5,file6,file7,file8 include=7.2asc.ge.'01'.and. 7.2asc.le.'03' -output file=output -record recform=fix
このコマンドにおいて、最初の「−ｉｎｐｕｔ」文（第１ファイルグループ）内のレコード選択指定における記述「7.2asc.ge.'04'.and. 7.2asc.le.'12'」は、７バイト目から２バイトをアスキー形式で見た文字列が「０４」以上である条件と、７バイト目から２バイトをアスキー形式で見た文字列が「１２」以下である条件との論理積であることを示している。つまり、「月」データが４月から１２月までのレコードを選択する条件を示している。２番目に記述された「−ｉｎｐｕｔ」文（第２ファイルグループ）内のレコード選択指定は、記述「7.2asc.ge.'01'.and. 7.2asc.le.'03'」によって、「月」データが１月から３月までのレコード選択条件を示している。なお、ここでは、ソートキーの指定はないため、既定値として、「支店名」、「年」、「月」の順に昇順指定されているものとする。
【００３１】
ちなみに、同じ処理を従来のマージ・ソート処理で行う場合のコマンドは以下のようになる。
第１ファイルグループのファイルの対するコマンドは、
bsort -s file1 file2 file3 file4 -o intermediatefile1 -p 7.2asc.ge.'04' -p 7.2asc.le.'12' -0.1asca,2.4asca,7.2asca -z 22
第２ファイルグループのファイルの対するコマンドは、
bsort -s file5 file6 file7 file8 -o intermediatefile2 -p 7.2asc.ge.'01' -p 7.2asc.le.'03' -0.1asca,2.4asca,7.2asca -z 22
となり、最後のマージ処理のコマンドは、
bsort -m intermediatefile1 intermediatefile2 -o outfile -0.1asca,2.4asca,7.2asca -z 22
となる。ここで、記述「-0.1asca,2.4asca,7.2asca」は、ソートキーの指定であって、支店名、年、月の順に昇順指定していることを示している。
【００３２】
次に、異なったレコード選択条件および異なったレコード再編成条件の入力ファイルを持つソート・マージ処理の例について説明する。ここでは、上記の例と同様、四つの支店Ａ〜Ｄにおける１９９８年および１９９９年の売上げのリストから１９９８年度の売上げのリストを作成するが、第１ファイルグループにおける各支店Ａ〜Ｄの１９９８年の売上げを記録したファイルでは、「年」データが２桁、第２ファイルグループにおける各支店Ａ〜Ｄの１９９９年の売上げを記録したファイルでは、「年」データが４桁になっている場合について説明する。
【００３３】
図６は第１ファイルグループの例を示す図であって、（Ａ）はレコードの形式を示し、（Ｂ）はレコードの例を示している。図７は第２ファイルグループの例を示す図であって、（Ａ）はレコードの形式を示し、（Ｂ）はレコードの例を示し、図８はレコード再編成を説明する図、図９はソート・マージ処理結果を示す図である。
【００３４】
第１ファイルグループの第１〜第４ファイルには、各々の支店Ａ〜Ｄの１９９９年の売上げデータが図６の（Ａ）に示すレコードの形式で記録されている。すなわち、「年」データが２桁で記録されている。一方、第２ファイルグループの第５〜第８ファイルには、各支店Ａ〜Ｄの２０００年の売上げデータが図７の（Ａ）に示すレコードの形式、つまり、「年」データが４桁で記録されている。
【００３５】
ここで、１９９９年度（１９９９年４月〜２０００年３月）の各支店ごとの売上げリストを作成するには、第１ファイルグループの選択条件は、「月」データが「０４以上１２以下」と設定する。さらに、第１ファイルグループのレコード再編成条件は、「支店名」、「ブランク」、「１９（パディング）」、「年」、「ブランク」、「月」、「ブランク」、「売上額」と設定する。
【００３６】
このレコード再編成は、第１ファイルグループの「年」データのカラム位置が第２ファイルグループの「年」データのカラム位置と合わないことに対してなされるものである。図８に示したように、第１ファイルグループのファイルのレコードは、「支店名」、「ブランク」、「年」、「ブランク」、「月」、「ブランク」、「売上額」と並んだ構成になっており、レコード再編成前の「年」データが２桁になっている。この「年」データの前に、文字列「１９」をパディングすることにより、再編成後のレコードは、第２ファイルグループの「年」データと同じ桁数にすることができる。
【００３７】
また、第２ファイルグループの選択条件は、「月」データを「０１以上０３以下」と設定する。さらに、ソートキーを「支店名」、「年（４桁）」、「月」の順に昇順指定する。
【００３８】
これにより、図９に示すようなソート結果が得られる。すなわち、１９９９年４月〜２０００年３月の売上げが、支店名Ａ〜Ｄの順にソートされ、出力ファイルに記録される。
【００３９】
以上のソート・マージ処理を指示するコマンドの例を以下に示す。
bsortex -sort -input reclen=22 file=file1,file2,file3,file4 include=7.2asc.ge.'04'.and. 7.2asc.le.'12' reconst=0.2,'19'.2asc,2.18 -input reclen=22 file=file5,file6,file7,file8 include=7.2asc.ge.'01'.and.7.2asc.le.'03' -output file=output -record recform=fix
このコマンドにおいて、最初の「−ｉｎｐｕｔ」文（第１ファイルグループ）内における記述「reconst=0.2,'19'.2asc,2.18」がレコード再構成を指定するものである。まず、再編成前のレコードの０バイト目から２バイトを持ってくる。次に、「１９」という文字でパディングするが、そのパディングは２バイトだけ行う。そして、その後に、２バイト目から１８バイトを持ってくることを示している。
【００４０】
ちなみに、同じ処理を従来のマージ・ソート処理で行う場合のコマンドは以下のようになる。
第１ファイルグループのファイルの対するコマンドは、
bsort -s file1 file2 file3 file4 -o intermediatefile1 -p 5.2asc.ge.'04' -p 5.2asc.le.'12' -0.1asca,2.4asca,7.2asca -e 0.2,'19'.2asc,2.18 -z 22
第２ファイルグループのファイルの対するコマンドは、
bsort -s file5 file6 file7 file8 -o intermediatefile2 -p 7.2asc.ge.'01' -p 7.2asc.le.'03' -0.1asca,2.4asca,7.2asca -z 22
となり、最後のマージ処理のコマンドは、
bsort -m intermediatefile1 intermediatefile2 -o outfile -0.1asca,2.4asca,7.2asca -z 22
となる。ここで、記述「-e 0.2,'19'.2asc,2.18」は上記のレコード再編成指定「reconst」に対応する。
【００４１】
図１０はソート・マージプログラムの処理の流れを示すフローチャートである。まず、最初に初期設定を行う（ステップＳ１１）。ここでは、ファイルグループ番号（ＦＧＮ）およびセーブグループ番号（ＳＧＮ）を「０」に設定する。次に、ファイルグループ番号をインクリメントする（ステップＳ１２）。ここで、ファイルグループ番号とセーブグループ番号とが等しくないかどうかを判断する（ステップＳ１３）。処理の最初あるいはファイルグループが変更になった場合は、ファイルグループ番号とセーブグループ番号とは等しくないので、ここで、そのファイルグループで指定されたファイルシステムに変更／設定を行い（ステップＳ１４）、同一ファイルグルー内では、ファイルシステムは同一なので、このステップＳ１４の処理は迂回される。
【００４２】
次に、設定されたファイルシステムで入力ファイルの読み込みが行われ（ステップＳ１５）、その後、現ファイルグループの入力が終了したかどうかが判断される（ステップＳ１６）。たとえば上記の例で、第１〜第４ファイルの入力が終了して第５ファイルが入力された場合には、現ファイルグループの入力が終了したので、次のファイルグループへ移るために、ステップＳ１２に戻る。現ファイルグループの入力が終了していない場合には、ファイルグループ番号とセーブグループ番号とが等しくないかどうかを判断する（ステップＳ１７）。処理の最初あるいはファイルグループの変更直後は、ファイルグループ番号とセーブグループ番号とは等しくないので、ここで、セーブグループ番号にファイルグループ番号を代入し（ステップＳ１８）、レコード選択条件を変更し（ステップＳ１９）、レコード再編成条件を変更する（ステップＳ２０）ステップＳ１７において、ファイルグループ番号とセーブグループ番号とが等しい場合は、同一ファイルグループ内の処理であるため、ステップＳ１８〜Ｓ２０の処理は迂回される。
【００４３】
その後、変更されたレコード選択条件に従ってレコード選択処理が行われ（ステップＳ２１）、変更されたレコード再編成条件に従ってレコード再編成処理が行われ（ステップＳ２２）、選択および再構成されたレコードに対して指定されたソートキーに基づくソート・マージ処理が行われる（ステップＳ２３）。以上のステップＳ１５〜Ｓ２３は入力ファイルの読み込みが終わるまで繰り返して実行され、データの終わり（ＥＯＤ）になると、出力ファイルの書き込みを行う（ステップＳ２４）。
【００４４】
また、上記のコンピュータで処理されるべきソート・マージプログラムの処理内容は、コンピュータで読み取り可能な記録媒体に記録させておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光学ディスク、半導体メモリなどがある。市場に流通させる場合には、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）やフロッピーディスクなどの可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの外部記憶装置などに格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスクなどにプログラムを格納しておき、メインメモリにロードして実行する。
【００４５】
【発明の効果】
以上説明したように本発明では、ファイルシステム、レコード選択条件およびレコード再編成条件がすべて同じソート・マージ対象の入力ファイルを一つのグループとし、ソート・マージ処理をグループごとに条件を変更して実施するように構成した。このため、レコード形式、ファイルシステムの異なるファイルを一度に処理できるためユーザ業務を簡素化でき、処理ステップが削減されるため処理時間を短縮することができ、バッチファイルなどの処理ステップが削減されるため保守性を向上させることができる。
【００４６】
また、ソート・マージプログラムの呼出し回数が削減されることによりシステム全体のスループットが向上し、さらに、処理途中で中間ファイルを作る必要がないため、ディスクの使用量を削減することができる。
【図面の簡単な説明】
【図１】本発明によるソート・マージ処理装置の原理的な構成を示すブロック図である。
【図２】ソート・マージプログラムが実行されるコンピュータの構成例を示すブロック図である。
【図３】第１ファイルグループの例を示す図であって、（Ａ）はレコードの形式を示し、（Ｂ）はレコードの例を示している。
【図４】第２ファイルグループの例を示す図であって、（Ａ）はレコードの形式を示し、（Ｂ）はレコードの例を示している。
【図５】ソート・マージ処理結果を示す図である。
【図６】第１ファイルグループの例を示す図であって、（Ａ）はレコードの形式を示し、（Ｂ）はレコードの例を示している。
【図７】第２ファイルグループの例を示す図であって、（Ａ）はレコードの形式を示し、（Ｂ）はレコードの例を示している。
【図８】レコード再編成を説明する図である。
【図９】ソート・マージ処理結果を示す図である。
【図１０】ソート・マージプログラムの処理の流れを示すフローチャートである。
【図１１】従来のソート・マージ処理の流れを示すフローチャートである。
【図１２】従来のソート・マージ処理の処理ステップを説明する図であって、（Ａ）はソート・マージ処理の第１のステップを示し、（Ｂ）はソート・マージ処理の第２のステップを示し、（Ｃ）はソート・マージ処理の第３のステップを示している。
【符号の説明】
１０  ソート・マージ処理装置
１１  グループ情報判断手段
１２  ファイルシステム設定手段
１３  選択条件設定手段
１４  再編成条件設定手段
１５  ファイル入力手段
１６  レコード選択処理手段
１７  レコード再編成処理手段
１８  ソート・マージ実行手段
１９  ファイル出力手段
２０  コンピュータ
２１  中央処理装置
２２  読み取り専用メモリ
２３  メインメモリ
２４  ハードディスク
２５  画像制御部
２６  インタフェース部
２７  バス
２８  入力装置
２９  ディスプレイ
【図１】
0003640580.tif 000002
【図２】
0003640580.tif 000003
【図３】
0003640580.tif 000004
【図４】
0003640580.tif 000005
【図５】
0003640580.tif 000006
【図６】
0003640580.tif 000007
【図７】
0003640580.tif 000008
【図８】
0003640580.tif 000009
【図９】
0003640580.tif 000010
【図１０】
0003640580.tif 000011
【図１１】
0003640580.tif 000012
【図１２】
0003640580.tif 000013