(57)【特許請求の範囲】
【請求項１】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、入金額又は出金額である取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
前記出金要求の成立又は未成立を格納する結果とを備え、
前記演算手段は、口座処理部と、取消処理部とを備え、
前記口座処理部は、
前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定し、
前記特定された対象勘定日の残高と前記取引金額とを加減算し、
当該口座処理要求の勘定日、取引種類、取引金額及び優先順位を前記取引明細情報に記録し、
当該加減算した処理後の残高を、前記対象勘定日の残高として前記残高明細情報に記録し又は更新し、
当該取引金額を、前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して加減算することで、先日付の残高を更新し、
前記取消処理部は、前記優先順位に基づく取消処理として、
前記先日付の残高が記録又は更新された後に、当該先日付の残高がマイナスとなっている際には、当該残高がマイナスとなっている勘定日に前記結果が成立の出金要求を前記取引明細情報から読み出して、当該出金要求の前記優先順位が最も低い出金要求を取消対象として特定し、
前記取引明細情報に格納された出金要求が取消対象として特定された際には、当該出金要求の取引金額と当該勘定日の残高とを加算し、当該加算した処理後の残高を当該勘定日の残高として前記残高明細情報に更新し、当該特定した出金要求の前記結果に未成立を記録することを特徴とする先日付完結処理システム。
【請求項２】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、入金額又は出金額である取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
前記出金要求の成立又は未成立を格納する結果とを備え、
前記演算手段が、口座処理部と、取消処理部とを備えた先日付完結処理システムを使用して口座処理要求を処理する先日付完結処理方法であって、
この方法は、
前記口座処理部が、
前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定する工程と、
前記特定された対象勘定日の残高と前記取引金額とを加減算する工程と、
当該口座処理要求の勘定日、取引種類、取引金額及び優先順位を前記取引明細情報に記録する工程と、
当該加減算した処理後の残高を、前記対象勘定日の残高として前記残高明細情報に記録し又は更新する工程と、
当該取引金額を、前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して加減算することで、先日付の残高を更新する工程とを備え、
前記取消処理部が、前記優先順位に基づく取消処理として、
前記先日付の残高が記録又は更新された後に、当該先日付の残高がマイナスとなっている際には、当該残高がマイナスとなっている勘定日に前記結果が成立の出金要求を前記取引明細情報から読み出して、当該出金要求の前記優先順位が最も低い出金要求を取消対象として特定する工程と、
前記取引明細情報に格納された出金要求が取消対象として特定された際には、当該出金要求の取引金額と当該勘定日の残高とを加算する工程と、当該加算した処理後の残高を当該勘定日の残高として前記残高明細情報に更新する工程と、当該特定した出金要求の前記結果に未成立を記録する工程とを備えたことを特徴とする先日付完結処理方法。
【請求項３】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、入金額又は出金額である取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
前記出金要求の成立又は未成立を格納する結果とを備え、
前記演算手段が、口座処理部と、取消処理部とを備えた先日付完結処理システムの前記演算手段を使用して口座処理要求を処理するための先日付完結処理用プログラムであって、
この先日付完結処理用プログラムは、前記演算手段を動作させる指令として、
前記口座処理部に、
前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定させ、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定させる指令と、
前記特定された対象勘定日の残高と前記取引金額とを加減算させる指令と、
当該口座処理要求の勘定日、取引種類、取引金額及び優先順位を前記取引明細情報に記録させる指令と、
当該加減算した処理後の残高を、前記対象勘定日の残高として前記残高明細情報に記録させ又は更新させる指令と、
当該取引金額を、前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して加減算することで、先日付の残高を更新させる指令とを備え、
前記取消処理部に、前記優先順位に基づく取消処理として、
前記先日付の残高が記録又は更新された後に、当該先日付の残高がマイナスとなっている際には、当該残高がマイナスとなっている勘定日に前記結果が成立の出金要求を前記取引明細情報から読み出させて、当該出金要求の前記優先順位が最も低い出金要求を取消対象として特定させる指令と、
前記取引明細情報に格納された出金要求が取消対象として特定された際には、当該出金要求の取引金額と当該勘定日の残高とを加算させる指令と、当該加算した処理後の残高を当該勘定日の残高として前記残高明細情報に更新させる指令とと、当該特定した出金要求の前記結果に未成立を記録させる指令とを備えたことを特徴とする先日付完結処理用プログラム。
【請求項４】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、入金額又は出金額である取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
前記出金要求の成立又は未成立を格納する結果と、
当該結果が未成立となった出金要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該出金要求毎に格納する残不足明細情報とを備え、
前記演算手段は、口座処理部と、再カット処理部とを備え、
前記口座処理部は、
前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定し、
前記特定された対象勘定日の残高と前記取引金額とを加減算し、
当該口座処理要求の勘定日、取引種類、取引金額及び優先順位を前記取引明細情報に記録し、
当該加減算した処理後の残高を、前記対象勘定日の残高として前記残高明細情報に記録し又は更新し、
当該取引金額を、前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して加減算することで、先日付の残高を更新し、
前記再カット処理部は、前記優先順位に基づく再カット処理として、
前記先日付の残高が記録又は更新された後、当該先日付の残高がプラスの際には、当該残高がプラスの勘定日に前記結果が未成立の出金要求を前記残不足明細情報から読み出して、当該出金要求の取引金額と当該勘定日の残高とを比較することで、当該決済可能な出金要求のうち最も前記優先順位の高い出金要求を再カット対象として特定し、
前記残不足明細情報に格納された出金要求が再カット対象に特定された際には、当該特定された出金要求の取引金額を前記残高から減算して、当該減算した処理後の残高を前記残高明細情報に更新し、当該出金要求を前記取引明細情報に記録し、前記結果に成立を記録することを特徴とする先日付完結処理システム。
【請求項５】
前記残不足明細情報が、勘定日を第１キーとし優先順位を第２キーとして勘定日順及び当該各勘定日内では優先順位順に論理的に並べられた状態で読み出され、
前記再カット対象の特定は、前記残不足明細情報のデータ構造に従った順序で前記残高と取引金額とを比較し、当該取引金額が当該残高以下で決済可能と判定される最初の出金要求を再カット対象と特定することを特徴とする請求項４記載の先日付完結処理システム。
【請求項６】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、入金額又は出金額である取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
前記出金要求の成立又は未成立を格納する結果と、
当該結果が未成立となった出金要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該出金要求毎に格納する残不足明細情報とを備え、
前記演算手段が、口座処理部と、再カット処理部とを備えた先日付完結処理システムを使用して口座処理要求を処理する先日付完結処理方法であって、
この方法は、
前記口座処理部が、
前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定する工程と、
前記特定された対象勘定日の残高と前記取引金額とを加減算する工程と、
当該口座処理要求の勘定日、取引種類、取引金額及び優先順位を前記取引明細情報に記録する工程と、
当該加減算した処理後の残高を、前記対象勘定日の残高として前記残高明細情報に記録し又は更新する工程と、
当該取引金額を、前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して加減算することで、先日付の残高を更新する工程と、
前記再カット処理部が、前記優先順位に基づく再カット処理として、
前記先日付の残高が記録又は更新された後、当該先日付の残高がプラスの際には、当該残高がプラスの勘定日に前記結果が未成立の出金要求を前記残不足明細情報から読み出して、当該出金要求の取引金額と当該勘定日の残高とを比較することで、当該決済可能な出金要求のうち最も前記優先順位の高い出金要求を再カット対象として特定する工程と、
前記残不足明細情報に格納された出金要求が再カット対象に特定された際には、当該特定された出金要求の取引金額を前記残高から減算して、当該減算した処理後の残高を前記残高明細情報に更新し、当該出金要求を前記取引明細情報に記録し、前記結果に成立を記録する工程とを備えたことを特徴とする先日付完結処理方法。
【請求項７】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、入金額又は出金額である取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
前記出金要求の成立又は未成立を格納する結果と、
当該結果が未成立となった出金要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該出金要求毎に格納する残不足明細情報とを備え、
前記演算手段が、口座処理部と、再カット処理部とを備えた先日付完結処理システムを使用して口座処理要求を処理するための先日付完結処理用プログラムであって、
このプログラムは、前記演算手段を動作させる指令として、
前記口座処理部に、
前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定させ、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定させる指令と、
前記特定された対象勘定日の残高と前記取引金額とを加減算させる指令と、
当該口座処理要求の勘定日、取引種類、取引金額及び優先順位を前記取引明細情報に記録させる指令と、
当該加減算した処理後の残高を、前記対象勘定日の残高として前記残高明細情報に記録し又は更新させる指令と、
当該取引金額を、前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して加減算することで、先日付の残高を更新させる指令と、
前記再カット処理部は、前記優先順位に基づく再カット処理として、
前記先日付の残高が記録又は更新された後、当該先日付の残高がプラスの際には、当該残高がプラスの勘定日に前記結果が未成立の出金要求を前記残不足明細情報から読み出させて、当該出金要求の取引金額と当該勘定日の残高とを比較させることで、当該決済可能な出金要求のうち最も前記優先順位の高い出金要求を再カット対象として特定させる指令と、
前記残不足明細情報に格納された出金要求が再カット対象に特定された際には、当該特定された出金要求の取引金額を前記残高から減算させて、当該減算した処理後の残高を前記残高明細情報に更新させ、当該出金要求を前記取引明細情報に記録させ、前記結果に成立を記録させる指令とを備えたことを特徴とする先日付完結処理用プログラム。
【請求項８】
複数の業務処理要求に配分する有限の資源の状態について日単位等の競合単位毎での増減を格納する資源状態ファイルと、利用、予約又は使用等の前記資源に対する操作を要求する業務処理要求を処理する演算手段とを備え、
前記業務処理要求は、演算日に対して先日付を含む対象競合単位と、当該業務処理要求が要求する資源と、当該業務処理要求の他の業務処理要求に対する優先順位とを有し、
前記資源状態ファイルは、
前記業務処理要求の実行可否を定める前記資源の状態を前記競合単位毎に格納する資源明細情報と、
成立した前記業務処理要求が要求する資源及び前記優先順位を前記競合単位毎に格納する取引明細情報と、
未成立の前記業務処理要求が要求する資源及び前記優先順位を前記競合単位毎に格納する未成立明細情報と、
前記業務処理要求の成立又は未成立を格納する結果とを備え、
前記演算手段は、業務処理部と、取消処理部と、再実行処理部と、取消再実行メイン処理部とを備え、
前記業務処理部は、
前記対象競合単位が先日付の業務処理要求を業務処理する際に、
当該対象競合単位の前記資源を前記資源明細情報から読み出し、当該業務処理要求の要求する資源が当該対象競合単位の資源で充足する場合には、当該業務処理要求を成立させて前記取引明細情報に記録し、前記資源明細情報を更新し、前記結果に成立を記録することで、当該業務処理要求の成立処理を行い、
一方、前記業務処理要求の要求する資源が当該対象競合単位の資源では不足する場合には、当該業務処理要求を未成立として前記未成立明細情報に記録し、前記結果に未成立を記録することで、当該業務処理要求の未成立処理を行い、
前記取消処理部は、
前記取消再実行メイン処理部によって前記取引明細情報に格納された業務処理要求が取消対象として特定された際には、
当該取消対象の業務処理要求の要求する資源を当該競合単位に利用できる資源として前記資源明細情報を更新し、当該業務処理要求を前記未成立明細情報に記録し、前記結果に未成立を記録することで、取消処理を行い、
前記再実行処理部は、
前記取消再実行メイン処理部によって前記未成立明細情報に格納された業務処理要求が再実行対象として特定された際には、
当該再実行対象の業務処理要求の要求する資源を当該競合単位の資源に割り当てて前記資源明細情報を更新し、当該業務処理要求を前記取引明細情報に記録し、前記結果に成立を記録することで、再実行処理を行い、
前記取消再実行メイン処理部は、
前記成立処理、未成立処理、取消処理又は再実行処理の後に、
前記先日付の前記競合単位にて前記資源に不足が生じた際には、取消対象特定処理として、
当該資源不足の競合単位に前記結果が成立である業務処理要求を前記取引明細情報から読み出して、最も優先順位の低い業務処理要求を取消対象とし、
一方、前記先日付の前記競合単位にて前記資源に空きがある際には、再実行対象特定処理として、
当該競合単位に前記結果が未成立である業務処理要求を前記未成立明細情報から読み出して、最も優先順位が高い業務処理要求を高優先業務の業務処理要求として特定し、
当該競合単位で前記結果が成立である業務処理要求を前記取引明細情報から読み出して、当該結果が成立の業務処理要求のうち前記高優先業務の業務処理要求の優先順位よりも優先順位の低い業務処理要求群によって利用される資源の一覧又は総量を修正利用可能資源として算出し、
前記高優先業務の業務処理要求の要求する資源が前記修正利用可能資源で充足する場合には、当該高優先業務の業務処理要求を再実行対象として特定し、
前記取消対象特定処理と、前記再実行対象特定処理とにより、取消再実行メイン処理を行うことを特徴とする資源利用最適化システム。
【請求項９】
前記演算手段は、
前記成立処理及び未成立処理である業務処理を、一つのトランザクションとして実行し、当該実行中に、他の派生トランザクションとして前記取消再実行メイン処理を起動し、
当該取消再実行メイン処理を、当該他の派生トランザクションとして実行することを特徴とする請求項８記載の資源利用最適化システム。
【請求項１０】
前記取消再実行メイン処理部は、前記業務処理のトランザクションが同期点に達した後に、前記取消再実行メイン処理の派生トランザクションを開始することを特徴とする請求項９記載の資源利用最適化システム。
【請求項１１】
前記演算手段は、
前記取消再実行メイン処理の実行中に、前記取引明細情報及び前記未成立明細情報に特定の対象となる業務処理要求がなくなり、当該取消再実行メイン処理による特定がなくなるまで、前記取消処理又は前記再実行処理の派生トランザクションとしての起動を繰り返すことを特徴とする請求項９又は１０記載の資源利用最適化システム。
【請求項１２】
複数の業務処理要求に配分する有限の資源の状態について日単位等の競合単位毎での増減を格納する資源状態ファイルと、利用、予約又は使用等の前記資源に対する操作を要求する業務処理要求を処理する演算手段とを備え、
前記業務処理要求は、演算日に対して先日付を含む対象競合単位と、当該業務処理要求が要求する資源と、当該業務処理要求の他の業務処理要求に対する優先順位とを有し、
前記資源状態ファイルは、
前記業務処理要求の実行可否を定める前記資源の状態を前記競合単位毎に格納する資源明細情報と、
成立した前記業務処理要求が要求する資源及び前記優先順位を前記競合単位毎に格納する取引明細情報と、
未成立の前記業務処理要求が要求する資源及び前記優先順位を前記競合単位毎に格納する未成立明細情報と、
前記業務処理要求の成立又は未成立を格納する結果とを備え、
前記演算手段は、業務処理部と、取消処理部と、再実行処理部と、取消再実行メイン処理部とを備えた資源利用最適化システムを使用して業務処理要求を処理する資源利用最適化用プログラムであって、
このプログラムは、前記演算手段を動作させる指令として、
前記業務処理部が、
前記対象競合単位が先日付の業務処理要求を業務処理する際に、
当該対象競合単位の前記資源を前記資源明細情報から読み出し、当該業務処理要求の要求する資源が当該対象競合単位の資源で充足する場合には、当該業務処理要求を成立させて前記取引明細情報に記録し、前記資源明細情報を更新し、前記結果に成立を記録することで、当該業務処理要求の成立処理を行わせる指令と、
一方、前記業務処理要求の要求する資源が当該対象競合単位の資源では不足する場合には、当該業務処理要求を未成立として前記未成立明細情報に記録し、前記結果に未成立を記録することで、当該業務処理要求の未成立処理を行わせる指令と、
前記取消処理部が、
前記取消再実行メイン処理部によって前記取引明細情報に格納された業務処理要求が取消対象として特定された際には、
当該取消対象の業務処理要求の要求する資源を当該競合単位に利用できる資源として前記資源明細情報を更新し、当該業務処理要求を前記未成立明細情報に記録し、前記結果に未成立を記録することで、取消処理を行わせる指令と、
前記再実行処理部は、
前記取消再実行メイン処理部によって前記未成立明細情報に格納された業務処理要求が再実行対象として特定された際には、
当該再実行対象の業務処理要求の要求する資源を当該競合単位の資源に割り当てて前記資源明細情報を更新し、当該業務処理要求を前記取引明細情報に記録し、前記結果に成立を記録することで、再実行処理を行わせる指令と、
前記取消再実行メイン処理部が、
前記成立処理、未成立処理、取消処理又は再実行処理の後に、
前記先日付の前記競合単位にて前記資源に不足が生じた際には、取消対象特定処理として、
当該資源不足の競合単位に前記結果が成立である業務処理要求を前記取引明細情報から読み出して、最も優先順位の低い業務処理要求を取消対象とさせる指令と、
一方、前記先日付の前記競合単位にて前記資源に空きがある際には、再実行対象特定処理として、
当該競合単位に前記結果が未成立である業務処理要求を前記未成立明細情報から読み出して、最も優先順位が高い業務処理要求を高優先業務の業務処理要求として特定させ、
当該競合単位で前記結果が成立である業務処理要求を前記取引明細情報から読み出させ、当該結果が成立の業務処理要求のうち前記高優先業務の業務処理要求の優先順位よりも優先順位の低い業務処理要求群によって利用される資源の一覧又は総量を修正利用可能資源として算出させる指令と、
前記高優先業務の業務処理要求の要求する資源が前記修正利用可能資源で充足する場合には、当該高優先業務の業務処理要求を再実行対象として特定させる指令とを備えたことを特徴とする資源利用最適化システム用プログラム。
【請求項１３】
複数の業務処理要求に配分する有限の資源の状態について日単位等の競合単位毎での増減を格納する資源状態ファイルと、利用、予約又は使用等の前記資源に対する操作を要求する業務処理要求を処理する演算手段とを備え、
前記業務処理要求は、演算日に対して先日付を含む対象競合単位と、当該業務処理要求が要求する資源と、当該業務処理要求の他の業務処理要求に対する優先順位とを有し、
前記資源状態ファイルは、
前記業務処理要求の実行可否を定める前記資源の状態を前記競合単位毎に格納する資源明細情報と、
成立した前記業務処理要求が要求する資源及び前記優先順位を前記競合単位毎に格納する取引明細情報と、
未成立の前記業務処理要求が要求する資源及び前記優先順位を前記競合単位毎に格納する未成立明細情報と、
前記業務処理要求の成立又は未成立を格納する結果とを備え、
前記演算手段は、業務処理部と、取消処理部と、再実行処理部と、取消再実行メイン処理部とを備え、
前記業務処理部は、
当該対象競合単位の前記資源を前記資源明細情報から読み出し、当該業務処理要求の要求する資源が当該対象競合単位の資源で充足する場合には、当該業務処理要求を成立させて前記取引明細情報に記録し、前記資源明細情報を更新し、前記結果に成立を記録することで、当該業務処理要求の成立処理を行い、
一方、前記業務処理要求の要求する資源が当該対象競合単位の資源では不足する場合には、当該業務処理要求を未成立として前記未成立明細情報に記録し、前記結果に未成立を記録することで、当該業務処理要求の未成立処理を行い、
前記取消処理部は、
前記取消再実行メイン処理部によって前記取引明細情報に格納された業務処理要求が取消対象として特定された際には、
当該取消対象の業務処理要求の要求する資源を当該競合単位に利用できる資源として前記資源明細情報を更新し、当該業務処理要求を前記未成立明細情報に記録し、前記結果に未成立を記録することで、取消処理を行い、
前記再実行処理部は、
前記取消再実行メイン処理部によって前記未成立明細情報に格納された業務処理要求が再実行対象として特定された際には、
当該再実行対象の業務処理要求の要求する資源を当該競合単位の資源に割り当てて前記資源明細情報を更新し、当該業務処理要求を前記取引明細情報に記録し、前記結果に成立を記録することで、再実行処理を行う、
資源利用最適化システムの前記演算手段の前記取消再実行メイン処理部を使用して、前記取消再カット処理を行うための取消再カット処理用プログラムであって、
当該プログラムは前記演算手段を動作させる指令として、
前記成立処理、未成立処理、取消処理又は再実行処理の後に、
前記先日付の前記競合単位にて前記資源に不足が生じた際には、取消対象特定処理として、
当該資源不足の競合単位に前記結果が成立である業務処理要求を前記取引明細情報から読み出して、最も優先順位の低い業務処理要求を取消対象とさせる指令と、
一方、前記先日付の前記競合単位にて前記資源に空きがある際には、再実行対象特定処理として、
当該競合単位に前記結果が未成立である業務処理要求を前記未成立明細情報から読み出させて、最も優先順位が高い業務処理要求を高優先業務の業務処理要求として特定させるして算出させる指令と、
前記高優先業務の業務処理要求の要求する資源が前記修正利用可能資源で充足する場合には、当該高優先業務の業務処理要求を再実行対象として特定させる指令とを備えたことを特徴とする取消再実行メイン処理用プログラム。
【請求項１４】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
前記出金要求の成立又は未成立を格納する結果と、
当該結果が未成立となった出金要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該出金要求毎に格納する残不足明細情報とを備え、
前記演算手段は、口座処理部と、取消処理部と、再カット処理部と、取消再カットメイン処理部とを備え、
前記口座処理部は、
前記出金要求を出金処理する際に、前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定し、
当該特定した残高と前記取引金額とを比較して、当該取引金額が当該残高以下で決済可能な際には、
前記特定された対象勘定日の残高から前記取引金額を減算し、当該減算後の残高で前記残高明細情報を更新し、前記取引明細情報に当該出金要求を記録し、当該取引金額を前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して減算することで先日付の残高を更新し、前記結果に成立を記録することで、成立処理を行い、
一方、当該取引金額が当該残高より大きく決済不能な際には、
前記残不足明細情報に当該出金要求を記録し、前記結果に未成立を記録することで、未成立処理を行い、
前記取消処理部は、
前記取消再カットメイン処理部によって前記取引明細情報に格納された出金要求が取消対象として特定された際には、
当該取消対象の出金要求の取引金額を当該対象勘定日の残高に加算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記未成立明細情報に記録し、前記結果に未成立を記録することで、取消処理を行い、
前記再カット処理部は、
前記取消再カットメイン処理部によって前記残不足明細情報に格納された出金要求が再カット対象として特定された際には、
当該再カット対象の出金要求の取引金額を当該対象勘定日の残高から減算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記取引明細情報に記録し、前記結果に成立を記録することで、再カット処理を行い、
前記取消再カットメイン処理部は、
前記成立処理、前記未成立処理、前記取消処理又は前記再カット処理がなされた後、
前記先日付である前記勘定日の残高がマイナスの際には、取消対象特定処理として、
当該残高がマイナスの勘定日にて前記結果が成立である出金要求を前記取引明細情報から読み出して、最も優先順位の低い出金要求を取消対象として特定し、
一方、前記先日付である前記勘定日の残高がプラスの際には、再カット対象特定処理として、
当該残高がプラスの勘定日に前記結果が未成立である出金要求を前記残不足明細情報から読み出して、最も優先順位が高い出金要求を高優先業務の出金要求として特定し、
当該勘定日に前記結果が成立である出金要求を前記取引明細情報から読み出して、当該結果が成立の出金要求のうち前記高優先業務の出金要求の優先順位よりも優先順位の低い出金要求群の取引金額を当該勘定日の残高に加算して、当該加算した処理後の残高を修正出金可能額とし、
前記高優先業務の出金要求の取引金額と前記修正出金可能額とを比較して、当該取引金額が当該修正出金可能額以下で決済可能な際には、当該高優先業務の出金要求を再カット対象として特定し、
前記取消対象特定処理と、前記再カット対象特定処理とにより、取消再カットメイン処理を行うことを特徴とする先日付完結処理システム。
【請求項１５】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
前記出金要求の成立又は未成立を格納する結果と、
当該結果が未成立となった出金要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該出金要求毎に格納する残不足明細情報とを備え、
前記演算手段は、口座処理部と、取消処理部と、再カット処理部と、取消再カットメイン処理部とを備えた先日付完結処理システムを使用して口座処理要求を処理する先日付完結処理方法であって、
この方法は、
前記口座処理部が、
前記出金要求を出金処理する際に、前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定する工程と、
当該特定した残高と前記取引金額とを比較して、当該取引金額が当該残高以下で決済可能な際には、
前記特定された対象勘定日の残高から前記取引金額を減算し、当該減算後の残高で前記残高明細情報を更新し、前記取引明細情報に当該出金要求を記録し、当該取引金額を前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して減算することで先日付の残高を更新し、前記結果に成立を記録することで、成立処理を行う工程と、
一方、当該取引金額が当該残高より大きく決済不能な際には、
前記残不足明細情報に当該出金要求を記録し、前記結果に未成立を記録することで、未成立処理を行う工程と、
前記取消処理部が、
前記取消再カットメイン処理部によって前記取引明細情報に格納された出金要求が取消対象として特定された際には、
当該取消対象の出金要求の取引金額を当該対象勘定日の残高に加算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記未成立明細情報に記録し、前記結果に未成立を記録することで、取消処理を行う工程と、
前記再カット処理部が、
前記取消再カットメイン処理部によって前記残不足明細情報に格納された出金要求が再カット対象として特定された際には、
当該再カット対象の出金要求の取引金額を当該対象勘定日の残高から減算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記取引明細情報に記録し、前記結果に成立を記録することで、再カット処理を行う工程と、
前記取消再カットメイン処理部が、
前記成立処理、前記未成立処理、前記取消処理又は前記再カット処理がなされた後、
前記先日付である前記勘定日の残高がマイナスの際には、取消対象特定処理として、
当該残高がマイナスの勘定日にて前記結果が成立である出金要求を前記取引明細情報から読み出して、最も優先順位の低い出金要求を取消対象として特定する工程と、
一方、前記先日付である前記勘定日の残高がプラスの際には、再カット対象特定処理として、
当該残高がプラスの勘定日に前記結果が未成立である出金要求を前記残不足明細情報から読み出して、最も優先順位が高い出金要求を高優先業務の出金要求として特定する工程と、
当該勘定日に前記結果が成立である出金要求を前記取引明細情報から読み出して、当該結果が成立の出金要求のうち前記高優先業務の出金要求の優先順位よりも優先順位の低い出金要求群の取引金額を当該勘定日の残高に加算して、当該加算した処理後の残高を修正出金可能額とする工程と、
前記高優先業務の出金要求の取引金額と前記修正出金可能額とを比較して、当該取引金額が当該修正出金可能額以下で決済可能な際には、当該高優先業務の出金要求を再カット対象として特定する工程とを備えたことを特徴とする先日付完結処理方法。
【請求項１６】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
前記出金要求の成立又は未成立を格納する結果と、
当該結果が未成立となった出金要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該出金要求毎に格納する残不足明細情報とを備え、
前記演算手段は、口座処理部と、取消処理部と、再カット処理部と、取消再カットメイン処理部とを備え、
前記口座処理部は、
前記出金要求を出金処理する際に、前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定し、
当該特定した残高と前記取引金額とを比較して、当該取引金額が当該残高以下で決済可能な際には、
前記特定された対象勘定日の残高から前記取引金額を減算し、当該減算後の残高で前記残高明細情報を更新し、前記取引明細情報に当該出金要求を記録し、当該取引金額を前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して減算することで先日付の残高を更新し、前記結果に成立を記録することで、成立処理を行い、
一方、当該取引金額が当該残高より大きく決済不能な際には、
前記残不足明細情報に当該出金要求を記録し、前記結果に未成立を記録することで、未成立処理を行い、
前記取消処理部は、
前記取消再カットメイン処理部によって前記取引明細情報に格納された出金要求が取消対象として特定された際には、
当該取消対象の出金要求の取引金額を当該対象勘定日の残高に加算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記未成立明細情報に記録し、前記結果に未成立を記録することで、取消処理を行い、
前記再カット処理部は、
前記取消再カットメイン処理部によって前記残不足明細情報に格納された出金要求が再カット対象として特定された際には、
当該再カット対象の出金要求の取引金額を当該対象勘定日の残高から減算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記取引明細情報に記録し、前記結果に成立を記録することで、再カット処理を行う、
先日付完結処理システムの前記演算手段を使用して前記取消再カットメイン処理を行うための取消再カットメイン処理用プログラムであって、
このプログラムは、前記演算手段を動作させる指令として、
前記成立処理、前記未成立処理、前記取消処理又は前記再カット処理がなされた後、
前記先日付である前記勘定日の残高がマイナスの際には、取消対象特定処理として、
当該残高がマイナスの勘定日にて前記結果が成立である出金要求を前記取引明細情報から読み出させて、最も優先順位の低い出金要求を取消対象として特定させる指令と、
一方、前記先日付である前記勘定日の残高がプラスの際には、再カット対象特定処理として、
当該残高がプラスの勘定日に前記結果が未成立である出金要求を前記残不足明細情報から読み出させて、最も優先順位が高い出金要求を高優先業務の出金要求として特定させる指令と、
当該勘定日に前記結果が成立である出金要求を前記取引明細情報から読み出させて、当該結果が成立の出金要求のうち前記高優先業務の出金要求の優先順位よりも優先順位の低い出金要求群の取引金額を当該勘定日の残高に加算させて、当該加算した処理後の残高を修正出金可能額とする指令と、
前記高優先業務の出金要求の取引金額と前記修正出金可能額とを比較させて、当該取引金額が当該修正出金可能額以下で決済可能な際には、当該高優先業務の出金要求を再カット対象として特定する指令とを備えたことを特徴とする取消再カットメイン処理用プログラム。
【請求項１７】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、当該優先順位は、再カット期限が２日以上で優先順位の高い第１群の優先順位と、第１群の優先順位よりも優先順位が低く再カット期限が１日である第２群の優先順位とのいずれかであり、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
当該口座への自動融資の貸越極度額と、
前記出金要求の成立又は未成立を格納する結果と、
前記結果に一旦未成立が記録された出金要求の対象勘定日、取引種類、優先順位、前記結果及び取引金額を、当該出金要求毎に格納する残不足明細情報とを備え、
前記演算手段は、口座処理部と、取消処理部と、再カット処理部と、取消再カットメイン処理部とを備え、
前記口座処理部は、
前記出金要求を出金処理する際に、前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定し、
当該特定した残高と前記貸越極度額とを加算した出金可能額と、前記取引金額とを比較して、当該取引金額が当該出金可能額以下で決済可能な際には、
前記特定された対象勘定日の残高から前記取引金額を減算し、当該減算後の残高で前記残高明細情報を更新し、前記取引明細情報に当該出金要求を記録し、当該取引金額を前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して減算することで先日付の残高を更新し、前記結果に成立を記録することで、成立処理を行い、
一方、当該取引金額が当該出金可能額より大きく決済不能な場合には、
前記残不足明細情報に当該出金要求を記録し、前記結果に未成立を記録することで、未成立処理を行い、
前記取消処理部は、
前記取消再カットメイン処理部によって前記取引明細情報に格納された出金要求が取消対象として特定された際には、
当該取消対象の出金要求の取引金額を当該対象勘定日の残高に加算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記残不足明細情報に記録し、前記結果に未成立を記録することで、取消処理を行い、
前記再カット処理部は、
前記取消再カットメイン処理部によって前記残不足明細情報に格納された出金要求が再カット対象として特定された際には、
当該再カット対象の出金要求の取引金額を当該対象勘定日の残高から減算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記取引明細情報に記録し、前記結果に成立を記録することで、再カット処理を行い、
前記取消再カットメイン処理部は、
当該取消再カットメイン処理を開始する際に、前記成立処理、前記未成立処理、前記取消処理又は前記再カット処理された各日付について、前記成立処理又は前記未成立処理の対象勘定日を先頭勘定日として、当該先頭勘定日及び当該先頭勘定日より未来で残高を有する全ての先日付を対象として、前記残高明細情報に記録された残高と前記貸越極度額とを加算し、当該加算後の額を各日付毎の出金可能額とする日付チェックテーブルを生成する日付チェックテーブル生成サブコントローラーと、
前記日付チェックテーブルが生成された後で、後続する他のサブコントローラーによる処理が開始されていない際に、前記残不足明細情報に格納された出金要求のうち、前記勘定日を先日付、前記結果が成立及び前記優先順位が第１群である出金要求を前倒判定用の取消対象として特定する先日付第１群取消サブコントローラーと、
前記先日付第１群取消サブコントローラーによる前倒判定用の取消対象がない際に、前記取引明細情報に格納された出金要求のうち、前記日付チェックテーブルで前記出金可能額がマイナスとなっている先日付を勘定日、前記結果が成立及び前記優先順位が最も低い出金要求を取消対象として特定するマイナス時取消サブコントローラーと、
前記先日付第１群サブコントローラ及び前記マイナス時取消サブコントローラーによる取消対象がない際に、前記先頭勘定日から未来の日付への順序で、各先日付毎に、前記残不足明細情報に格納された出金要求のうち、前記勘定日を先日付、前記結果が未成立及び前記優先順位が第１群、当該取引金額が前記出金可能額若しくは所定の修正出金可能額以下で決済可能及び前記優先順位が最も高い出金要求を再カット対象として特定する修正再カットサブコントローラーと、
前記修正再カットサブコントローラーにより特定される前記再カット対象がない際に、前記先頭勘定日から未来の日付への順序で、前記残不足明細情報に格納された出金要求のうち、前記結果が未成立、当該取引金額が前記出金可能額以下で決済可能及び前記優先順位が最も高い出金要求を再カット対象と判定する再カットサブコントローラーとを備え、
前記修正再カットサブコントローラーが、
前記先頭勘定日から未来の日付への順序で、各先日付毎に、前記残不足明細情報に格納された出金要求のうち優先順位が第１群の出金要求を全て読み出して、最も優先順位の高い出金要求を高優先業務の出金要求として判定し、
前記高優先業務の出金要求の取引金額が前記出金可能額以下で決済可能な際には、当該高優先業務の出金要求を再カット対象と特定し、
一方、当該取引金額が前記出金可能額より大きく決済不能な際には、当該勘定日に前記結果が成立の出金要求のうち当該高優先業務の出金要求の優先順位よりも優先順位の低い全ての出金要求の取引金額を当該対象勘定日の出金可能額に加算した修正出金可能額を算出し、
当該高優先業務の出金要求の取引金額が当該修正出金可能額以下で決済可能な際には当該高優先業務の出金要求を再カット対象と特定し、
当該高優先業務の出金要求の取引金額が前記出金可能額又は前記修正出金可能額より大きく決済不能な際には、次に優先順位の高い出金要求を前記高優先業務の出金要求として判定し、
前記日付チェックテーブルの全日付について、前記出金可能額又は前記修正出金可能額で決済可能な出金要求が前記残不足明細に格納されていない際には、当該再カット対象の特定なしとすることを特徴とする先日付完結処理システム。
【請求項１８】
前記演算手段は、
前記成立処理又は前記未成立処理である口座処理を、一つのトランザクションとして実行し、当該口座処理の終了後に、前記取消再カットメイン処理を他の派生トランザクションとして実行し、この実行後に、
前記取消処理又は前記再カット処理を、他の派生トランザクションとして実行し、この実行後に、
前記取消再カットメイン処理を、他の派生トランザクションとして実行し、
前記取消再カットメイン処理と、前記取消処理若しくは再カット処理との前記派生トランザクションの実行の起動に際して、当該取消再カットメイン処理の進行状況を示す派生管理フラグを前記他の派生トランザクションに渡すことで、前記再カットの特定対象がなくなるまで、前記取消再カットメイン処理と、前記取消処理若しくは前記再カット処理とを繰り返すスパイラル制御を行うことを特徴とする請求項１７記載の先日付完結処理システム。
【請求項１９】
前記派生管理フラグが、前記取消再カットメイン処理が起動され先日付の処理中であるか否かを示す派生再カット中ビットと、前記各サブコントローラーでの処理の繰り返し中であるか否かを示す情報フラグとを有し、
原始口座処理要求の口座処理によって起動される取消再カット処理の初期値は、派生再カット中ビットがＯＦＦ、情報フラグなしであり、
前記先日付第１群取消サブコントローラーは、
前記日付チェックテーブルが生成された後で、「派生再カット中ビットがＯＮで情報フラグが１でない」という条件を満たさない場合に、すなわち、原始口座処理要求の処理後の最初の取消再カットメイン処理であるか若しくは一度以上当該先日付第１群取消サブコントローラーによる前倒判定用の取消対象が特定された後で、かつ、後続する他のサブコントローラーによる処理が行われていない場合に当該前倒判定用の取消対象の判定処理を開始して、当該前倒判定用の取消対象を特定した際には、派生再カット中ビットをＯＮ、情報フラグを１にセットし、当該出金要求の派生トランザクションによる取消処理を依頼し、
前記マイナス時取消サブコントローラーが、
前記日付チェックテーブルを参照して出金可能額がマイナスとなっている勘定日がある際に、当該取消対象特定処理を開始して、当該取消対象を特定した際には、前記派生再カット中ビットをＯＮ、情報フラグを２にセットし、当該出金要求の派生トランザクションによる取消処理を依頼し、
前記修正再カットサブコントローラーが、
前記先日付第１群取消サブコントローラー及びマイナス時取消サブコントローラーにて取消対象が特定されない場合で、
「派生再カット中ビットがＯＮで情報フラグが４」という条件を満たさない場合で、すなわち、再カットサブコントローラーによる再カット対象特定処理が行われていない場合で、かつ、
「派生再カット中ビットがＯＮで情報フラグがＡで、前記日付チェックテーブルの全日付の判定完了」という条件を満たさない場合に、すなわち、当該修正再カットサブコントローラーによる再カット対象の特定処理が完了していない場合に、
再カット対象の特定処理を開始して、再カット対象がある際には、派生再カット中ビットをＯＮ、情報フラグをＡにセットして、当該出金要求の前記派生トランザクションでの再カット処理を依頼し、
前記再カットサブコントローラーが、前記修正再カットサブコントローラーにて再カット対象が特定されない場合で、かつ、
「前記派生再カット中ビットがＯＮ、情報フラグが４、かつ、日付チェックテーブルの全日付の判定完了」という条件を満たさない場合に、すなわち、当該再カットサブコントローラーによる再カット対象の特定処理が完了していない場合に、
再カット対象の特定処理を開始して、再カット対象がある際には、派生再カット中ビットをＯＮ、情報フラグを４にセットして、当該出金要求の前記派生トランザクションでの再カット処理を依頼し、
一方、「前記派生再カット中ビットがＯＮ、情報フラグが４、かつ、日付チェックテーブルの全日付の判定完了」という条件を満たす場合に、すなわち、日付チェックテーブルの全日付に再カット対象がない際には、当該取消再カットメイン処理による全ての処理を終了することを特徴とする請求項１８記載の先日付完結処理システム。
【請求項２０】
各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、取引金額とを有する口座処理要求を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備え、
前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、
当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有し、当該優先順位は、再カット期限が２日以上で優先順位の高い第１群の優先順位と、第１群の優先順位よりも優先順位が低く再カット期限が１日である第２群の優先順位とのいずれかであり、
前記ファイルが前記口座情報として、
前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、
前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報と、
当該口座への自動融資の貸越極度額と、
前記出金要求の成立又は未成立を格納する結果と、
前記結果に一旦未成立が記録された出金要求の対象勘定日、取引種類、優先順位、前記結果及び取引金額を、当該出金要求毎に格納する残不足明細情報とを備え、
前記演算手段は、口座処理部と、取消処理部と、再カット処理部と、取消再カットメイン処理部とを備え、
前記口座処理部は、
前記出金要求を出金処理する際に、前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定し、
当該特定した残高と前記取引金額とを比較して、当該取引金額が当該残高以下で決済可能な際には、
前記特定された対象勘定日の残高から前記取引金額を減算し、当該減算後の残高で前記残高明細情報を更新し、前記取引明細情報に当該出金要求を記録し、当該取引金額を前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して減算することで先日付の残高を更新し、前記結果に成立を記録することで、成立処理を行い、
一方、当該取引金額が当該残高より大きく決済不能な場合には、
前記残不足明細情報に当該出金要求を記録し、前記結果に未成立を記録することで、未成立処理を行い、
前記取消処理部は、
前記取消再カットメイン処理部によって前記取引明細情報に格納された出金要求が取消対象として特定された際には、
当該取消対象の出金要求の取引金額を当該対象勘定日の残高に加算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記残不足明細情報に記録し、前記結果に未成立を記録することで、取消処理を行い、
前記再カット処理部は、
前記取消再カットメイン処理部によって前記残不足明細情報に格納された出金要求が再カット対象として特定された際には、
当該再カット対象の出金要求の取引金額を当該対象勘定日の残高から減算して、当該対象勘定日及び当該対象勘定日より未来で先日付の前記残高明細情報を更新し、当該出金要求を前記取引明細情報に記録し、前記結果に成立を記録することで、再カット処理を行う
先日付完結処理システムの前記演算手段を使用して前記取消再カットメイン処理を行うための取消再カットメイン処理用プログラムであって、
このプログラムは、前記演算手段を動作させることで、当該演算手段に各サブコントローラーを構築する指令として、
日付チェックテーブル生成サブコントローラー用指令と、
先日付第１群取消サブコントローラー用指令と、
マイナス時取消サブコントローラー用指令と、
修正再カットサブコントローラー用指令と、
再カットサブコントローラー用指令とを備え、
前記日付チェックテーブル生成サブコントローラー用指令は、
当該取消再カットメイン処理を開始する際に、前記成立処理、前記未成立処理、前記取消処理又は前記再カット処理された各日付について、前記成立処理又は前記未成立処理の対象勘定日を先頭勘定日として、当該先頭勘定日及び当該先頭勘定日より未来で残高を有する全ての先日付を対象として、前記残高明細情報に記録された残高と前記貸越極度額とを加算させ、当該加算後の額を各日付毎の出金可能額とさせる指令を備え、
前記先日付第１群取消サブコントローラー用指令は、
前記日付チェックテーブルが生成された後で、後続する他のサブコントローラーによる処理が開始されていない際に、前記残不足明細情報に格納された出金要求のうち、前記勘定日を先日付、前記結果が成立及び前記優先順位が第１群である出金要求を前倒判定用の取消対象として特定させる指令を備え、
前記マイナス時取消サブコントローラー用指令は、
前記先日付第１群取消サブコントローラーによる前倒判定用の取消対象がない際に、前記取引明細情報に格納された出金要求のうち、前記日付チェックテーブルで前記出金可能額がマイナスとなっている先日付を勘定日、前記結果が成立及び前記優先順位が最も低い出金要求を取消対象として特定させる指令を備え、
前記修正再カットサブコントローラー用指令は、
前記先日付第１群サブコントローラ及び前記マイナス時取消サブコントローラーによる取消対象がない際に、前記先頭勘定日から未来の日付への順序で、各先日付毎に、前記残不足明細情報に格納された出金要求のうち、前記勘定日を先日付、前記結果が未成立及び前記優先順位が第１群、当該取引金額が前記出金可能額若しくは所定の修正出金可能額以下で決済可能及び前記優先順位が最も高い出金要求を再カット対象として特定させる指令を備え、
前記再カットサブコントローラー用指令は、
前記修正再カットサブコントローラーにより特定される前記再カット対象がない際に、前記先頭勘定日から未来の日付への順序で、前記残不足明細情報に格納された出金要求のうち、前記結果が未成立、当該取引金額が前記出金可能額以下で決済可能及び前記優先順位が最も高い出金要求を再カット対象と判定させる指令を備え、
前記修正再カットサブコントローラー用指令は、さらに、
前記先頭勘定日から未来の日付への順序で、各先日付毎に、前記残不足明細情報に格納された出金要求のうち優先順位が第１群の出金要求を全て読み出させて、最も優先順位の高い出金要求を高優先業務の出金要求として判定させる指令と、
前記高優先業務の出金要求の取引金額が前記出金可能額以下で決済可能な際には、当該高優先業務の出金要求を再カット対象と特定させる指令と、
一方、当該取引金額が前記出金可能額より大きく決済不能な際には、当該勘定日に前記結果が成立の出金要求のうち当該高優先業務の出金要求の優先順位よりも優先順位の低い全ての出金要求の取引金額を当該対象勘定日の出金可能額に加算した修正出金可能額を算出させる指令と、
当該高優先業務の出金要求の取引金額が当該修正出金可能額以下で決済可能な際には当該高優先業務の出金要求を再カット対象と特定させる指令と、
当該高優先業務の出金要求の取引金額が前記出金可能額又は前記修正出金可能額より大きく決済不能な際には、次に優先順位の高い出金要求を前記高優先業務の出金要求として判定させる指令と、
前記日付チェックテーブルの全日付について、前記出金可能額又は前記修正出金可能額で決済可能な出金要求が前記残不足明細に格納されていない際には、当該再カット対象の特定なしとさせる指令とを備えたことを特徴とする取消再カットメイン処理用プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、先日付完結処理システム及び方法に係り、特に、金融機関での預金口座等を用いて振替等の決済を行うシステム及び方法に関し、さらに、預金口座の残高等の共通資源に対して複数の処理が競合する場合の最適化処理に関する。
【０００２】
【従来の技術】
従来より、公共料金の口座振替処理は、自動現金預入支払機（ＡＴＭ）や自動支払機（ＣＤ）及びオンラインシステムが停止し、口座残高が確定した後に、バッチ処理で実行されていた。すなわち、電気、ガス、水道等の公共料金を指定振替日（勘定日）の前夜から翌朝までの時間を利用して、口座からの出金処理（引落処理）を行っていた。そして、残高が不足する場合に、口座処理の種類に応じた優先順位の高い口座処理を他の口座処理よりも優先して決済するには、例えば、税金の支払を公共料金の支払に優先させるには、税金の支払に関するバッチ処理を先に処理し、その後に公共料金の支払を処理するようにしていた。
【０００３】
夜間バッチ処理による従来例では、決済を行う勘定日の前日夜間に処理を完了するため、勘定日の前夜に残高が不足して決済不能となった場合には、勘定日当日に残高が充足し決済可能となっても振替等の口座処理を行うことができなかった。これを改善するため、勘定日の前日に残不足で決済不能であった場合に、勘定日当日の夜間に再度口座処理をバッチ処理にて実行していた。これにより、当日の入金に応じた決済を可能としていた。
【０００４】
特開昭５９−７７５７３号公報には、残高が不足していた口座に対して、勘定日当日に入金があった場合には、決済不能であった口座処理を即時に処理する手法が開示されている。すなわち、この公報には、システム運用効率を向上させることを目的として、バッチ処理を用いずに、入金がありかつ、残不足であった口座に対してのみ再振替を試みる手法が開示されている。また、特開平７−９３４３９号公報にもほぼ同様の手法が開示されている。
【０００５】
また、近年の金融機関では、ＡＴＭ等を用いた口座からの出金（支払）や入金等を２４時間稼働させることが課題となっている。上記バッチ処理による口座振替等の決済は、ＡＴＭ等による入出金を停止し、残高を静止状態とさせてからバッチ処理を行うため、入出金を２４時間稼働とすると、振替を日付変更と同時に行わなければならなくなる。
【０００６】
この２４時間稼働時の振替等の取り扱いについて、例えば、特開２０００−１９４７８３号公報には、振替等の口座処理を事前に処理しておき、勘定日当日の午前０時に補正する手法が開示されている。すなわち、この公報には、勘定日前日の残高に基づいて口座振替後の残高を算出しておき、勘定日当日の午前０時（実施例としては、日付変更処理後にその口座に最初にアクセスされたとき）に補正（確定処理）をする旨開示されている。
【０００７】
また、特開２０００−２９３６０５号公報には、勘定日の前日等の口座残高に不足があり、事前処理での決済が不能であった場合には、再度口座振替を実施する自動回収データを作成しておき、この自動回収データに基づいて再振替処理を勘定日以後に実行する手法が開示されている。
【０００８】
このように、上記従来例では、振替等の口座処理を事前に準備しておくことで、２４時間連続稼働を図る手法が開示されている。
【０００９】
【発明が解決しようとする課題】
しかしながら、上記従来例では、振替等の口座処理を優先順位に基づいて実行することができない、という不都合があった。優先順位の高い口座処理から先に事前処理又はバッチ処理を実行すると、優先順位に従った口座処理となるが、振替依頼の持ち込み等の口座処理の準備が優先順位の順序でなされるとは限らないため、一貫した処理を行うことができない。さらに、残高が不足した場合に優先順位を反映すべきであるところ、上記従来例では、事前処理で決済した口座処理と、その後の入出金額に応じて決済すべき口座処理とを優先順位に従って調整することが難しい。
【００１０】
特開平１１−１３４４１７号公報には、我が国での銀行勘定系の非稼働時に当該口座残高に基づいて海外にて出金する場合に、当該口座での振替よりも海外での出金を優先する旨が開示されている。この従来例では、国内での口座を静止状態としつつ、海外での出金を優先するものであり、２４時間稼働に対応しつつ口座処理の種類に応じて優先順位を反映させるものではない。
【００１１】
そして、バッチ処理による従来例では、口座残高が確定した前夜から勘定日当日のオンライン稼働時間前までの限られた時間内に、口座振替等の全ての口座処理を行わなければならず、口座処理のデータ量の増加やオンライン稼働時間の延長に対応するためにはコンピュータ（ＣＰＵ）などの機器を増強しなければならない、という不都合があった。
【００１２】
さらに、事前処理をしておき、日付変更と同時に振替後の残高へと確定処理を行う例では、日付変更時の負荷が巨大となるか、又は各口座への最初のアクセス時に確定処理分応答が遅れてしまうため、やはり、応答時間を確保し負荷を軽減するためにコンピュータ（ＣＰＵ）などの機器を増強しなければならない、という不都合があった。
【００１３】
【発明の目的】
本発明は、係る従来例の有する不都合を改善し、特に、本発明は、複数の処理要求によって共通資源に不足が生じる際に、処理順序によらず、処理要求の他の処理要求に対する優先順位に従って、口座の残高等の共通資源の配分を自動的に最適化することのできる先日付完結処理又は資源利用最適化を行う物及び方法を提供することを、その目的とする。
本発明では、さらに、口座残高を共通資源する情報処理にあっては、口座残高に不足があった場合には口座振替等の種別に応じた優先順位に基づいて優先順位の高い口座処理の決済を優先することを、その目的とする。
本発明では、また、ＡＴＭ等の端末を用いた入出金等のオンライン処理と並列して行う情報処理にあっては、口座振替や融資返済等の種々の取引の処理と、優先順位による決済の最適化処理との並列処理を安定して実行することを、その目的とする。
【００１４】
【課題を解決するための手段】
本発明では、その前提として、先日付完結処理を用いる。すなわち、本発明では、先日付の口座処理をその勘定日を迎える前に実行し、勘定日別の口座情報（例えば、残高）を保有する。そして、先日付が当日となった瞬間に参照すべき口座情報を変化させる。例えば、２日の時点で３日を勘定日とする口座処理を２日の最終残高に基づいて計算しておき、２日の残高と３日の残高とを２日の時点で個別に保有する（勘定日別の口座情報）。２日当日では、口座名義人が先日付である３日の残高を直接利用することはできない。そして、２日から３日になった瞬間に、すなわち、日付変更処理が完了した時点で、予め計算しておいた３日の残高を用いる。このように、２日の時点で３日の口座処理を計算し、３日の残高を算出しておくことで、２日の時点で３日の口座処理は完結している。日付変更後の確定処理等は不要である。
【００１５】
本発明では、先日付での口座情報を先日付の勘定日毎に生成しておくことで、事前処理によって先日付の口座処理を完結させる。そして、先日付の日時に至るまでに口座残高の異動や利率や契約内容の変更があった場合には、その変更を先日付での残高に反映させる。すなわち、本発明では、現在の口座情報に基づいて、その後に口座処理が無い場合の先日付での残高を生成しておき、その先日付の残高に基づいて先日付の口座処理を実行しておくことで、従来バッチ処理で行っていた口座処理をオンライン処理中に並行して処理する。これは、現在処理する口座処理を、先日付の日時が到来するまでの最終の口座処理と仮定し、当該先日付の残高等を予め計算する処理である。その後、先日付の勘定日が至る前に別の口座処理があった場合には、再度その口座処理が最終の口座処理であると仮定し、先日付の残高等を算出する。
【００１６】
先日付完結処理の原理は、現時点での情報に基づいて、その後の変化が無いとした場合の、将来の口座情報を生成しておく点にある。その後に口座処理が無い場合や、自動定期化サービスにて普通預金口座から定期預金へ入金する契約に変更が無い場合や、小切手の資金化について不渡の連絡が無い場合を想定して、その前提での先日付の口座情報を予め算出しておく。先日付の処理であるため、口座名義人がその先日付の残高を直接に用いて取引をすることができず、従って、先日付処理については取消を行うことができる。
【００１７】
決済は、取消ができない資金移動等が行われたときに完了する。この決済の完了性（ファイナリティ）は、取消不能な状態の確定に依存する。先日付完結処理では、先日付にて一旦成立した口座処理は、未だ決済完了性を有さない。その後に他の口座処理がなければ、勘定日当日へと日付変更した時に決済は完了する。このように、先日付完結処理は、先日付の口座処理を実行し、先日付の勘定日での残高を算出したことで、その後に当該勘定日での口座処理がないとした前提で、完結している。そして、当該勘定日にて再度口座処理が生じたのであれば、先日付での口座処理（取引）はファイナリティを有しないため、取消や再実行（再カット）を行うことができる。必要な取消や再カットが完了した時点で、その口座に対する口座処理は完結する。
【００１８】
このように、先日付完結処理では、特に先日付の処理について、口座処理の再構築や入れ替え等の最適化が可能である。別の表現をすると、ある順序に従ってデータを並べ替えるように、口座処理（トランザクション）を並べ替えることができる。これを決済の分野で説明すると、すべての決済を行うには残高が不足してしまう場合に、予め定められた優先すべき決済を優先して処理することができることとなる。
【００１９】
そして、先日付完結処理では、口座に異動がある毎に口座処理を行い、その口座処理は完結するため、先日付の日時を迎える前後、すなわち、日付変更時にはなんら処理を行う必要がない。このため、オンライン処理の終了後にバッチ処理にて口座処理を行う必要がなくなり、また、バッチ処理を所定の時間内に完了させるためにＣＰＵを増強する必要がない。
【００２０】
現在の状態からの変化には、続く口座処理が無いという前提のみならず、先日付で契約する定期預金や口座に元加する利息の利率が現在に判明していて、その後に変更がないという前提（変更が有った場合には、再度口座処理を実行する）などが含まれる。このため、先日付完結処理を行うことのできる対象は数多い。通常の普通預金口座や当座預金口座に対する種々の口座処理や、ある条件に応じたオプションの行使や、先物取引を口座で決済する場合に、期日での額が定まっている場合の差額の算出及び決済や、住宅ローンの特別な増額返済のための普通預金口座からの出金の予約などについても、先日付完結処理としてオンライン処理中に実行することができる。
【００２１】
さて、先日付完結処理では、先日付での口座残高を算出した後に、現在の口座残高からＡＴＭ等で出金された場合には、先日付の口座残高を当該出金額分減額する。この減額により、先日付で成立していた口座処理が決済不能となる場合がある。本発明の第１群（第１実施形態、請求項１、２又は３に対応）では、先日付の口座処理が決済不能となった場合の取消に関して、優先順位を反映させる。
【００２２】
一方、先日付の口座残高が不足で先日付での口座処理が決済不能であった場合に、現在の口座残高にＡＴＭ等で入金された場合には、当該未成立の口座処理の再カットを試みる。本発明の第２群（第２実施形態、請求項４、５、６及又は７に対応）では、この再カットに関して、優先順位を反映させる。
【００２３】
本発明の第３群（第３実施形態及び第４実施形態）は、競合するトランザクションの並べ替え（入れ替え）による最適化について開示する。第３実施形態と第４実施形態では動作原理は共通している。未成立の優先順位のもとの、成立した優先順位の低いものとを、入れ替えるのである。第３実施形態（請求項８から１３に対応）では、口座処理に限定せず、共通資源への予約など、競合するトランザクションの並べ替え（入れ替え）による最適化について開示する。第４実施形態（請求項１４から１６と、実施例に対応する請求項１７から２０に対応）では、先日付にて取消と再カットとを組み合わせることで、口座処理の入れ替えによる最適化を行う。
【００２４】
各実施形態の共通部分を概説すると、各実施形態では、先日付の残高（資源）を現在の残高（資源）とは別に有する。そして、先日付の処理を事前に完結させる。このために、次の構成を採っている。すなわち、各実施形態のシステムは、各口座に対する各種入出金等の口座処理の取引種類と、当該口座処理の取引日となる対象勘定日と、入金額又は出金額である取引金額とを有する口座処理要求（第３実施形態では、業務処理要求）を演算する演算手段と、この演算手段によって演算された口座処理の処理結果を口座情報として格納するファイルとを備えている。
そして、前記口座処理要求は、当該口座処理要求の対象となる口座への振込若しくは自動現金預入支払機等による入金要求又は口座振替若しくは自動現金預入支払機等による出金要求であり、当該出金要求は、当該出金要求の他の出金要求に対する優先順位を有する。
さらに、前記ファイルが前記口座情報として、前記演算された口座処理要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該口座処理要求毎に格納する取引明細情報と、前記口座毎に口座処理のあった勘定日の残高を勘定日毎に格納する残高明細情報（第３実施形態では、資源明細情報）と、前記出金要求の成立又は未成立を格納する結果とを備えている。
第２、第３及び第４実施形態では、前記ファイルは、さらに、当該結果が未成立となった出金要求の対象勘定日、取引種類、優先順位及び取引金額を、当該口座処理要求の取引日である勘定日別で当該出金要求毎に格納する残不足明細情報（第３実施形態では、未成立明細情報）を備えている。
そして、前記演算手段は、口座処理部と、取消処理部、再カット処理部、取消再カットメイン処理部等を備える。
このうち、口座処理部の処理内容は、各実施形態でほぼ共通している。すなわち、前記口座処理部は、前記残高明細情報に対象勘定日と同日の残高が記録されている場合には当該残高を対象勘定日の残高として特定し、一方、対象勘定日と同日の残高が記録されていない場合には当該対象勘定日よりも過去で直近の残高を当該対象勘定日の残高として特定する。
そして、口座処理部は、前記特定された対象勘定日の残高と前記取引金額とを加減算する。
口座処理部は、続いて、当該口座処理要求の勘定日、取引種類、取引金額及び優先順位を前記取引明細情報に記録する。さらに、口座処理部は、当該加減算した処理後の残高を、前記対象勘定日の残高として前記残高明細情報に記録し又は更新する。記録は新たな書き込みであり、更新は上書きである。そして、口座処理部は、当該取引金額を、前記残高明細情報に記録された先日付の勘定日のうち、当該対象勘定日より未来である先日付の残高に対して加減算することで、先日付の残高を更新する。この先日付の残高の更新により、勘定日別の残高すべてを整合させる。
【００２５】
第１群の発明では、前記取消処理部が、前記優先順位に基づく取消処理を行う。この取消処理では、まず、前記先日付の残高が記録又は更新された後に、当該先日付の残高がマイナスとなっている際には、当該残高がマイナスとなっている勘定日に前記結果が成立の出金要求を前記取引明細情報から読み出して、当該出金要求の前記優先順位が最も低い出金要求を取消対象として特定する（マイナス時取消制御機能２２、取消対象特定機能２１）。
取消処理では、続いて、前記取引明細情報に格納された出金要求が取消対象として特定された際には、当該出金要求の取引金額と当該勘定日の残高とを加算し、当該加算した処理後の残高を当該勘定日の残高として前記残高明細情報に更新し、当該特定した出金要求の前記結果に未成立を記録する。
これにより上記課題を解決しようとするものである。
第１群の発明では、先日付の口座処理でファイナリティを有さない口座処理について、取消が必要な場合に、口座処理による取引金額に関わらず、優先順位の低い順に取り消す。これにより、優先順位の高い取引を実行することができる。
【００２６】
第２群の発明では、前記再カット処理部が、前記優先順位に基づく再カット処理を行う。この再カット処理では、まず、前記先日付の残高が記録又は更新された後、当該先日付の残高がプラスの際には、当該残高がプラスの勘定日に前記結果が未成立の出金要求を前記残不足明細情報から読み出して、当該出金要求の取引金額と当該勘定日の残高とを比較することで、当該決済可能な出金要求のうち最も前記優先順位の高い出金要求を再カット対象として特定する（プラス時再カット制御機能２８、再カット対象特定機能２６）。
再カット処理部は、さらに、前記残不足明細情報に格納された出金要求が再カット対象に特定された際には、当該特定された出金要求の取引金額を前記残高から減算して、当該減算した処理後の残高を前記残高明細情報に更新し、当該出金要求を前記取引明細情報に記録し、前記結果に成立を記録する。
これにより前述した課題を解決しようとするものである。
【００２７】
第２群の発明では、口座に異動があったときに、優先順位の高い順に決済可能性を判定し、決済可能である場合には、優先順位の低い口座処理の組み合わせに関わらず、優先順位の高い口座処理を再カットする。これにより、すべての決済を行うには残高が不足する場合に、優先順位の高い決済を優先して処理する。
【００２８】
「口座処理」は、例えば、金融機関の個人向けの普通口座を例とすると、給与振込等の口座への振込（入金）や、公共料金の自動引落のような口座からの振替（出金）や、融資の返済や家賃の引落などの自動引落（出金）などである。また、法人等を例とすると、「口座処理」は、各種支払の振込予約や、給与支払のための引落や、口座引落で集金した家賃の入金などである。これら種々の内容の口座処理を扱うようにしても良いし、例えば振込などは別の演算手段にて扱い、公共料金の振替のみを本発明による先日付完結処理システムで扱うようにしても良い。
また、証券取引用の口座を例とすると、「口座処理」は、株取引に要した資金の決済や、金融商品の自動的な購入などが該当する。このように、「口座処理」には、まず、商取引の決済手法の種々の態様が含まれる。この決済の対象は単一の通貨のみならず、例えば先日付での為替レートを予め取引者間で定めておくことができれば、外為取引に応用することもできる。さらに、決済の対象は、通貨を扱う口座のみならず、例えば商品やサービスの販売時に付加するポイント値（マイレージポイント）でも良い。
さらに「口座処理」には、その口座の属性を設定又は変更する処理を含めるようにしても良い。例えば、定期の自動更新に応じた自動融資極度額の変更や、長期ローンでの変動金利と固定金利とのスワップの予約等を含めるようにしても良い。また、ＡＴＭやＣＤや金融機関の店舗の窓口端末による現金の入金や出金は即時の口座処理であり、演算日と勘定日が一致する。
【００２９】
上記ファイルには、預金・融資等の取引履歴や、現在の残高や、口座に定義された自動融資可能額である貸越極度額などの口座に関する情報が格納されている。残高は、口座処理要求が決済可能であるか又は決済不能であるかを判定するための数値であり、例えば、定期預金等を担保とする自動融資が無い場合には実際の残高で、定期預金等を担保とする自動融資が付随する場合には、貸越極度額と実際の残高とを加算した額を残高（出金可能額）としても良い。定期預金等を担保とする自動融資を行う場合には、口座情報として担保明細等の属性情報を持つようにすると良い。
【００３０】
演算手段の口座処理部は、例えば、口座処理要求として入金要求があった場合には、現在の残高を読み出して、取引金額（入金額）を加算し、残高明細情報を更新する。口座処理部は、出金要求があった場合には、現在の残高から取引金額（出金額）を減算する。
【００３１】
本発明では、口座処理部が、演算を行う演算日に対して同日又は先日付となる勘定日の口座処理要求を当該勘定日の残高（出金可能額）に基づいて処理する。そして、ファイルには、口座処理部の処理結果が当該口座処理の勘定日での残高等として格納される。
【００３２】
「勘定日」は、取引を行う日である。現状の金融機関で取り扱う取引の実行時期の指定は「日」であるため、日を単位としている。「勘定日」は、複数の口座処理が競合する単位である。第１の口座処理の勘定日が１日のみで、第２の口座処理の勘定日が２日のみの場合、この２つの口座処理は競合しない。１日の残高に基づいて第１の口座処理要求が処理され、２日の残高に基づいて第２の口座処理要求が処理される。特定日の残高から引落を行うという契約によると、この２つの口座処理要求間には優先順位は適用されない。２日に第３の口座処理要求も存在する場合、第２の口座処理要求と第３の口座処理要求とが競合する。第２の口座処理要求の優先順位が第３の口座処理要求の優先順位よりも高ければ、第２の口座処理要求を優先して処理する。
また、例えば、第２の口座処理要求の出金額が２０，０００で、第３の口座処理要求の出金額が１０，０００で、２日の口座残高が１５，０００である場合、優先順位の高い第２の口座処理要求は決済できない。従って、決済できる第３の口座処理要求を決済する。その後、先日付での２日の残高が６，０００増加した場合、第３の口座処理要求を取り消せば、第２の口座処理要求の決済が可能となる。この例では、第２の口座処理要求を再カット（修正再カット）して、第３の口座処理要求を取り消す。このような再カットと取消との関係は、第３実施形態及び第４実施形態にて開示される。
【００３３】
このように、口座処理要求が競合する期間の単位が「勘定日」である。そして、より具体的には、「勘定日」は、例えば、口座処理が振替であれば振替日である。融資の返済であれば「約定返済日」が勘定日であると考える。給与振込であれば振込日が勘定日に相当する。本明細書では、これら種々の口座処理要求に指定される取引実行日を「勘定日」と呼ぶ。「演算日」は演算を行う「当日」であり、「現在」ともいう。
【００３４】
本発明では、演算日時に対して先日付となる勘定日での口座処理要求を、演算日時の段階で処理する。その処理結果を、演算日時に対して先日付となる勘定日での口座情報として格納する。従って、口座情報は、口座処理要求がなされた勘定日別に生成され、管理される。例えば、演算日時の残高と、先日付での処理を行った将来の残高との情報がファイルに格納される。この将来の残高は、今までに行った口座処理の後、口座処理がないままその勘定日が到来しときの、その勘定日の残高である。このため、日付が変更したときに、その日付変更の前後でなんら処理を行うことなく、当該勘定日に行うべき口座処理を完了した状態で、新たに迎えた日付での残高が確定する。
【００３５】
例えば、先日付である勘定日が、演算日時の翌営業日であったとする。そして、翌営業日を勘定日とする振替等の口座処理要求をその翌営業日（振替日，勘定日）の前日に演算する。演算した結果、現在の残高と、翌営業日の残高とが個別にファイルに格納される。その後、当該口座に対して残高の変動をもたらす処理が行われなかったとすると、本日から明日へ日付変更した段階で、引落（出金）が確定し、新たな残高に基づいた処理が可能となる。従って、午前０：００を過ぎた瞬間に、口座振替後の新たな残高に基づいた処理を行うことができる。出金の確定は、その出金が決済完了性を有するということである。
【００３６】
第３群の発明では、業務処理要求（または、口座処理要求）の実行可否を定める資源の状態を一定期間別に先日付で記録した資源状態ファイルと、この資源状態ファイルに記録された情報に基づいて各業務処理要求を処理する演算手段とを備えている。そして、資源状態ファイルは、資源の状態を過去から現在並びに将来となる先日付まで競合単位毎に、例えば、日単位等の一定期間毎（勘定日毎）に格納する資源明細セグメント（または、残高明細セグメント）と、過去又は先日付で成立した業務処理要求を当該業務処理の優先順位付きで成立順に格納する取引明細セグメントと、先日付にて資源不足で未成立の業務処理要求を当該優先順位付きで格納する未成立明細セグメント（例えば、残不足明細セグメント）とを備えている。
そして、前記演算手段は、業務処理部と、取消処理部と、再実行処理部と、取消再実行メイン処理部とを備えている。
前記業務処理部は、口座処理部に対応する構成である。この業務処理部は、前記対象競合単位が先日付の業務処理要求を業務処理する際に、当該対象競合単位の前記資源を前記資源明細情報から読み出し、当該業務処理要求の要求する資源が当該対象競合単位の資源で充足する場合には、当該業務処理要求を成立させて前記取引明細情報に記録し、前記資源明細情報を更新し、前記結果に成立を記録することで、当該業務処理要求の成立処理を行う。
一方、前記業務処理要求の要求する資源が当該対象競合単位の資源では不足する場合には、当該業務処理要求を未成立として前記未成立明細情報に記録し、前記結果に未成立を記録することで、当該業務処理要求の未成立処理を行う。
また、前記取消処理部は、前記取消再実行メイン処理部によって前記取引明細情報に格納された業務処理要求が取消対象として特定された際には、当該取消対象の業務処理要求の要求する資源を当該競合単位に利用できる資源として前記資源明細情報を更新し、当該業務処理要求を前記未成立明細情報に記録し、前記結果に未成立を記録することで、取消処理を行う。
さらに、前記再実行処理部は、前記取消再実行メイン処理部によって前記未成立明細情報に格納された業務処理要求が再実行対象として特定された際には、当該再実行対象の業務処理要求の要求する資源を当該競合単位の資源に割り当てて前記資源明細情報を更新し、当該業務処理要求を前記取引明細情報に記録し、前記結果に成立を記録することで、再実行処理を行う。
【００３７】
この第３群の発明では、業務処理部は、先日付にて成立した業務処理を取引明細情報（セグメント）に記録し、未成立の場合には、未成立明細情報（セグメント）に記録する。
【００３８】
また、第３及び第４実施形態では、優先順位の高い未成立の業務処理よりも優先順位の低い成立済みの業務処理がある場合、優先順位の低い成立済みの業務処理を取り消して、優先順位の高い業務処理を再実行することで、成立させる業務処理（トランザクション）を入れ替える修正再実行（修正再カット）処理を開示する。
すなわち、第３群の発明では、前記取消再実行メイン処理部（第４実施形態では、取消再カットメイン処理部）が、優先順位に基づいた業務処理要求（口座処理要求）の入れ替えを制御する処理を行う。すなわち、入れ替えを行うために、再実行すべき業務処理要求と、取り消すべき業務処理要求とを特定するための取消再実行メイン処理を行う。取消再実行メイン処理は、前記取消対象特定処理と、前記再実行対象特定処理とにより、取消再実行メイン処理を行う。
取消対象特定処理は、まず、前記成立処理、未成立処理、取消処理又は再実行処理の後に、前記先日付の前記競合単位（勘定日）にて前記資源（残高）に不足が生じた際には、取消対象特定処理として、当該資源不足の競合単位に前記結果が成立である業務処理要求を前記取引明細情報から読み出して、最も優先順位の低い業務処理要求を取消対象とする。これにより、取消対象特定処理を行う。
一方、再実行対象特定処理は、前記先日付の前記競合単位にて前記資源に空きがある際には、再実行対象特定処理として、まず、当該競合単位に前記結果が未成立である業務処理要求を前記未成立明細情報（残不足明細情報）から読み出して、最も優先順位が高い業務処理要求を高優先業務の業務処理要求として特定する（高優先業務特定部）。
続いて、当該競合単位で前記結果が成立である業務処理要求を前記取引明細情報から読み出して、当該結果が成立の業務処理要求のうち前記高優先業務の業務処理要求の優先順位よりも優先順位の低い業務処理要求群によって利用される資源の一覧又は総量を修正利用可能資源として算出する（修正利用可能資源算出部）。
さらに、前記高優先業務の業務処理要求の要求する資源が前記修正利用可能資源で充足する場合には、当該高優先業務の業務処理要求を再実行対象として特定する。これにより、再実行対象特定処理を行う。
【００３９】
第３群の発明のうち、請求項１７に対応する例では、出金要求の他の出金要求に対する優先順位は、再カット期限が２日以上で優先順位の高い第１群の優先順位と、第１群の優先順位よりも優先順位が低く再カット期限が１日である第２群の優先順位とのいずれかである。そして、請求項１７との対応では、ファイルが、当該口座への自動融資の貸越極度額を有し、貸越極度額と残高とを加算した額を出金可能額としている。
そして、前記取消再カットメイン処理部は、日付チェックテーブル生成サブコントローラーと、先日付第１群取消サブコントローラーと、マイナス時取消サブコントローラーと、修正再カットサブコントローラーと、再カットサブコントローラーとを備える。
【００４０】
また、第３群の発明に対応する開示である実施例では、口座処理部による口座処理を、起動業務処理と、受動業務処理とによる一つのトランザクションとしている。２つの処理を一つのトランザクションとすることを、処理の「連動」という。一つのトランザクションとは異なるトランザクションを別途実行することを、処理の「派生」という。
受動業務処理部は、共通資源である口座残高を管理する。起動業務処理部は、この受動業務処理部によって管理される口座残高を使用した決済を要求する。起動業務は、例えば、公共料金の引落や、融資の返済等を要求する。公共料金の引落の成立と、普通預金口座からの出金とは、トランザクションとして原子性を有さなければならない。すなわち、引落が成立したとする一方、普通預金口座からの出金がなされない状態は処理として不完全である。このため、起動業務と受動業務とは連動し、一つのトランザクションとして実行される。また、口座に異動が生じると、残不足明細セグメント等を参照して口座処理の取消又は再カットの要否を判定しなければならない。取消再カットメイン処理部は、この判定と、取消又は再カットの起動とを制御する。
起動業務と受動業務とは連動するが、取消再カットメインは派生トランザクションとして起動される。これにより、ＣＰＵの増強をせずにオンラインの応答性を確保することができる。例えば、未成立の口座処理要求が２００件あるとする。この２００件の残不足を解消できる金額がＡＴＭを用いて入金されたとする。取消再カットメインは、この２００件の再カットの実行を順次制御する。このとき、ＡＴＭによる入金の完了を２００件の再カット完了後とすると、ＡＴＭの入金での応答性が極度に悪化し、並行して実行される他のジョブへの悪影響も懸念される。このため、好ましい例では、ＡＴＭの入金は一つのトランザクション（起動と受動の連動）として完了させておき、このトランザクションとは異なる別の派生トランザクションとして受動業務のプログラム中から取消再カットメインを起動している。
【００４１】
第３群の発明のうち、請求項１８に対応する例では、演算手段が、前記成立処理又は前記未成立処理である口座処理を、一つのトランザクションとして実行し、当該口座処理の終了後に、前記取消再カットメイン処理を他の派生トランザクションとして実行する。そして、この実行後に、前記取消処理又は前記再カット処理を、他の派生トランザクションとして実行する。また、この実行後に、前記取消再カットメイン処理を、他の派生トランザクションとして実行する。
そして、前記取消再カットメイン処理と、前記取消処理若しくは再カット処理との前記派生トランザクションの実行の起動に際して、当該取消再カットメイン処理の進行状況を示す派生管理フラグを前記他の派生トランザクションに渡すことで、前記再カットの特定対象がなくなるまで、前記取消再カットメイン処理と、前記取消処理若しくは前記再カット処理とを繰り返すスパイラル制御を行う、という構成を採っている。これにより、上記課題を解決しようとするものである。
【００４２】
対応する実施例では、取消再カットメイン処理は、一つの口座処理要求の取消又は再カットを派生トランザクションとして起動し、一旦終了する（同期点に達する、またはコミットする）。派生トランザクションとして起動された起動業務は、受動業務に連動する。受動業務は、口座残高を更新すると、再度取消再カットメインを派生トランザクションとして起動する。取消再カットメインは、この起動された状態で取消又は再カットの要否を判定し、判定結果に従って起動業務の取消又は再カットを派生トランザクションとして起動する。このような取消再カットメインの間欠的な処理により優先順位の最適化を行う処理を、本明細書ではスパイラル処理と呼ぶ。実行の概念としては、「派生をくるくると回す」ことで最適化するものである。
【００４３】
派生トランザクションを用いたスパイラル処理により、オンラインの応答性を確保しつつ、先日付の口座処理（決済）の最適化を行うことができる。このような用途に用いられる派生トランザクションのシステム技術的な詳細については、同一出願人によってなされる別の出願を参照されたい。派生トランザクションを用いたスパイラル処理の実現には、派生トランザクションの起動時にフラグやビットを渡し、取消再カットメインでの判定にてこのフラグ等を参照することが好ましい。この点を、第３，４実施形態や、第１実施例等で詳述する。
【００４４】
各実施形態にて扱う優先順位は、種々の定め方があり得る。決済を例とすると、勘定日での決済が不能の場合に直ちに不渡管理等を行わなければならないような口座処理要求の優先順位を高く設定するようにしてもよいし、処理数が大量であるものは優先順位を低く設定しておくようにしてもよいし、再カット期限が一定期間の口座処理要求の優先順位を高く設定するようにしても良い。また、一律な優先順位ではなく、個別に設定するようにしても良いし、さらに、口座振替による決済では、顧客名義人の指定に基づいて優先順位を定めるようにしても良い。
【００４５】
なお、口座処理の種類別の優先順位が機能するのは、振替等の決済に関して口座残高に不足が生じる場合である。振替等による決済機能の提供という事務処理については、口座の状況に応じた最適な決済を提供すべきであり、これにより、出願人は、顧客の信頼と期待に応えることを図っている。
【００４６】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
【第１実施形態】
第１実施形態では、先日付完結処理システムにおいて、現在又は現在に近い将来の勘定日での口座異動によってその勘定日またはより遠い将来の勘定日にて決済不能となる場合に、決済不能となる先日付の勘定日での取引を取り消す。この際、各取引に定義された優先順位に従って、優先順位の低い取引から順に取り消すことで、優先順位の高い取引の決済を優先する。第１，第２及び第４実施形態では、勘定日当日の取引については、決済完了性を与え、口座へのアクセスの有無に関わらず、特別な事情のないかぎり取り消さない。
【００４７】
図１は、第１実施形態の構成を示すブロック図である。図１に示すように、本実施形態による先日付完結処理システムは、勘定日の取引等の口座処理要求を受信する受信手段２と、この受信手段２にて受信した口座処理要求を勘定日毎に演算する演算手段４と、この演算手段４によって演算される結果を前記勘定日毎の出金可能額等と関連した口座情報として記録するファイル６とを備えている。そして、演算手段４が、当該演算を行う演算日に対して同日又は先日付となる勘定日の口座処理要求を当該勘定日の口座情報に基づいて処理する口座処理部８と、この口座処理部８による口座処理によって先日付の勘定日での口座処理要求が決済不能となる場合には当該決済不能となる勘定日での複数の決済済みの口座処理要求のうち優先順位の低い口座処理要求を当該優先順位の低い順序にて取り消す取消処理部１０とを備えている。
【００４８】
受信手段２は、ネットワーク３を介して、ＡＴＭ１Ａや、窓口端末１Ｂと接続されている。そして、受信手段２は、公共料金等の引落データが格納された外部持込媒体や、融資や自動定期化サービス等の情報等を格納した内部各種ＤＢの登録内容などに基づいて直接又は間接に口座処理要求を受信する。また、インターネットや専用ネットワーク等を介して顧客のコンピュータから口座処理要求を受信するようにしても良い。
【００４９】
演算手段４は、１台又は複数台のコンピュータである。演算手段４が有する種々の手段や各部、各機能は、所定のプログラムを実行するコンピュータのＣＰＵによって実現できる。図１に示す例では、先日付完結処理を用いた優先順位の反映のうち、取消に関して必要な種々の機能のうち、原理的に重要な部分を抽出している。
【００５０】
口座処理部８は、当該演算を行う演算日に対して同日又は先日付となる勘定日の口座処理要求を当該勘定日の口座情報に基づいて処理する。「演算日」は実際にＣＰＵを動作させている日であり、今日現在である。今日現在が３日であるとすると、「演算日」及び「演算日に対して同日」は３日であり、「先日付」は４日以後（４日，５日，…）である。口座処理部８は、口座処理要求の勘定日にて残高が算出されていない場合には、直近の残高に基づいて当該勘定日の残高を生成する。例えば演算日が３日で、勘定日が先日付となる４日で、直近の最終取引が２日であった場合、２日の残高に基づいて４日の残高を算出し、その４日の残高に基づいて４日を勘定日とする口座処理を実行する。例えば、２日に３０，０００の残高があり、４日を勘定日として６，０００の振替（口座処理要求）と、４，０００の振替とがあったとすると、４日の残高は２０，０００となる。その後、３日当日に１６，０００の出金要求があるとする。この場合、口座処理部８は、２日の残高に基づいて３日の残高を３０，０００とし、これから１６，０００を減額して１４，０００とする。そして、先日付の４日の残高２０，０００についても、この出金要求の取引金額である１６，０００を減額して４，０００とする。
【００５１】
３日に、さらに５，０００の出金要求があるとする。この場合、３日の残高は１４，０００であるため出金可能で、３日の残高は９，０００となる。そして、４日の残高を更新する。４，０００から５，０００を減算するとマイナス１，０００となる。４日にて残高（出金可能額）がマイナスとなると、取消処理部１０は、当該４日にて成立していた口座処理要求のうち最も優先順位の低い取引を取り消す。すなわち、４日にて成立していた６，０００の振替と４，０００の振替との優先順位を比較し、優先順位の低い振替を取り消す。例えば、６，０００の振替を取り消すと、４日の残高は、マイナス１，０００に、当該出金要求の取引金額６，０００を加算して、マイナス１，０００から５，０００となる。
【００５２】
このように、先日付の取引は、その決済完了性が至るまでは取り消される可能性がある。ここでは、日付変更処理を行い勘定日当日を迎えた時に、そのときまでに成立していた当該勘定日の口座処理にファイナリティを与え、確定させる。従って、取消処理部１０にて取消の対象として選定されるのは、先日付で成立している取引である。
【００５３】
例えば、４日を勘定日として未成立である６，０００の振替は、５日への日付変更が完了するまでに、４日の残高が１，０００以上増加した場合には再カットされ、一方、残高の増加のないまま５日への日付変更処理が完了すると、決済不能として振替を依頼した依頼者へ報告する。
【００５４】
図２は、ファイル６のデータ構造の一例を示す説明図である。ファイル６は、口座情報として、前記口座処理部８による処理順序で処理した前記口座処理要求を取引明細として記録する取引明細セグメント１２と、勘定日毎の残高を格納する残高明細セグメント１４とを備えている。取引明細セグメント１２には、実際に処理を行った演算日と、その口座処理の決済を行う日である勘定日と、口座処理の通番と、取引の種別と、その口座処理の優先順位と、口座処理の取引金額と、処理結果とが格納される。優先順位は、１から１０までの数字としてもよいし、アルファベットとしてもよいし、３桁の数字としてもよい。優先順位を数字で表す場合には、ここでは、数値の小さいものが優先順位が高いものとする。すなわち、優先順位１の口座処理Ａと、優先順位２の口座処理Ｂとでは、口座処理Ａの優先順位が高い。「結果」は、その取引が成立したか否かを示す情報である。
残高明細セグメント１４には、勘定日と残高とが格納されている。残高明細は、新しい勘定日での口座処理が実行されるときに生成される。例えば、１０日と１３日に残高明細があった場合に、１２日での口座処理要求があった場合には、１０日の残高に基づいて１２日の残高明細を作成する。この１２日の口座処理要求が決済不能で未成立となる場合であっても、１２日の残高明細を生成する。
【００５５】
図２に示す取引明細セグメント１２を有する場合、取消処理部１０は、この取引明細セグメントの各取引明細毎の勘定日及び優先順位を参照して前記取消対象の口座処理要求を特定する取消対象特定機能２１を備える。取消対象特定機能２１は、出金可能額がマイナスとなった勘定日を取消対象勘定日として、この取消対象勘定日に成立している一又は複数の口座処理要求を特定し、この口座処理要求群のなかで優先順位が最も低い口座処理要求を特定する。
【００５６】
一般的に、公共料金の引落等は振替日当日のみに引落を行う。このため、その振替日（勘定日）に残高に不足があり最終的に決済不能であると、公共料金の支払いができず、来月に再度口座振替処理を行うこととなる。一方、自動的に積立を行う契約などでは、積立をする振替日（勘定日）のみならず、次回の振替日の前日まで残高がある場合には積立を行う。この場合、勘定日は１か月間となる。勘定日の初日を勘定日と呼び、振替日の前日など再カットを行う期限を再カット期限と呼ぶこともある。
【００５７】
一定期間の勘定日を有する口座処理では、例えば、１０日を勘定日の初日としている場合、１０日には残高が不足し、一方、１１日には先日付での入金があるため決済可能であるとすると、１０日で未成立とした後に、１１日を勘定日として口座処理を行う。その後、１０日に入金がある場合には、１１日の口座処理ではなく、１０日の口座処理とすることが好ましい。例えば、融資の返済等で１１日を勘定日とすると延滞金が発生するような局面も想定されるため、先日付で成立している口座処理を、より前の勘定日へ前倒することが望ましい。
【００５８】
この前倒を行う例では、図１に示す口座処理部８が、口座処理要求を実行した後に、当該実行対象の勘定日以後の日時を勘定日とする口座処理要求のうち決済済の口座処理要求を取り消すと共に、当該取り消した口座処理要求を前記実行対象の勘定日での口座処理要求として再実行する先日付前倒制御機能を備えると良い。この先日付前倒制御機能により、一定期間の勘定日を有する口座処理を、口座残高の異動があった時に、決済可能なより前の勘定日での取引とすることができる。
【００５９】
図３（Ａ）は、取消、再カット及び前倒処理を含めた先日付完結処理の動作例を示す説明図である。第１実施形態乃至第４実施形態は、図３に示す動作をそれぞれの局面で機能強化したものである。
図３（Ａ）中、口座処理は、取引の内容を示し、残高（口座情報）は、取引の結果を示す。演算日は、口座処理要求を実行する日である。勘定日は、取引を行うべき日で、自振通番は、自動振込や自動振替等の自振を個別に識別するための番号である。取引は、口座からの出金や、口座への入金などであり、取引種類にその具体的な取引内容が格納される。取引金額は自振等の金額であり、結果は、その口座処理（取引）が成立したか否かを記録するものである。
【００６０】
まず、１０日の残高が３０，０００であるとする。１０日に、先日付である１１日を勘定日とする電気料引落（自振番号００１）が行われるとする。この場合、口座処理部８は、まず、１１日の勘定日の直近の勘定日である１０日の残高に基づいて、１１日の残高を３０，０００とする。出金１０，０００は決済可能であるため、電気料引落による出金を成立させる。すると、１１日の残高は２０，０００となる。このとき、１０日の残高にはなんら変更がない。
【００６１】
続いて、１０日に、１２日を勘定日として振込による５０，０００の入金があるとする。口座処理部４は、直近の勘定日である１１日の残高を１２日の残高として展開し、さらに５０，０００を加算する。この結果、１２日の残高は７０，０００となる。さらに、１０日当日にＡＴＭによる現金出金（支払）があるとする。１０日の残高は３０，０００であるため、２５，０００は出金可能であり、取引は成立する。１０日の残高は５，０００となる。口座処理部４は、１０日の残高を更新したため、この２５，０００の出金を１１日及び１２日の残高へ反映させる。すなわち、ＡＴＭによる出金処理の取引金額を１１日及び１２日の残高に加算する。
このＡＴＭでの２５，０００の出金が完了した状態での各勘定日の出金可能額を算出した例を図３（Ｂ）に示す。図３（Ｂ）に示すテーブルを、日付チェックテーブルと呼ぶ。図３（Ａ）及び（Ｂ）に示すように、１１日の残高が−５，０００となり、取消必要額が５，０００である。
【００６２】
取消処理部１０は、１１日の残高がマイナス（出金可能額よりも口座処理による出金額が大きい）となったため、出金可能額がマイナスとなった１１日にて成立している口座処理要求のうち、最も優先順位の低い取引を取り消す。ここでは、電気料引落による出金要求（自振番号００１）を取り消す。この取消により、電気料引落は未成立となる。取消金額は１０，０００であるため、１１日の残高は５，０００となり、残高不足での出金という状態が解消された。１２日の残高は５５，０００となる。
【００６３】
勘定日を１１日（実際の勘定日の期間は契約による）とし、再カット期限を約定返済日の翌々々月とする融資の返済を口座振替で行う場合、１１日での決済が不能であると、１２日に決済を行う場合がある。例えば、図３（Ａ）に示す例では、１１日では決済不能であるため、１１日を勘定日とする融資返済は未成立となる。この例では、再カット期限内である１２日を勘定日とする決済が可能であるため、１２日を勘定日として口座振替を行う。約定返済日が１１日の融資返済を１２日に返済すると、融資返済の元金に対して延滞利息が発生する。ここでは、一日分の延滞利息は１０円として説明する。融資返済は成立し、１２日の残高は１４，９９０となる。
【００６４】
１０日に、１１日を勘定日とする振込による入金があると、まず、１１日の残高が６５，０００となる。これにより、１２日を勘定日として成立していた融資返済処理は、１１日にて決済可能となる。先日付前倒制御機能は、１２日にて成立していた融資返済を取り消し、１１日の勘定日として再カットする。１２日の残高は、一旦４０，０１０の取消により増加する。続いて、１１日での再カットの残高が反映されて、７５，０００となる。この前倒制御により、先日付の入金に応じて、延滞利息が発生する１２日での取引を取り消すことができる。また、１１日を勘定日とする電気料引落が未成立であったため、当該電気料１０，０００を再カットする。１０日に実行した口座処理はこれが最終であり、このまま１１日を迎える。１１日になると、１０日の残高５，０００ではなく、１１日の残高１５，０００にアクセスする。この１５，０００の残高は、振込による入金と、融資の返済と、電気料の引落とが完了した残高である。このように、先日付完結処理では、バッチ処理と同様の結果をオンライン処理時間中に実行することができる。また、バッチ処理を行わずに２４時間連続してオンライン処理を稼働することができる。
【００６５】
図３（Ａ）に示すように、先日付の取引をオンライン処理中に行い、勘定日別の残高を持ち、ＡＴＭ等による取引は当日の残高に基づいて処理を行うことにより、振替や振込等の事前にほぼ取引の内容が判明している口座処理を勘定日よりも前の日時にて完結させることができる。これにより、振替等のバッチ処理を無くし、２４時間３６５日の連続稼働が可能となる。また、２４時間稼働としない場合であっても、夜間や早朝のバッチ処理が不要となるため、口座処理の運用コストを低下させ、かつ、夜間の短時間でのＣＰＵの処理能力を増加させるための投資を不要とする。また、顧客サービスという点からも、日付が変化した時には新たな残高に基づいて直ちに取引を開始することができるため、インターネットを介した取引等を２４時間連続してシームレスに行うことができる。
【００６６】
取消処理部１０は、出金可能額がマイナスとなった勘定日がある場合に、その勘定日に成立していた口座処理を取り消す。出金可能額は、図３（Ａ）に示す例では残高のみとした。しかし、担保定期等自動融資がある場合には、残高と出金可能額とが異なることがある。例えば、口座に対して担保となる定期預金等がある場合に、この定期預金を担保として普通預金に自動融資を行うサービスがある。１００，０００の担保定期がある場合には、一般的には、その９割の９０，０００が貸越極度となる。残高が１０，０００である場合には、この１０，０００に貸越極度の９０，０００を加算した１００，０００が出金可能額である。担保定期が設定されている場合には、残高がマイナスであっても、貸越極度の範囲内であれば、出金可能額はプラスである。
【００６７】
手形や小切手等については、不渡通知がない場合に出金可能な残高に組み込むことが行われている。この場合、残高明細セグメントが、資金化日での資金化を予定する未資金化残データと、出金可能な残高を示す実残データ（残高）とを備える。そして、不渡連絡時刻後の資金化処理を口座処理要求によって実行し、未資金化残を残高に組み込む。
【００６８】
例えば、１０日を資金化日とする小切手による入金１００，０００が既に先日付の口座処理要求で残高明細に反映されているとする。この１００，０００をそのまま実際の残高である実残に加算してしまうと、現金出金後に不渡連絡を受信する可能性に対応できなくなる。このため、資金化日である１０日には、１００，０００を未資金化残として残高明細に格納する。一方、先日付である１１日については、不渡連絡を待たずに実残に組み込む。これは、１１日は先日付であるため、仮に資金化が不能となった場合に資金化処理を取り消せば良く、また、１１日を勘定日とする残高は、１０日に現金出金することもできず、さらに、一般的には不渡通知を受信せず、正常に資金化できる可能性が高く、その場合、先日付の出金などが未成立とならない可能性が高まることによる。実際、１０日の不渡連絡の受信前に先日付での振替で２５０，０００の出金が有る場合には、５０，０００の残高とし、未成立の口座処理による取消や再カット処理の発生を防止することができる。
【００６９】
資金化日である１０日の１１：３０までに不渡連絡がなかった場合には、資金化処理を実行し、未資金化残を実残に組み込む。一方、不渡連絡を受けた場合には、資金化を行わず、また、１１日を勘定日とする残高についても１００，０００減少させる。
【００７０】
再度図１を参照すると、取消処理部１０は、前記口座処理部によって口座処理が行われる毎に前記残高明細セグメントに基づいて先日付の勘定日毎の出金可能額を算出する日付チェックテーブル生成機能２０と、出金可能額がマイナスとなる勘定日がある場合には当該勘定日での決済済みの口座処理要求を前記優先順位の低い順序で前記出金可能額がプラスとなるまで取り消す制御をするマイナス時取消制御機能２２とを備えている。日付チェックテーブル生成機能２０は、口座残高に異動があった場合に、図３（Ｂ）に示すような日付チェックテーブルを生成する。日付チェックテーブルを生成すると、出金可能額がマイナスとなっている勘定日と、その勘定日よりも将来の先日付での口座処理の有無等を特定することができる。
【００７１】
出金可能額がマイナスとなるのは、そのマイナスとなった勘定日に出金を行う口座処理要求があるためである。従って、その勘定日に成立している出金要求を取り消す。出金可能額がマイナスとなっている勘定日の前日等が先日付である場合には、その前日での出金を取り消すと出金可能額がプラスとなることはあり得るが、勘定日当日に残高がある場合に振替を行うという契約の元では、出金可能額がマイナスとなっている前日以前にて成立している口座処理要求を取り消すことはない。
【００７２】
マイナス時取消制御機能２２は、日付チェックテーブルを参照して、出金可能額がマイナスとなる勘定日がある場合には当該勘定日での決済済みの口座処理要求を前記優先順位の低い順序で前記出金可能額がプラスとなるまで取り消す制御をする。これにより、先日付完結処理を実行しつつ、残高が不足している状態での決済の成立を防止する。
【００７３】
この取消制御を図４に示すフローチャートを参照して説明する。先日付完結処理システムの前記演算手段４を使用して口座処理を行う先日付完結処理方法は、演算手段４にて演算を行う演算日に対して同日又は先日付となる勘定日の口座処理要求を当該勘定日の口座情報に基づいて処理する口座処理工程Ｓ１と、この口座処理工程Ｓ１での口座処理によって先日付の勘定日での口座処理要求が決済不能となるか否かを判定する取消要否判定工程Ｓ２，Ｓ３と、この取消要否判定工程Ｓ３にて取消要と判定されている場合には当該決済不能となる勘定日での複数の決済済みの口座処理要求のうち優先順位の低い口座処理要求を当該優先順位の低い順序にて取り消す口座処理要求を前記口座処理工程にて実行させる取消処理制御工程Ｓ４とを備えている。取消要否判定工程Ｓ３は、日付チェックテーブルを生成する日付チェックテーブル生成工程Ｓ２と、日付チェックテーブルにて出金可能額がマイナスとなっている勘定日について取消が必要と判定する工程Ｓ３とを備えるとよい。
【００７４】
図４に示す例では、通常の口座処理要求をステップＳ１にて行い、さらに、口座処理の取消をステップＳ１にて行う。このため、出金可能額がマイナスとなっている勘定日がある場合に、まず、最も優先順位の低い口座処理を取り消し、そして、この取消後の状態で再度日付チェックテーブルを生成して取消の要否を判定し、出金可能額のマイナスが解消しない場合には次に優先順位の低い口座処理の取消を制御する。これを繰り返すことで、優先順位の高い口座処理の決済を残しつつ、出金可能額のマイナスを解消させることができる。すなわち、出金可能額の範囲内で、優先順位の高い決済を実行することができる。
【００７５】
演算手段４は、所定のプログラム（指令）に従って各種の演算を行うＣＰＵを備えている。ＣＰＵは、勘定日別の口座処理を行うための指令や、勘定日別の口座情報を格納するための指令や、融資契約をファイル６の融資マスタＤＢ等に登録するための指令や、出金可能額がマイナスとなった勘定日での最も優先順位の低い口座処理の取消を制御する指令等の先日付完結処理用プログラムを実行することで、図１に示す口座処理部８や、取消処理部１０として動作する。これらのプログラムはＣＰＵに併設されたプログラム記憶部に格納される。また、基本的な入出力を行うオペレーティングシステムや、データベースの管理やログによる復帰や、トランザクションの管理などを行うプログラム群についても、このプログラム記憶部に格納されている。
【００７６】
このような先日付完結処理用プログラムは、ＣＰＵ（演算手段）を動作させる指令を備える。例えば、演算日に対して同日又は先日付となる勘定日の口座処理要求を当該勘定日の口座情報に基づいて処理させる口座処理指令を備えている。ＣＰＵが口座処理指令を実行することで、このＣＰＵは図１に示す口座処理部８として動作し、図４に示す口座処理工程Ｓ１を実行する。本実施形態による先日付完結処理用プログラムは、この口座処理指令に応じてＣＰＵにて実行される口座処理によって先日付の勘定日での口座処理要求が決済不能となるか否かを判定させる取消要否判定指令と、この取消要否判定指令にて取消要と判定される場合には当該決済不能となる勘定日での複数の決済済みの口座処理要求のうち優先順位の低い口座処理要求を当該優先順位の低い順序にて取り消す口座処理要求を前記口座処理指令を用いて実行させる取消処理制御指令とを備える。
【００７７】
また、先日付完結処理システムにて実現すべき各手段、各部又は各機能や、フローチャートの各工程に応じた指令を備えることで、ＣＰＵは種々の機能を有する演算手段２として動作する。先日付完結処理用プログラムは、磁気テープ（ＭＴ）やディスク等の記録媒体１１Ａに格納されて搬送され、媒体読取部１１によって読み取られる。記録媒体に格納されていた先日付完結処理用プログラムは、媒体読取部１１にて読み取られた後、プログラム記憶部に格納される。また、他のホスト装置から通信回線を経由してプログラム記憶部にプログラムを提供することもできる。
【００７８】
プログラムについて、ＣＰＵ（演算手段）を「動作させる指令」というときには、各指令のみでＣＰＵを動作させる指令と、プログラム記憶部に予め格納されているオペレーティングシステム等の他のプログラムに依存して当該ＣＰＵを動作させる指令とのいずれかまたは双方を含む。例えば、取消処理制御指令は、優先順位が最も低い口座処理の取消の起動要求をオペレーティングシステムに引き渡す指令のみでもよい。このように、当該先日付完結処理用プログラムを記憶する記録媒体１１Ａであって、当該プログラムをユーザへ搬送する用途の記録媒体１１Ａには、例えば「優先順位が最も低い口座処理の取消の起動をオペレーティングシステムに要求する指令」のみが格納され、実際の取消処理のスケジューリング等はオペレーティングシステムが行う場合がある。これは、動作させようとするコンピュータのオペレーティングシステム等との関係で定まる。この点、通信回線を介してプログラム（指令）を提供する場合も同様である。
このプログラムとシステム又は方法、搬送媒体等に関する説明は後述する実施形態及び実施例においても同様である。
【００７９】
図５は第１実施形態による処理例を示す説明図である。図５（Ａ）に示すように、演算日を１０日とし、１０日での残高を３０，０００とする。先日付での８，０００の支払Ｂと、１０，０００の支払Ａと、２，０００の支払Ｃとをこの順序で処理すると、１１日付けの残高は１０，０００となる。支払の優先順位は支払Ａが一番高く、支払Ｃが一番低い。この状態で、１０日当日にＡＴＭでの現金出金２０，０００があると、１０日付の残高は３０，０００であるから出金可能で、１０日の残高は１０，０００となる。１０日にて減額した２０，０００を１１日に反映すると、１１日の残高（出金可能額）はマイナスになる。
【００８０】
このＡＴＭ出金があった状態を最終状態とすると、１１日を勘定日とする口座処理要求のすべてを決済することはできない。単純に成立順に取り消すのであれば、支払Ｂと支払Ａとが取り消される。成立の逆順の場合には支払Ｃと支払Ａとが取り消される。本実施形態では、図４を参照して説明すると、ＡＴＭ現金出金が完了した時点で（ステップＳ１）、日付チェックテーブルを作成する（ステップＳ２）。日付チェックテーブルを参照すると、１１日にて取消が必要と判定される（ステップＳ３）。図１に示す取消処理部１０は、１１日にて成立している口座処理のうち、優先順位の最も低い口座処理を取り消す制御をする（ステップＳ４）。すると、ステップＳ１にて支払Ｃを取り消す。
【００８１】
支払Ｃを取り消した状態での日付チェックテーブルでは、１１日の出金可能額は−８，０００であり（ステップＳ２）、取消処理部１０は、取消が必要と判定する（ステップＳ３）。支払Ｂと支払Ａとでは、支払Ｂの優先順位が低い。このため、ステップＳ４にて支払Ｂの取消を制御する。支払Ｂを取り消すと、１１日の残高は０となり、マイナスの状態が解消された。この支払Ｂを取り消した状態を図５（Ｂ）に示す。図５（Ｂ）に示すように、１１日の１０，０００の残高を最も優先順位の高い支払Ａの決済に用いることができる。
【００８２】
このように本実施形態では、口座処理の実行順序にかかわらず、残高が不足する場合に、予め定義した優先順位に従った決済を行うことができる。従って、口座処理の実行順序を厳格に定める必要がなくなり、演算手段４のオペレーションでの負担が格段に軽くなる。また、先日付の口座処理及び必要な取消が完了した段階で、日付変更時になんら処理を行わずに、優先順位の高い支払Ａの口座処理が確定するため、２４時間稼働を実現することができる。
【００８３】
また、未成立となった支払Ｂ及び支払Ｃについては、１２日を迎える以前に入金があった場合には、残高が増加し、再実行（再カット）により決済を成立させることができる。この再カット処理にて優先順位を反映させる手法を第２実施形態として開示する。
【００８４】
【第２実施形態】
先日付完結処理では、最後の口座処理要求を実行した結果（残高等）に基づいて、先日付での口座処理を実行する。このため、口座残高の異動に応じて、先日付で決済不能であった口座処理を再カットすることができる。また、特開昭５９−７７５７３号公報に開示されているように、未成立であった口座処理について当日に入金があった時についても再カットするようにしても良い。第２実施形態では、再カットを実行するとき、優先順位の高い取引から再カットを試みることで、優先順位に従った決済を図る。
【００８５】
図６は、第２実施形態の構成例を示すブロック図であり、演算手段の構成とファイル６内部の構成以外は図１に示すシステムと同様である。図６に示す例では、演算手段４が、当該演算を行う演算日に対して同日又は先日付となる勘定日の口座処理要求を当該勘定日の口座情報に基づいて処理する口座処理部８と、この口座処理部８による口座処理によって当該口座処理の勘定日と同日又は先日付の勘定日で未成立であった口座処理要求が決済可能となる場合には、当該決済可能となる勘定日での複数の未決済の口座処理要求のうち、優先順位の高い口座処理要求を当該優先順位の高い順序にて処理する再カット処理部２４とを備えている。
【００８６】
残高の異動を生じさせる口座処理の勘定日が演算日（今日現在）であれば、口座処理の勘定日と「同日」は、演算日である。勘定日が先日付である場合には、勘定日と同日も先日付である。従って、再カットの対象は、勘定日以後に未成立であった口座処理要求である。異なる複数の先日付での勘定日がある場合、残高の異動を生じさせた口座処理の勘定日に最も近い将来の勘定日から再カットを試み、最も遠い将来の勘定日での再カットの試みが完了した時点で再カット処理の全体が終了する。
【００８７】
再カット処理部２４は、口座処理部８による口座処理によって、当該口座処理の勘定日と同日又は先日付の勘定日で未成立であった口座処理要求が決済可能となる場合に再カットの対象となる口座処理の特定を行う。この再カットの対象は、当該決済可能となる勘定日での複数の未決済の口座処理要求のうち、優先順位の高い口座処理要求である。
【００８８】
第１実施形態では、取消の対象を取引明細セグメントから抽出した。第２実施形態では、決済不能で未成立の口座処理を残不足明細として格納する残不足明細セグメント１６を用いるとよい。残不足明細セグメント１６は、前記残不足明細毎に、当該口座処理要求の勘定日と、当該口座処理要求の他の口座処理要求に対する優先順位と、取引金額等を記録する。再カットが可能であるということは、この取引金額よりも出金可能額が多いということである。
【００８９】
図６を参照すると、再カット処理部２４は、前記残不足明細セグメントの各残不足明細毎の勘定日及び優先順位を参照して再カット処理対象の口座処理要求を特定する再カット対象特定機能２６を備える。再カット対象特定機能は、複数の残不足明細のうち、残不足明細セグメントに記録された優先順位を参照して、優先順位の最も高い口座処理要求の再カットを試みる。この口座処理要求の取引金額では再カットが不能の場合には、次に優先順位が高い取引の再カットを試みる。
【００９０】
さらに、本実施形態では、再カット処理部２４は、前記口座処理部２４によって口座処理が行われる毎に前記残高明細セグメントに基づいて当該口座処理の勘定日以後の各勘定日毎の出金可能額を算出する日付チェックテーブル生成機能２０と、前記残不足明細セグメントに格納された口座処理要求である出金要求を優先順位の高い順序でかつ勘定日順に前記出金可能額と比較すると共に出金可能額を下回る出金要求が発見された場合に当該出金要求を口座処理要求として前記口座処理部に実行させるプラス時再カット制御機能２８とを備えている。
【００９１】
プラス時再カット制御機能２８により、口座残高に異動がある毎に再カットの可能性を順次探索することができる。１０日の出金可能額が０から３０，０００へと変化した場合、１１日の５０，０００の未成立の口座処理要求は優先順位が高くても再カットすることはできないが、２０，０００の口座処理要求は再カットすることができる。また、１２日にて５，０００の口座処理要求が未成立であれば、１０日の３０，０００の入金によって、この１２日の５，０００の口座処理要求も再カットすることができる。一方、１２日にて１５，０００の口座処理要求が未成立であった場合には、１１日の２０，０００を再カットしたことで、１２日の残高は１０，０００となるため、この１５，０００の口座処理要求は再カットできない。処理の最終結果において、１２日の口座処理要求を１１日の口座処理要求よりも優先することはない。決済予定日（勘定日）の残高に基づいて振替等を行うため、優先順位はあくまでも同一勘定日内での口座処理要求の優先順位を定めるものとなる。
【００９２】
日付チェックテーブル生成機能は、口座残高に異動が生じた勘定日以後に成立又は未成立の口座処理要求が存在する日付の出金可能額を算出する。プラス時再カット制御機能２８は、日付チェックテーブルが生成されると、演算日当日または最も近い日付（日付チェックテーブルのすべての日付のなかでは、最も古い日付、日付チェックテーブルの先頭日又は先頭勘定日と呼ぶ）での出金可能額と、その日付を勘定日とする残不足明細とを比較する。すなわち、最も現在に近い日付から再カットを試み、元も遠い将来での再カットの判定で完了する。勘定日で前記残不足明細セグメントに格納された口座処理要求（出金要求）を、優先順位の高い順序で出金可能額と比較する。再カット可能な口座処理要求を発見した場合、発見された口座処理要求は、出金可能額内で再カット可能な口座処理要求のうち優先順位の最も高い口座処理要求である。再カット処理部２４は、この口座処理要求の再カットを起動する。
【００９３】
この再カットによって、口座残高に異動が生じる。このため、再カット処理部２４は、再カット後の最新の口座残高に基づいて日付チェックテーブルを作成する。そして、新しい出金可能額内で再カット可能な口座処理要求を優先順位に従って探索する。日付チェックテーブルの日付のうち最も現在に近い日付（先頭日，例えば１０日）での残不足には、再カット可能な対象がない場合には、その次の勘定日（例えば１２日）に処理を移す。この次の勘定日（１２日）にて先日付の口座処理要求が成立している場合には、１０日の出金可能額と１２日の出金可能額は異なる。従って、再カット処理部２４は、次の勘定日（１２日）の出金可能額に基づいて、その日付を勘定日とする未成立の口座処理要求の再カットを優先順位に従って試みる。このように、日付チェックテーブルに存在するすべての日付の探索が完了したときに、再カットの判定・起動処理を終了する。
【００９４】
本実施形態では、残不足明細は勘定日毎に、そして同一勘定日内では優先順位に従って判定対象として読み出される。従って、残不足明細セグメントのデータ構造を、勘定日を第１キーとし優先順位を第２キーとして勘定日順に、そして、当該勘定日内では優先順位順に論理的に並べられた状態とすることが好ましい。この場合、プラス時再カット制御機能２８は、前記残不足明細セグメントのデータ構造に従った順序で前記出金可能額と比較する機能を備えるとよい。
【００９５】
なお、残不足明細のデータ構造は処理の内容に依存して定まる。本実施形態では、説明を簡単にするために前倒制御についてふれず、また、好ましい実施例で採用する優先順位のグループについては言及しない。これらの前提による残不足明細の好ましいデータ構造については、第１実施例に開示される。例えば、勘定日がその当日のみでなく、再カット可能な期間（再カット期限）が一定期間ある口座処理要求を第１群とし、再カット期限が振替日当日のみであるものを第２群とする場合には、勘定日を第１のキーではなく、優先順位が第１群であることを示す値を第１のキーとすると良い。
【００９６】
再カットの判定および起動処理を図８のフローチャートを用いて再度説明する。先日付完結処理システムの演算手段４を使用して口座処理を行う先日付完結処理方法は、図８に示すように、演算手段４にて演算を行う演算日に対して同日又は先日付となる勘定日の口座処理要求を当該勘定日の口座情報に基づいて処理する口座処理工程Ｓ１１と、この口座処理工程Ｓ１２での口座処理によって当該口座処理の勘定日と同日又は先日付の勘定日で未成立であった口座処理要求が決済可能となるか否かを当該口座処理要求の優先順位の高い順に判定する再カット可否判定工程Ｓ１２乃至Ｓ１７と、この再カット可否判定工程Ｓ１２乃至Ｓ１７にて再カット可能と判定された場合には当該再カット可能な口座処理要求を前記口座処理工程にて実行させる再カット処理制御工程Ｓ１８とを備えている。
【００９７】
口座処理工程Ｓ１１にて口座処理を行うと、まず、日付チェックテーブルを作成する（ステップＳ１２）。このとき、口座処理の勘定日が１０日であれば、１０日が当日であるか先日付であるかにかかわらず、１０日を日付チェックテーブルの先頭日とする。そして、残高明細を参照して、先頭日以降で残高が格納されている日付の出金可能額を算出する。例えば、１２日と１３日にて先日付の未決済残不足があり、１４日以後を勘定日とする口座処理がない場合には、１０日と、１２日と、１３日の出金可能額を算出する。先日付の勘定日にて出金可能額にマイナスがある場合には、第１実施形態による取消を行う。
【００９８】
再カット可否判定工程では、まず、ステップＳ１１にて処理した口座処理要求の勘定日を先頭日として、この先頭日以後の残高明細セグメントに基づいて日付チェックテーブルを生成する（ステップＳ１１）。日付チェックテーブルは、ステップＳ１にて口座に直接の異動があった勘定日を先頭日として、それよりも先日付で口座処理が行われている場合に、その口座処理に応じて作成された残高明細に基づいて、出金可能額を算出する。
続いて、ステップＳ１３では、再カットの判定を行う対象日を特定する。日付チェックテーブルの生成直後の場合には、先頭日を対象勘定日とし、その出金可能額を特定する。そして、対象勘定日を勘定日とする残不足明細セグメントから、未判定で最も優先順位の高い口座処理を特定する。未判定の口座処理要求は、対象勘定日を勘定日として残不足明細に格納された口座処理要求であって、ステップＳ１５による再カット可否の判定を行っていない口座処理要求である。残不足明細が優先順位順に読み出せる場合には、読み出した口座処理要求が対象とすべき勘定日でかつ、最も優先順位の高い口座処理要求となる。
【００９９】
さらに、ステップＳ１４にて特定した口座処理要求の取引金額と、対象勘定日の出金可能額とを比較することで、再カットの可否を判定する（ステップＳ１５）。再カット可能であれば、当該ステップＳ１４にて特定した口座処理要求の再カットを起動し、ステップＳ１１の口座処理工程にて再カットさせる（ステップＳ１８）。ステップＳ１１にて再カットを実行すると、再度日付チェックテーブルを生成する（ステップＳ１２）。当初の先頭日（例えば、１０日）よりも先日付（より将来，例えば、１２日）の勘定日の口座処理要求を再カットした場合には、再カット完了後の日付チェックテーブルでは、先頭日がより将来の勘定日（１２日）へとシフトする。
【０１００】
ステップＳ１５にて再カット可能でなければ、さらに対象勘定日内での次の残不足明細を探索する（ステップＳ１６）。残不足明細がある場合には、ステップＳ１４にて当該口座処理要求を特定し、再カット可能か否かを判定する（ステップＳ１５）。ステップＳ１３にて対象勘定日が特定された後、Ｓ１４，Ｓ１５，Ｓ１６を繰り返すことで、特定の対象勘定日での残不足明細を優先順位順に全て探索することができる。
【０１０１】
ステップＳ１６にて対象勘定日での残不足明細のが全て完了した場合には、続いて、日付チェックテーブルにて出金可能額が算出された日付のうち、対象勘定日に最も近い将来の日付を対象勘定日として特定する（ステップＳ１７，Ｓ１３）。例えば、日付チェックテーブルの先頭日が１０日で、１２日と１３日の出金可能額が算出されており、１０日を勘定日とする残不足明細の再カットが全て不能であった場合には、ステップＳ１７にて日付チェックテーブルを参照する。そして、対象勘定日（１０日）の次の勘定日が日付チェックテーブルに存在する（１２日）ため、ステップＳ１３にて対象勘定日を再設定し、その再設定した対象勘定日（１２日）での出金可能額を特定する。
【０１０２】
そして、１２日及び１３日を勘定日とする未成立の口座処理要求を探索する。１３日を勘定日とする口座処理要求のうち、最も優先順位の低い口座処理が再カット不能であると（ステップＳ１５）、対象勘定日内に次の残不足明細がなく、そして、対象勘定日よりも先日付の日付は日付チェックテーブルに存在しない。このため、再カットの判定及び起動処理を終了する。
【０１０３】
図８に示す例では、演算日当日の再カットと、先日付での再カットとを特に区別することなく同一の処理で実行することができる。当日の再カットと先日付での再カットは、日付チェックテーブルの先頭日が当日であるか先日付であるかの相違だけである。もちろん、当日の再カットについては、再カットした時点で決済完了性を有し、確定する。
【０１０４】
第１実施形態と同様に、演算手段８のＣＰＵが複数の指令からなるプログラムを実行することで、図６に示す構成や、図８に示す処理を実現することができる。第２実施形態では、先日付完結処理用プログラムは前記演算手段を動作させる指令として、演算手段４にて演算を行う演算日に対して同日又は先日付となる勘定日の口座処理要求を当該勘定日の口座情報に基づいて処理させる口座処理指令と、この口座処理指令に応じた口座処理によって当該口座処理の勘定日と同日又は先日付の勘定日で未成立であった口座処理要求が決済可能となるか否かを当該口座処理要求の優先順位の高い順に判定させる再カット可否判定指令と、この再カット可否判定指令に応じて再カット可能と判定される場合には当該再カット可能な口座処理要求を前記口座処理工程にて実行させる再カット処理制御指令とを備えている。再カット可否判定指令は、図８に示すステップＳ１２からステップＳ１７までの各工程に対応する指令を備えると良い。
【０１０５】
図９は、第２実施形態による動作例を示す説明図である。図９（Ａ）に示す例では、図５に示す２０，０００のＡＴＭ現金出金に続いて、１１日を勘定日として通番００４の振込入金があった場合である。１１日を勘定日とする入金であるため、残高は０から９，０００となった。図８を参照すると、振込入金を口座処理として実行し（ステップＳ１１）、続いて、日付チェックテーブルを生成する（ステップＳ１２）。日付チェックテーブルは、１１日のみであり、先頭日は１１日となる（ステップＳ１３）。図９に示す例では、残不足明細に未成立の口座処理として支払Ｂ，支払Ｃが格納されている。最も優先順位が高い口座処理は支払いＢであるため（ステップＳ１４）、支払Ｂの取引金額８，０００と１１日の出金可能額９，０００とを比較する。取引金額が出金可能額よりも小さいため、再カット可能であり、ステップＳ１８にて当該支払Ｂの再カットを起動する。
【０１０６】
ステップＳ１１にて支払Ｂを再カットし、日付チェックテーブルを作成すると、１１日の出金可能額は１，０００である。支払Ｃの再カットはできないため、ステップＳ１６にて１１日内の次の残不足明細の有無を確認すると、残不足明細は支払Ｃで最後である。そして、１１日を基準とした先日付の残高明細は存在しない（日付チェックテーブルに日付がない）。このため、図８に示す処理を完了する。この状態を図９（Ｂ）に示す。本実施形態によると、図９（Ｂ）に示すように、振込入金による口座異動に応じて、優先順位の高い支払Ｂの決済を行うことができた。
【０１０７】
【第３実施形態】
第３実施形態では、先日付完結処理において、先日付の取消と再カットとを組み合わせることで、優先順位が定義された複数の操作にとって共通資源を最適な状態で利用する仕組みを開示する。この第３実施形態では、決済のみに限定することなく、基幹系の業務全般への適用可能である。
【０１０８】
図１０は、本実施形態による資源利用最適化システムの構成例を示すブロック図である。図１０に示すように、資源利用最適化システムは、業務処理要求の実行可否を定める資源の状態を一定期間別（競合単位別）に先日付で記録した資源状態ファイル７と、この資源状態ファイルに記録された情報に基づいて各業務処理要求を処理する演算手段４とを備えている。資源状態ファイル６は、資源の状態を過去から現在並びに将来となる先日付まで日単位等資源の不足が生じる競合単位毎に格納する資源明細セグメント７Ａと、過去又は先日付で成立した業務処理要求を当該業務処理の優先順位付きで成立順に格納する取引明細セグメント７Ｂと、先日付にて資源不足で未成立の業務処理要求を当該優先順位付きで格納する未成立明細セグメント７Ｃとを備えている。
【０１０９】
本実施形態で管理対象となる資源としては、第１、第２実施形態での口座の残高が該当する。その他、座席数や空室数を資源として予約処理に適用してもよいし、また、数量や納期が限られた商品やサービスの販売管理などに応用しても良い。本実施形態は、有限の共通資源に対して複数の処理要求（ここでは、業務処理要求と呼ぶ）が競合する場合に、業務処理要求の種類等に応じて予め定められた優先順位に従って共通資源を配分するシステムである。
【０１１０】
図１０に示す例では、演算手段４は、業務処理要求を実行すると共に当該業務処理要求が成立した場合には前記取引明細セグメント７Ｂに記録する一方、前記資源の不足で未成立の場合には前記未成立明細セグメント７Ｃに記録する業務処理部３８と、この業務処理部３８による処理の結果先日付にて前記資源に不足が生じた場合には、当該不足が生じた期間（決済の例では、勘定日）内で前記取引明細セグメント７Ｂに記録された業務処理要求群から優先順位の低い順に前記資源不足が解消するまで順次業務処理要求を取り消す取消処理部４０と、業務処理部３８による処理の結果、当日又は先日付にて資源が増加した場合には当該増加した期間以後で前記未成立明細セグメント７Ｃに記録された業務処理群から前記資源不足とならない利用可能資源の範囲内で前記未成立の業務処理要求を優先順位の高い順に実行する再実行処理部４２とを備えている。
【０１１１】
業務処理部３８は、業務の内容に応じて、サービスの提供や、商品の販売などの予約などの要求を処理する。このとき、先日付での予約を受け付ける一方、確定した予約として取り扱わず、当日又は直前までの取消を許容すると良い。取消処理部４０は、業務処理の結果、資源に不足が生じた場合には、資源不足が解消するまで順次業務処理要求を取り消す。このとき、優先順位の低い業務処理から順に取り消していくことで、優先順位の高い業務処理に優先して資源を割り当てる。
【０１１２】
また、再実行処理部４２は、業務処理による処理の結果、資源が増加した場合には、未成立明細セグメント７Ｃに格納された業務処理要求をその優先順位の高い順に再実行を試行する。優先順位の高い順に業務処理要求の再実行を制御することで、優先順位の高い業務処理に優先して資源を割り当てることができる。
【０１１３】
一般的に、トランザクション管理では、アボート（処理の中断及び処理開始前への復帰）の連鎖を避けるべきであるといわれている。連鎖的なアボートは、不正な値に従ったトランザクションをアボートし、このトランザクションのアボートがさらに他のトランザクションのアボートを引き起こし、これが連鎖的に生じることをいう。連鎖的なアボートの発生は処理性能上大きな問題となるため、その発生を回避すべきであるとされる。連鎖的アボートは、トランザクションが、取り消される可能性のある値に基づいて処理を行わないことを保証すると、連鎖的アボートは生じない。
【０１１４】
先日付完結処理（予約等を含む）では、将来の資源の利用については確定させていない。決済を例にすると、先日付での資源の利用については決済完了性を与えず、取消を可能としている。また、飲食や宿泊施設の予約は、当日の一定期間前までのキャンセルや変更が可能である。従って、先日付完結処理では、資源の利用の取消が生じ得る。そして、先日付でさらに各業務処理や口座処理に優先順位を与えるには、取消や再実行を多用しなければならず、連鎖的なアボートと同様の事態が生じ得る。
【０１１５】
例えば、業務処理に優先順位を割り当て、優先順位の高い業務処理を実行し、優先順位の低い業務処理の取消を行うことで、優先順位に従った業務処理の入れ替えを行うのは、業務処理をトランザクションとして考えると、業務処理の連鎖的なアボートと同様の状態となってしまう。すなわち、トランザクションの入れ替えを行おうとすると、一旦成立しているトランザクションを次々とアボートする必要性が生じてしまう。
【０１１６】
本実施形態では、単純なトランザクション処理システムではなく、取引明細セグメントと、未成立明細セグメントとを利用して、業務処理（トランザクション）の入れ替えを行うものである。すなわち、連鎖的なアボートが生じる状況を未成立明細セグメント及び取引明細セグメントとして管理しつつ、取消処理と再実行処理とを組み合わせることで、優先順位に応じた業務処理の入れ替えや再構築を行う。これにより、連鎖的なアボートと同様の事態によるシステム不安定さを回避しつつ、先日付での優先順位の反映を実現する。
【０１１７】
具体的には、取消処理部による取消や、再実行処理部による再実行を、トランザクションとしてのＡＣＩＤ特性を満たすようにすることでトランザクションの連鎖的アボートを防ぎ、一方、個別のトランザクションの結果を未成立明細セグメントや取引明細セグメントとして安定な状態で記録する。すると、取消処理や再実行処理は、トランザクション管理システムのレベルでは厳格に安定して実行することができる。しかし、業務の目的からすると、成立させるべき業務処理要求が実行されずに未成立明細セグメントに格納されたままとなると、業務レベルでの一貫性、整合性を保てない。この業務レベルでの一貫性を保つように、図１０に示す取消処理部４０及び再実行処理部４２の構成を設計する。端的には、資源の状態に異動があったときには、取消又は再実行を検討するというものである。
【０１１８】
資源に不足が生じたときに取消を行い、資源が充足した場合に再実行を行うことで、業務レベルでの一貫性を保つことができる。そして、予め業務処理要求の種類等に応じて定めた優先順位を参照して、取消又は再実行を行うことで、資源の状態に応じて業務処理の実行順序等を変化させることができる。これにより、資源の状態変化に応じて実行すべき業務処理の最適化を行うことができる。
【０１１９】
また、取消と再実行とを組み合わせることで、業務処理の強制的な入れ替えを自動化することができる。具体的には、未成立明細セグメントのなかで優先順位が最も高い業務処理要求（高順位要求）を特定し、この高順位要求よりも優先順位が低く、すでに成立している口座処理要求と入れ替える。この高順位の未成立業務処理要求と、低順位の成立済み業務処理要求の入れ替えを、修正再実行（第４実施形態では、修正再カット）と呼ぶ。
【０１２０】
修正再実行を行う例では、演算手段４が、前記業務処理要求の実行の結果前記資源の状態に変化があった場合には、前記未成立明細セグメント７Ｃに記録された先日付の業務処理要求のうち、最も優先順位が高い業務処理要求を高優先業務の業務処理要求（未成立高順位要求）として特定する高優先業務特定部４４を備えている。また、演算手段４は、取引明細セグメント７Ｂに記録された先日付の業務処理要求のうち、前記高優先業務の業務処理要求の優先順位よりも相対的な優先順位の低い業務処理要求群によって利用予定の資源の一覧又は総量を修正利用可能資源として算出する修正利用可能資源算出部４６を備える。
【０１２１】
この例では、さらに、演算手段４が、高優先業務の業務処理要求によって要求する資源が前記修正利用可能資源にて充足する場合には、当該高優先業務の業務処理要求を実行すると共に前記取消処理部に優先順位の低い業務処理要求群の取消を依頼する修正再実行処理部４８を備える。
【０１２２】
高優先業務特定部４４は、未成立明細セグメント７Ｃに記録された業務処理要求のうち、最も優先順位の高い業務処理要求を特定する。この高優先業務の業務処理要求と、すでに成立している低順位の業務処理要求との入れ替えを試みる。成立している業務処理要求は、取引明細セグメント７Ｂに記録されている。修正利用可能資源算出部４６は、取引明細セグメントに７Ｂ記録され、高優先業務の業務処理要求の優先順位よりも相対的な優先順位の低い業務処理要求群によって利用予定の資源の一覧又は総量を修正利用可能資源として算出する。
【０１２３】
そして、修正再実行処理部４８は、高優先業務の業務処理要求によって要求する資源が前記修正利用可能資源にて充足する場合には当該高優先業務の業務処理要求を実行する。これにより、未成立であった業務処理要求に資源を割り当てることができる。この高順位要求の修正再実行をした直後は、高順位要求と優先順位の低い業務処理要求群とで共通資源への競合が発生し、資源不足の状態となる。取消処理部４０は、この資源不足の状態を解消するために、優先順位の低い順にすでに成立している業務処理要求を取り消す。これにより、優先順位に応じた業務処理要求（トランザクション）の入れ替えを行う。
【０１２４】
ここで、資源の一例として宿泊施設Ａの部屋考え、この予約での優先順位の反映について説明する。例えば、パック旅行の宿泊の予約と、宿泊施設Ａへの直接の予約とが競合する。パック旅行の申込者は宿泊施設を指定していないため、パック旅行での宿泊施設Ａへの予約を行う業務処理要求の優先順位は、直接の予約を行う業務処理要求と比較して低く設定できるとする。すなわち、直接の予約を行う業務処理要求の優先順位が高いとする。
【０１２５】
パック旅行の宿泊予約が時間的に早く実行され、宿泊施設Ａの全部屋の利用予定が取引明細セグメントに登録されている場合、直接の予約を行う業務処理要求が行われると、資源が不足するため実行できず、一旦未成立取引明細セグメント７Ｃに格納される。すると、高優先業務特定部４４は、この直接の予約を行う業務処理要求を特定する。そして、修正利用可能資源算出部４６は、取引明細セグメントに格納されたパック旅行の予約を行う業務処理要求によって利用予定の資源を特定する。宿泊施設であれば、部屋のタイプや部屋数等を特定する。
【０１２６】
修正実行処理部４８は、直接の予約を行う業務処理要求によって利用要求された資源が、修正利用可能資源算出部４６によって特定された資源で充足できるか否かを判定する。充足する場合、まず、直接予約を行う業務処理要求を実行する。すると、資源に競合が生じる（ダブルブッキング状態となる）ため、より優先順位の低いパック旅行の予約のうち、最も優先順位の低い予約を取り消す。これにより、宿泊施設Ａへの予約の入れ替えが完了する。取り消されたパック旅行は、同地域への他の宿泊施設への予約処理等を行う。
【０１２７】
図１０に示す例では、資源の充足及び不足に応じて、多数の取消処理又は再実行処理が発生することがある。これら多数の取消や再カットを一つのトランザクションとして実行するには、システム的な制限があるほか、応答時間を悪化させてしまう。このため、取消や再実行については、起動側のトランザクションとは別のトランザクションとして実行される派生トランザクションを用いると良い。
【０１２８】
一方、資源の利用の要求処理と、この利用要求される資源の管理とは、別系統の処理とすると開発がしやすい。しかし、資源の利用の要求処理と、資源利用の許可等の管理とに矛盾を生じさせることはできない。例えば、宿泊施設の予約が成功したという結論と、宿泊施設に予約を登録する処理とは、原始性を満たさなければならない。このような場合に、資源の利用の要求処理と、資源の管理処理とを連動させ、一つのトランザクションとして実行するとよい。
【０１２９】
このように、本実施形態では、応答性を確保しつつ複雑な処理を実行するために、２種類のトランザクションの起動手法を使い分けている。一つは連動取引（連鎖トランザクション，入れ子トランザクション）であり、もう一つは派生取引（非連鎖トランザクション）である。連動取引は、決済を例とすると、自動定期化を行うために、普通預金口座から出金して、定期預金口座に入金する場合に、普通預金口座からの出金を行う処理と定期預金口座に入金する処理とを連動（chain）させ、一つのトランザクションとして処理する。すなわち、連動取引は、どれだけ複雑な入れ子状態となろうとも、また、連動を多数回繰り返すとしても、それは１トランザクションである。トランザクションの隔離性により、連動取引により何らかの処理が実行されている場合には、当該連動取引によって利用されている資源は隠蔽される。また、トランザクションの原始性により、連動されているすべての処理が成功しなければ、端末等への応答は戻らない。
【０１３０】
ここでは、連動取引を起動する側を起動業務、起動業務により起動される処理を受動業務と呼ぶ。連動取引は、一般的に、連動回数に制限が有るほか、１トランザクションとして実行するため、連動すべき取引数が多数になる場合には、上記のように、オンライン取引の応答時間を一定時間以内とすることができなくなる。すなわち、一つの予約の成立により多数の予約を取り消したり、また、ある口座に対する入金に応じて多数の口座処理を実行するなどの数の予想が難しい処理については、連動処理には限界がある。
【０１３１】
派生取引は、一つのトランザクションを完了させ、そのトランザクションとは別の他のトランザクションを派生させるものである。派生取引（非連鎖トランザクション）には取り扱い困難な部分もあるが、本実施形態及び第４実施形態，第１実施例等においては、取り消すべき業務処理（口座処理）の数を事前に限定することが難しいため、連動取引にて取消や再カットを行うには限界があり、派生トランザクションを活用する。
【０１３２】
図１１は、連動トランザクションと派生トランザクションとを併用して資源状態の最適化を行う構成を示すブロック図である。図１１に示す例では、演算手段４が、資源の予約又は使用等の資源に対する操作を起動業務として実行すると共に、当該実行中の起動業務プログラム群と単一のトランザクションとしての連動を所定の受動業務処理部に依頼する起動業務処理部５０と、この起動業務処理部５０によって連動依頼される前記資源状態の更新管理等の受動業務を実行すると共に、当該受動業務の実行によって前記資源の状態が変化した場合には、起動業務及び受動業務が連動した単一のトランザクションとは異なる他の派生トランザクションとして、所定の取消再実行メインプログラムを起動する受動業務処理部５２とを備えている。
【０１３３】
演算手段４はさらに、取消再実行メインプログラムが派生トランザクションとして起動されたときに、当該起動された際の前記受動業務によって管理される資源の状態に基づいて前記起動業務の取消又は再実行の要否を判定すると共に、当該判定結果と各起動業務の優先順位に基づいて前記起動業務の取消又は再実行を当該取消再実行メインプログラムとは異なる他の派生トランザクションとして前記起動業務処理部５０に実行させる取消再実行メイン処理部５４を備えている。
【０１３４】
好ましい例では、取消再実行メイン処理部５４は、起動業務処理部５０と受動業務処理部５２との連動トランザクションが同期点に達した後に、前記取消再実行メインプログラムを開始させる機能を備えるとよい。システム的なトランザクション管理としては、起動業務が取消再実行メインプログラムを派生起動するようにしても良いが、取消再実行メインプログラムは資源の最適化を図るものであり、受動業務側で派生起動を制御するほうが、論理的に扱いやすい。また、起動処理は共通資源の利用を要求する処理であるため、起動処理となるプログラムは多数ある一方、受動処理は資源の管理を行うものであるため、受動処理側のプログラムは少ない。このため、取消再カットメインの派生起動を受動処理側で行うことが好ましい。
【０１３５】
取消再実行メインプログラムは、演算手段４を動作させる指令として、当該取消再実行メインプログラムが派生トランザクションとして起動されたときに当該起動された際の前記受動業務によって管理される資源の状態に基づいて前記起動業務の取消又は再実行の要否を判定させる取消再実行判定指令と、この取消再実行判定指令に応じた判定結果と各起動業務の優先順位に基づいて前記起動業務の取消又は再実行を当該取消再実行メインプログラムとは異なる他の派生トランザクションとして前記起動業務処理部に実行させる取消再実行メイン処理指令とを備えている。これら各指令が演算手段４によって実行されると、演算手段４は取消再実行メイン処理５４として機能する。
【０１３６】
本実施形態では、連鎖的アボートと同様な処理負荷を生じることも想定できる。すなわち、一つのトランザクションが完了した結果、多数の業務処理の取消や再カットが生じるのである。取消再実行メインプログラムは、どの業務処理を取り消すか、又は再カットするかを次々と判定する必要がある。しかし、取消再実行メインにより取消又は再実行を起動制御し、実行されると、資源の状態が変化する。取消再実行メインは、この変化した状態で最適な取消又は再実行を制御しなければならない。このため、本実施形態では、派生トランザクションを次々と起動させつつ資源の利用法を最適化するスパイラル処理を採用する。
【０１３７】
図１１を参照すると、取消再実行メイン処理部５４は、前記起動業務の取消又は再実行を派生トランザクションとして起動した場合には、当該起動内容を示す派生管理フラグを前記起動業務処理及び当該起動業務処理部５０によって連動される受動業務処理に渡すフラグ渡し制御機能５６を備えている。このフラグは、取消再カットの進行状況を表すフラグである。そして、取消再実行メイン処理部５４は、前記受動業務処理部５２から前記取消再実行メインプログラムが派生トランザクションとして起動された場合には、前記派生管理フラグを参照して当該資源に対する同種類の判定及び実行を前記資源状態ファイルに対象となるセグメントがなくなるまで連続させるスパイラル処理制御機能５４とを備えている。
【０１３８】
スパイラル処理制御機能５４は、派生トランザクションの連続性を管理するものである。図１２は、スパイラル処理の動作例を示す説明図である。図１２に示す例では、まず、資源の利用等の要求が起動処理によってなされる（ステップＳ２１Ａ）。起動業務処理部５０は、受動業務に連動し、資源の確保を依頼する。受動処理は、資源の確保が完了すると（ステップＳ２１Ｂ）、起動処理Ｓ２１Ａに連動を戻す。これにより、起動処理Ｓ２１Ａは同期点に達する。一方、受動処理は、資源の確保が完了すると、取消再実行メインプログラムを派生起動する。この取消再実行メインプログラムは、起動処理Ｓ２１Ａが同期点に達した後に実行を開始すると良い。取消再実行メインＳ２１Ｃでは、資源の状態に応じて、未成立の業務処理要求の再実行か、または成立済みの業務処理要求の取消の必要性を判定する。
【０１３９】
ここでは、宿泊施設が一部改装を決定し、突然に資源不足が生じたとする。取消再実行メインＳ２１Ｃでは、優先順位の最も低い予約の取消を派生トランザクションとして起動する。この取消起動により、取消再カットメインは同期点に達する。起動された取消処理は、起動処理として実行される（ステップＳ２２Ａ）。受動処理Ｓ２２Ｂへの連動等は同様である。このとき、取消再実行メインＳ２１Ｃでの判定結果（取消起動）等に対応した派生管理フラグは、起動処理Ｓ２２Ａ、受動処理Ｓ２２Ｂを介して取消再実行メインＳ２２Ｃに渡される。
【０１４０】
取消再実行メインＳ２２Ｃでは、前回取消起動した業務処理要求の次に優先順位の低い業務処理要求を取消の対象として特定し、その取消を起動する。この取消処理はＳ２３にて処理され、再度取消再実行メインＳ２４Ｃが起動される。各工程Ｓ２１，Ｓ２２，Ｓ２３，…では、実行されている取消再実行メインはそれぞれ異なるトランザクションであるが、派生管理フラグによってその処理の連続性を確保している。この派生管理フラグを用いた取消・再実行の連続的な起動を、ここではスパイラル処理と呼称している。スパイラル処理は、優先順位の反映などデータや処理に対する連続的な判定が必要な場合に適している。
【０１４１】
再度図１１を参照すると、図１０に示した修正再カットの機能は、図１１に示す例では、取消再カットメインの機能として実装されている。図１１に示す例では、取消再実行メイン処理部５４は、前記受動業務の実行によって前記資源状態が変化した場合に未成立であった起動業務のうち最も優先順位の高い起動業務を高優先業務として特定する高優先業務特定機能６０と、成立済みの起動業務のうち前記高優先業務の優先順位よりも優先順位の低い起動業務群によって利用される資源の一覧又は総量を修正利用可能資源として算出する修正利用可能資源算出機能６２と、前記高優先業務によって利用要求されている資源が前記修正利用可能資源内で利用可能である場合には前記高優先業務である起動業務を再実行させる修正再実行制御機能６４とを備えている。これにより、修正再実行を実現する。また、修正再実行により資源に不足が生じた場合には、優先順位の低い順に業務処理を取り消す。また、この例では、取消再カットメインプログラムは、これらの各機能６０，６２，６４に応じた指令を備える。
【０１４２】
図１３は、第３実施形態の動作例を示す説明図である。図１３に示す例では、レストランの席での眺めの良い窓側や、宿泊施設の部屋での広さやなど、資源にランクがある場合に、予約の種別や他の条件に応じて優先順位を設定し、この優先順位と資源のランク（第１資源がより高ランクとする）との整合性を保つ例である。図１３（Ａ）に示す例では、通番００１,００２, ００３, ００４が成立している。優先順位の高い通番００１及び００２について上級の第１資源を割り当てている。ここで、通番００５として優先順位の高い予約である業務処理要求が入力される。優先予約の場合に第１資源又は第２資源とする例では、この通番００５は資源不足で実行できないため、一旦未成立取引明細に格納される。または、優先予約で優先順位が１である場合には取消再実行メインによる最適化を実行するよにしてもよい。
【０１４３】
取消再実行メイン処理部５４は、高優先業務特定機能６０により、通番００５の業務処理を特定する。修正利用可能資源算出機能６２は、優先順位の低い通番００２に割り当てられた第１資源を修正利用可能資源として特定する。修正再実行制御機能６４は、通番００５に第１資源を割り当てることができると判定し、当該通番００５の業務処理要求の修正再カットを起動する。図１２に示す例では、Ｓ２１Ｃの取消再実行メインが、通番００５の業務処理要求の再カットを起動する。起動業務処理部５０は、通番００５の業務処理要求を実行し、第１資源の確保を受動処理Ｓ２２Ｂに依頼する。受動処理は、通番００５に第１資源を確保すると、取消再実行メインＳ２２Ｃを派生起動する。起動処理Ｓ２２Ａ及び受動処理Ｓ２２Ｂは同期点に達する。取消再実行メインＳ２２Ｃでは、第１資源に競合が発生しているため、第１資源を利用する業務処理要求のうち、優先順位の最も低い通番００２の業務処理を特定し、この取消を派生起動する。
【０１４４】
Ｓ２３にて当該通番００２の取消が完了する。Ｓ２３Ｃの取消再カットメインでは、この優先順位２の通番００２の修正再実行を検討する。第２資源を利用している業務処理（通番００３,  ００４）の優先順位が低いため、通番００２の修正再実行を派生起動する。ステップＳ２４にて通番００２の修正再実行が完了する。取消再実行メインＳ２４Ｃでは、第２資源を利用している業務処理要求のうち、優先順位の最も低い通番００４の取消を起動する。ステップＳ２５にて通番００４の業務処理が取り消される。取消再実行メインＳ２５Ｃでは、第３資源に空きがあることから、通番００４の再実行を派生起動する。通番００４の再カットにより、第３資源も終了となる。ステップＳ２６にて通番００４の再実行が完了する。取消再実行メインＳ２６Ｃでは、資源に不足がないため取り消す対象がなく、修正再カットの対象がなく、さらに、再カットの対象もないことから、スパイラル処理を完了する。図１３に示す例では、再実行と取消を交互に繰り返したが、スパイラル処理の例によっては、例えばすべての業務処理を取り消し、ついで優先順位に従って再実行するようにしてもよい。これは、派生管理フラグの設定の仕方と利用の仕方を定めることで実現できる。
【０１４５】
【第４実施形態】
第４実施形態では、第３実施形態にて開示した手法を用いて、口座残高を用いた決済に優先順位を反映させる先日付完結処理を開示する。第４実施形態では、取消及び再カットの組み合わせにより口座処理要求による決済の最適化を図る。すなわち、限られた残高で優先順位の高い口座処理要求を決済する。ここでは、各口座処理要求の勘定日の期限（再カット期限）は、予め定められた１日間のみとする。指定された日付での決済が不能であれば、決済を依頼した依頼者に決済不能であった旨を連絡する。
【０１４６】
そして、第４実施形態では、すべての口座処理要求を修正出金可能額による入れ替えの対象とする。この前提とは異なる前提の処理例は、第１実施例として後述する。第１実施例との比較では、第４実施形態の優先順位は全て第１優先順位群（≠９ｘ）で、優先順位のグループが一つで、かつ、再カット期限が勘定日当日のみであるため前倒がない。また、ソフトウエアの枠組みは第３実施形態と同様である。従って、第４実施形態は、第３実施形態を預金口座を用いた決済に利用した具体例である。
図１４は、第４実施形態による先日付完結処理システムの構成例を示すブロック図である。図１４に示す例では、先日付完結処理システムは、第１及び第２実施形態と同様に、受信手段２と、演算手段４と、ファイル６とを備えている。そして、ファイル６は、口座情報として、図７に示す例と同様に、取引明細セグメント１２と、残高明細セグメント１４と、残不足明細セグメント１６とを備ている。決済に利用する口座としては、普通預金口座や、当座預金口座を想定する。従って、例えば、残高明細セグメント１４には預金者の口座残高が勘定日毎に格納されている。担保定期等による自動融資がある場合には、この残高明細セグメントに担保明細セグメントを併設する。残高明細セグメントには、先日付の残高がその勘定日毎に格納される。残高明細に先日付の残高が格納されるのは、先日付の口座処理が実行された場合である。ここでは、仮に残不足明細に格納され、口座に異動がないとしても、残高明細セグメントにその残不足明細に格納された口座処理の勘定日での残高を格納する。
【０１４７】
図１４に示すように、本実施形態では、演算手段４が、前記勘定日毎の残高を使用した出金又は入金の決済を要求する口座処理要求を起動業務として実行すると共に当該実行中の起動業務プログラム群と単一のトランザクションとしての連動を所定の受動業務処理部に依頼する起動業務処理部６６と、この起動業務処理部６６によって連動依頼される前記勘定日毎の口座残高の出金又は入金等の受動業務を前記各セグメントを用いて実行すると共に当該受動業務の実行によって前記勘定日毎の残高明細が変化した場合には所定の取消再カットメインプログラムを当該起動業務及び受動業務が連動した単一のトランザクションとは異なる他の派生トランザクションとして起動する受動業務処理部６８とを備えている。
【０１４８】
受動業務処理部６８は、ファイル６に格納された残高を管理し、口座処理を実行する毎に、取引明細セグメント１２、残高明細セグメント１４、残不足明細セグメント１６を更新する。起動業務処理部６６は、公共料金の引落のために預金口座からの出金を要求したり、融資の回収（返済）のために預金口座からの出金を要求する処理などである。公共料金等の外部から依頼される自動振替を外部自振といい、融資の返済や定期積金等の金融機関内部での自動振替を内部自振と呼ぶ。
【０１４９】
図１４に示すように、本実施形態では、演算手段４が、前記受動業務処理部６８によって取消再カットメインプログラムが派生トランザクションとして起動されたときに、当該起動された際の前記各セグメント１２，１４，１６の状態に基づいて前記起動業務の取消又は再カットの要否を判定すると共に、当該判定結果と各起動業務となる口座処理要求の優先順位とに基づいて前記起動業務の取消又は再カットを当該取消再カットメインプログラムとは異なる他の派生トランザクションとして前記起動業務処理部６６に実行させる取消再カットメイン処理部７０を備えている。
【０１５０】
取消再カットメイン処理部７０は、すでに成立している口座処理の取消や、未成立の口座処理の再カットを派生トランザクションとして起動する。すなわち、トランザクション管理システムからみると、取消処理や再カット処理はＡＣＩＤ特性を満たすトランザクションである。取消処理は、すでに成立しているトランザクションのアボートではなく、成立しているトランザクションを未成立へと変化させ、未成立の状態へ各セグメントを更新する新たなトランザクションである。従って、取消再カットメイン処理部７０によって起動される取消処理は、連鎖的アボートではなく、厳格にスケジュールされるトランザクションである。
【０１５１】
図１５は取消再カットメイン処理部７０の詳細構成を示すブロック図である。図１５に示す例では、取消再カットメイン処理部７０は、第１実施形態での取消処理部１０と同様の機能を実現するために、残高明細セグメント１４に格納された勘定日別の残高明細に基づいて、勘定日毎の出金可能額を算出すると共に、先日付の勘定日での当該出金可能額がマイナスとなり決済不能となる場合には、当該決済不能となる勘定日での複数の決済済みの口座処理要求のうち優先順位の低い口座処理要求の取消を前記起動業務処理部に派生トランザクションとして実行させる取消起動制御機能７２を備えている。
【０１５２】
このように、本実施形態では、決済不能な状況の発見の直後にそのトランザクションのアボートを行うのではなく、先日付での決済不能な状況を一旦残高明細に記録し、この記録の成功によってその決済不能な状況をもたらした口座処理の同期点処理を完了させる。そして、決済不能な状況をもたらした口座処理が同期点に達した後に、派生トランザクションとして取消を行う。これにより、例えばＡＴＭ等での出金を早期にコミットさせ、その後に先日付での業務的な一貫性を保つために先日付での口座処理要求の取消を行う。
【０１５３】
また、取消再カットメイン処理部７０は、第２実施形態での再カット処理部２４と同様の機能を実現するために、残高明細に基づいて勘定日毎の出金可能額を算出すると共に、演算日時当日又は先日付の勘定日での出金可能額に基づいて、前記残不足明細に格納された当日又は先日付の勘定日で未成立の口座処理要求のうち優先順位の高い順に各口座処理要求が決済可能となるか否かを判定する再カット可否判定機能７４と、この再カット可否判定機能７４によって決済可能と判定された未成立の口座処理要求がある場合には当該口座処理要求の再カットを前記起動業務処理部に派生トランザクションとして実行させる再カット起動制御機能７６とを備えている。
【０１５４】
再カットについても、取消の場合と同様に、ＡＴＭによる現金の入金という口座処理要求自体は、残高明細の更新に成功したことで同期点に達する。その後、先日付にて増加した残高に基づいて、再カットの可否を判定し、再カット可能であれば当該再カットを派生トランザクションとして起動する。再カット処理は、図１４に示す起動業務処理部６６によって実行される。起動業務処理部６６は、再カットによる出金を受動業務処理部６８に依頼する。受動業務処理部６８はその勘定日の残高に基づいて出金の可否を判定する。出金可能であれば、口座残高を減額すると共に、それよりも先日付の残高を更新する。受動業務による残高の更新が行われると、取消再カットメインが派生トランザクションとして起動され、次に再カット可能な未成立の口座処理要求の有無を判定する。
このように、一回の口座処理要求の実行毎に同期点に達する構成としたことで、システムの運用効率を高めつつ、一つの原因で多数発生するかもしれない取消処理及び再カット処理の安定した厳格な実行を実現している。
【０１５５】
また、図１５に示す例では、第３実施形態での修正再実行と同様の機能を実現するために、取消再カットメイン処理部７０が、残不足明細セグメントに格納され先日付の口座処理要求である起動業務のうち、最も優先順位の高い起動業務を高優先業務として特定する高優先業務特定機能７８と、取引明細セグメント１２に格納され先日付で成立済みの起動業務のうち前記高優先業務の優先順位よりも優先順位の低い起動業務群によって利用された出金額の合計額を先日付の勘定日での修正出金可能額として算出する修正出金可能額算出機能８０と、先日付の勘定日での修正出金可能額に基づいて前記残不足明細に格納された前記高優先業務の口座処理要求が決済可能となるか否かを判定する修正再カット可否判定機能８２と、この修正再カット可否判定機能８２によって前記高優先業務が決済可能と判定された場合には当該口座処理要求の修正再カットを前記起動業務処理部に派生トランザクションとして実行させる修正再カット起動制御機能８４とを備えている。
【０１５６】
この機能７８，８０，８２，８４により、トランザクションの入れ替えを行う。すなわち、先日付で成立している優先順位の低い口座処理要求を取り消して、より優先順位の高い口座処理要求を決済することができる。このため、口座処理要求の処理順序に関わらず、残高が不足する場合には、予め定めた優先順位に従った決済を行うことができる。
【０１５７】
本実施形態が、修正再カットの機能と再カットの機能との両方を有するのは、演算日当日に口座残高が増加した場合、当日に取引明細に格納されている取引の取消は行わないため、修正再カットではなく、再カットするためである。すなわち、修正再カットは他の口座処理要求の取消を前提とするため、取消が可能な先日付の勘定日の取引にのみ用いられる。また、優先順位を詳細に設定し、一定以上の優先順位の場合に修正再カットを行うようにしてもよい。特に優先すべき種類の口座処理要求についてのみ修正再カットを行うと、多少であるがシステムの運用負荷が小さくなる。
【０１５８】
また、本実施形態においても、応答性を確保しつつ複雑な処理を実現するために、派生管理フラグを用いたスパイラル処理制御により、派生トランザクションを活用する。すなわち、取消再カットメイン処理部は、どのような理由で自らが起動され、前回の処理がどこまで進行したかを、派生管理フラグにより判断することができる。
【０１５９】
図１５に示す例では、取消再カットメイン処理部７０は、前記起動業務の取消又は再カットを派生トランザクションとして起動した場合には当該起動内容を示す派生管理フラグを前記起動業務処理及び当該起動業務処理部によって連動される受動業務処理に渡すフラグ渡し制御機能８６と、前記受動業務処理部から前記取消再カットメインプログラムが派生トランザクションとして起動された場合には、前記派生管理フラグを参照して前記再カット起動制御機能７６又は前記修正再カット起動制御機能８４を前記残不足明細セグメントに対象となる残不足明細がなくなるまで連続させるスパイラル処理制御機能８８とを備えている。
【０１６０】
「対象となる残不足明細がなくなる」というのは、優先順位に従って順に再カット又は修正再カットしていき、最後に最も優先順位の低い口座処理要求の再カット可否の判定及び可能な場合の再カット起動が完了した、ということである。また、先日付の勘定日が複数ある場合には、本実施形態では再カット期限を振替日当日のみとして説明しているため、演算日当日の再カットを優先し、続いて、演算日に最も近い将来の勘定日から遠い将来の勘定日まで順に処理すると良い。近い先日付から処理し、遠い先日付に至る順序で再カットを行うと、再カット完了後に取消を行う必要がない。
【０１６１】
図１６は取消再カットメイン処理部７０によるスパイラル処理の一例を示す説明図である。図１６に示す例では、起動処理と受動処理とは連動し、一つのトランザクションとして実行される。例えば取消処理を行う起動処理Ｓ３１は、取消による口座残高の増額を受動処理Ｓ３２に連動依頼する。この起動及び受動処理は、受動処理が成立し、その成立に応じた処理が起動処理側で完了したときに、同期点に達する（Ｃ５）。取消再カットメインを派生起動するタイミングは任意であるが、この起動及び受動業務が同期点に達した後に取消再カットメインの処理が開始されるようにするとよい。すなわち、起動及び受動の連動トランザクションと、取消再カットメインとなる派生トランザクションとは、直列性を保つと良い。
【０１６２】
取消再カットメインは、派生管理フラグと、各セグメント１２，１４，１６とを参照して、口座を最適化（または、業務としての一貫性の回復）のためにどのような処理をすべきかを判定し、その判定結果に従って取消処理や、修正再カット処理や、再カット処理を派生トランザクションとして起動する。取消再カットメインは、まず、先日付の勘定日にて出金可能額がマイナスとなっているか否かを判定する。そして、マイナスとなっている場合には（分岐Ｂ１）、マイナスとなっている勘定日での優先順位が最も低い口座処理要求を取り消す取消処理を派生起動する。取消処理を派生起動すると、取消再カットメインは同期点に達し、終了する。
【０１６３】
起動処理Ｓ３１及び受動処理Ｓ３２の連動によって取消が行われ、取り消された金額分口座残高が更新された後に、取消再カットメインは再度出金可能額を確認し、マイナスであれば、この時点で最も優先順位の低い口座処理要求の取消処理を派生起動し、その後コミットＣ１する。この取消処理の繰り返しを、ここでは取消スパイラルＳＰ１と呼ぶ。取消スパイラルＳＰ１は、出金可能額のマイナスがなくなると終了する。
【０１６４】
口座残高が増額された場合や、出金可能額のマイナスがなくなった場合には（分岐Ｂ２）、修正再カットの可否を判定する。図１５に示す各機能７８，８０，８２を用いて、修正出金可能額と最高位（高優先業務）の口座処理要求の比較を行う。修正再カットが可能であれば（分岐Ｂ３）、修正再カット処理を派生トランザクションとして起動する。修正再カットを起動すると、取消再カットメインは同期点Ｃ２に達し、処理を完了する。
【０１６５】
修正再カットが起動処理Ｓ３４及び受動処理Ｓ３５の連動によって実行され、同期点Ｃ５に達すると、取消再カットメインが起動される。取消再カットメインは、修正再カットによって出金可能額がマイナスになった勘定日について、取消スパイラル処理ＳＰ１を実行する。出金可能額がプラスとなると（分岐Ｂ２）、再度修正再カットの判定を行う。このときには、未成立で残不足明細セグメント１６に格納されていた口座処理要求のうち、最も優先順位の高かった口座処理要求はすでに修正再カットされている。一方、優先順位の低い口座処理要求が残不足明細に新たに格納されている。修正再カットを繰り返すと、取引明細に格納された口座処理要求の優先順位が、残不足明細に格納された口座処理要求群の優先順位よりも高くなる。この状態では、修正出金可能額の算出ができなくなるため、修正再カットは不要と判定される（分岐Ｂ４）。
【０１６６】
修正再カットができない口座処理要求が、再カットされることはない。再カットの判定では、修正再カットの対象となっていない口座処理要求の再カットを検討する。ここでは、当日の口座処理要求や、修正再カットを行わないと判定された優先順位の低い口座処理要求の再カット可否を判定する。具体的には、処理対象とする勘定日（例えば、演算日当日）を勘定日とする未成立の口座処理要求のうち、最も優先順位の高い口座処理要求の取引金額（出金額）と対象勘定日の出金可能額とを比較する。取引金額が出金可能額より小さければ、再カット可能であるため、その口座処理要求の再カットを派生トランザクションとして起動し、コミットＣ３する。
【０１６７】
起動処理Ｓ３７及び受動処理Ｓ３８は連動して再カット処理を行い、同期点に達した後に再度派生再カットメインが起動される。再カットによってその勘定日での出金可能額がマイナスとなることはないが、それよりも先日付にてマイナスになることはある。この場合、まず取消スパイラルにより取消ＳＰ１を行う。再カットを行った場合、修正再カットの判定をせずに再カットの判定を行う。これは、派生管理フラグを用いると良い。再カットを行った勘定日にて、さらに別に未成立の口座処理要求があれば、その中で最も優先順位の高い口座処理要求の再カットを判定し、再カット可能であれば、派生トランザクションとして再カットを起動する。この再カットスパイラルＳＰ２によって、各勘定日のすべての口座処理要求の再カットを試みる。残高と取引金額の関係によっては、優先順位の高い口座処理要求が決済できず、優先順位の低い口座処理要求が決済できることもある。
【０１６８】
出金可能額にマイナスがなく、修正再カットが完了し、再カットの対象がない場合には、取消再カットメインは処理を完了する。一般的には、残高が減少した場合には取消スパイラルＳＰ１が動作し、残高が増加した場合には修正再カット及び再カットスパイラルＳＰ２が動作する。図１６に示すように、起動及び受動による連動トランザクションと、取消再カットメインでのトランザクションを別のトランザクションとしたため、起動及び受動による連動トランザクションはその処理の完了の直後同期点に達し、これにより、端末等に対する良好な応答性を確保することができる。また、取消再カットメインが、この派生トランザクションを活用して口座処理の最適化を順次実行するため、先日付での取消の発生を前提とした先日付完結処理を厳格に実行することができ、さらには、優先順位による決済という複雑な処理を安定して実現することができ、また、先日付完結処理であるため、優先順位に基づいた処理を行いつつ、２４時間連続稼働を行うことができる。さらに、取消再カットメインが、口座残高に異動が生じるごとに口座処理要求の優先順位に基づいた最適化を実行するため、口座処理要求の実行順序が限定されることがなくなる。
【０１６９】
図１７は、本実施形態による取消再カットメイン処理部による修正再カット処理を含めた処理例を示すフローチャートである。図１７に示すように、先日付完結処理方法では、まず、勘定日毎の出金可能額を日付チェックテーブルとして算出する（ステップＳ４１）。続いて、出金可能額のマイナスがあるか否かを判定し（ステップＳ４２）、出金可能額マイナスの勘定日がある場合には取消処理を起動して終了する。一方、出金可能額にマイナスがなければ、残不足明細セグメントに格納され先日付の口座処理要求である起動業務のうち最も優先順位の高い起動業務を高優先業務として特定する（ステップＳ４４，高優先業務特定工程）。
【０１７０】
続いて、取引明細セグメントに格納され先日付で成立済みの起動業務のうち、前記高優先業務の優先順位よりも優先順位の低い起動業務群によって利用された出金額の合計額を先日付の勘定日での修正出金可能額として算出する（ステップＳ４５，修正出金可能額算出工程）。さらに、先日付の勘定日での修正出金可能額に基づいて、前記残不足明細に格納された前記高優先業務の口座処理要求が決済可能となるか否かを判定する（ステップＳ４６，修正再カット可否判定工程）。そして、この修正再カット可否判定工程にて前記高優先業務が決済可能と判定された場合には当該口座処理要求の修正再カットを前記起動業務処理部に派生トランザクションとして実行する（ステップＳ４７，修正再カット工程）。修正再カットを実行すると、処理を終了する。
【０１７１】
取消再カットメインのスパイラル制御によって、この修正再カット工程Ｓ４７によって修正再カットが制御され、その後、先日付の勘定日での出金可能額がマイナスとなった場合には、当該勘定日の取引明細セグメントに格納された口座処理要求のうち優先順位の低い順に当該出金可能額がプラスとなるまで口座処理要求を取り消すこととなる（修正再カット後取消工程）。
【０１７２】
修正再カットの対象がなければ、再カットの対象が再カット可能であるか否かを判定し（ステップＳ４８）、再カット可能であれば当該再カットを起動する（ステップＳ４９）。
【０１７３】
単純に再カットを演算日当日、修正再カットを先日付とする場合には、再カットの判定を修正再カットの判定よりも先に行うようにしても良い。先日付完結処理では、当日の再カットよりも先日付の再カットの方が処理数が多いため、図１７に示す順序とし、当日の再カットによって先日付にて出金可能額がマイナスとなった場合にのみ、先日付の取引を取り消すようにしてもよい。
【０１７４】
図１５、図１６に示す取消再カットメイン処理部の機能や、図１６に示す取消再カットメイン処理の処理工程は、図１５に示す演算手段４が取消再カットメインプログラムを実行することで実現できる。例えば、取消再カットメインプログラムは、前記演算手段４を動作させる指令として、残高明細に基づいて勘定日毎の出金可能額を算出すると共に、先日付の勘定日での当該出金可能額がマイナスとなり決済不能となる場合には、当該決済不能となる勘定日での複数の決済済みの口座処理要求のうち優先順位の低い口座処理要求の取消を前記起動業務処理部に派生トランザクションとして実行させる取消起動制御指令を備える。これにより、図１６に示すステップＳ３３の部分や、図１７に示すステップＳ４１，Ｓ２４，Ｓ４３等の処理を実現できる。
【０１７５】
取消再カットメインプログラムは、また、残高明細に基づいて勘定日毎の出金可能額を算出させると共に、演算日時当日又は先日付の勘定日での出金可能額に基づいて前記残不足明細に格納された当日又は先日付の勘定日で未成立の口座処理要求のうち優先順位の高い順に各口座処理要求が決済可能となるか否かを判定させる再カット可否判定指令と、この再カット可否判定機能によって決済可能と判定された未成立の口座処理要求がある場合には当該口座処理要求の再カットを前記起動業務処理部に派生トランザクションとして実行させる再カット起動制御指令とを備える。
【０１７６】
さらに、修正再カットを行う機能７８，８０，８２，８４や、その処理工程（Ｓ４４，Ｓ４５，Ｓ４６，Ｓ４７及びマイナス後の取消Ｓ４２，Ｓ４３）に応じて、各種の指令を備えるようにしてもよい。この場合、取消再カットメインプログラムは、残不足明細セグメントに格納され先日付の口座処理要求である起動業務のうち最も優先順位の高い起動業務を高優先業務として特定させる高優先業務特定指令と、取引明細セグメントに格納され先日付で成立済みの起動業務のうち前記高優先業務の優先順位よりも優先順位の低い起動業務群によって利用された出金額の合計額を先日付の勘定日での修正出金可能額として算出させる修正出金可能額算出指令と、先日付の勘定日での修正出金可能額に基づいて前記残不足明細に格納された前記高優先業務の口座処理要求が決済可能となるか否かを判定させる修正再カット可否判定指令と、この修正再カット可否判定機能によって前記高優先業務が決済可能と判定された場合には当該口座処理要求の修正再カットを前記起動業務処理部に派生トランザクションとして実行させる修正再カット起動制御指令とを備える。
【０１７７】
図１８は修正再カット処理の一例を示す説明図である。図１８に示す例では、通番００１の支払Ｂ１，通番００２の支払Ａ１，通番００３の支払Ｂ２がこの順で実行されている。１１日の当初の残高は３０，０００で、支払Ｂ２の成立時の残高は１０，０００となる。ここで、通番００４の支払Ａ２が入力されたとする。残高１０，０００に対して、出金額１９，０００であるため、決済できず、受動処理は、この支払Ａ２を残不足明細に格納し、続いて、取消再カットメインを起動する。
【０１７８】
図１６を参照すると、取消再カットメインでは、まず、出金可能額のマイナスがあるか否かを判定する（Ｓ３３）。出金可能額のマイナスはないため（分岐Ｂ２）、続いて修正再カットの可否を試みる。残不足明細に格納された口座処理要求は支払Ａ２のみであるとすると、支払Ａ２の優先順位が最も高いものとなる。図１７を参照すると、支払Ａ２が高優先業務となる（ステップＳ４４）。この高優先業務の優先順位１よりも優先順位が低く、１１日を勘定日として成立している口座処理要求は、支払Ｂ１とＢ２とである。その取引金額の合計は１０，０００であり、出金可能額が１０，０００であるため、これを合計した修正出金可能額は２０，０００である（ステップＳ４５）。続いて、再カット可能であるか否かを判定する。再カットは可能であるため（ステップＳ４６）、修正再カットを派生トランザクションとして起動する。
【０１７９】
再度図１７を参照すると、起動処理Ｓ３４と受動処理Ｓ３５の連動により、支払Ａ２が再カットされる。そして、受動処理Ｓ３５は残高を更新し、１１日の残高はマイナス９，０００となる。受動処理Ｓ３５によって起動された取消再カットメインは、出金可能額がマイナスであるため、取消スパイラルＳＰ１により、支払Ｂ１及びＢ２を取り消す。受動処理Ｓ３２は、これらを残不足明細セグメントに登録する。これにより、優先順位の低い支払Ｂ１，Ｂ２と、優先順位の高い支払Ａ２とを実行順序に関わらず入れ替えることができた。
【０１８０】
支払Ｂ１及びＢ２の取消後、取消再カットメインは出金可能額を確認する。１１日の出金可能額は１，０００であり、プラスである。次に、修正再カットを検討し、修正出金可能額を算出しようとするが、支払Ｂ１，Ｂ２の優先順位よりも優先順位の低い業務は成立していないため、修正出金可能額の算出ができない。再カットについても、残不足取引金額が８，０００、２，０００であるため、残高の１，０００では決済できない。従って、この決済の状態が優先順位に従った決済である。このため、取消再カットメインのスパイラル制御は終了する。
【０１８１】
【第１実施例】
次に、本発明の実施例を図面を参照して説明する。本実施例では、口座処理要求について、二桁の数値による優先順位が予め定義されている。優先順位は、００から９９までであり、００から８９（≠９ｘ、ｘ＝０，１，２，…）までを優先順位の第１群とし、９０から９９（９ｘ）までを優先順位の第２群としている。優先順位としては、００が一番高い高優先業務で、９９が最も低い。優先順位が同一の場合、当初の入力処理順等に従って取消又は再カットの順序を定める。再カット期限が２日以上のものは、処理の関係上もあり、優先順位の第１群に属するものとしている。再カット期限が振替日当日のみのものは、９ｘ（第２群）に属する。再カット期限が２日以上ある場合には、例えば、１０日から３ヶ月間再カット可能な口座処理要求では、先日付の１０日に決済不能であっても、より先日付の１１日での決済が可能な場合がある。このときには、１１日で決済する。一方、１０日の残高が増加した場合には、第１実施形態で概説したように、１１日の口座処理要求を取り消し、１０日を勘定日として決済とする。これを前倒と呼ぶ。
【０１８２】
その他、本実施例では、公共料金の振替など外部から依頼される自動振替による決済（外部自振）や、融資回収や定期積金のために預金口座から出金を行う内部自振を実現するための各種マスタやデータベースについても簡単に説明する。さらに、第４実施形態にて説明した起動処理及び受動処理と実際に実行するプログラムとの関係を開示する。
【０１８３】
そして、本実施例では、優先順位に２群あり、再カット期限が２日以上の可能性があるという前提での取消再カットメインの詳細と、その動作例を開示する。
【０１８４】
図１９は、本実施例による先日付完結処理システムを含む勘定系のシステム構成例を示すブロック図である。図１等に示す受信手段２は、図１９に示す例では、通信制御装置１０１と、所定のプログラムを実行するＣＰＵと、媒体読取部１００Ａによって実現される。媒体読取部１００Ａとは、外部から持ち込まれる持ち込み媒体１００Ｂに記録された自振の依頼用データ等を読み取る。
【０１８５】
通信制御装置１０１は、内部（行内）ネットワーク３Ａと、対外ネットワーク３Ｂと接続されている。各ネットワーク３Ａ，３Ｂは、物理的、論理的に多数のネットワークを含むようにしても良い。通信制御装置１０１は、内部ネットワーク３Ａを介して、顧客とのオンライン取引に用いられるＣＤ／ＡＴＭ１Ａと、営業店内に配置され営業店の担当者によって操作される営業店端末１Ｂと、顧客からの電話による取引を遂行するためのテレフォンバンキングセンタ１Ｃと接続されている。
【０１８６】
また、通信制御装置１０１は、対外ネットワーク３Ｂを介して他の金融機関との為替等の通信を制御する全銀センタ１Ｄや、その他の外部センタ１Ｅや、ファームバンキングやインターネットバンキングを行う顧客のパーソナルコンピュータ等の顧客ＰＣ１Ｆや、携帯電話等の顧客携帯端末１Ｇと接続されている。
【０１８７】
各端末１Ａ，１Ｂ，１Ｃ，１Ｆ，１Ｇや、センタ１Ｄ，１Ｅ等から、通信制御装置１０１を介してＣＰＵに入金や出金の要求が入力される。全銀センタ１Ｄは、全国銀行データ通信システムのセンタである。個人情報センタや、他行コンピュータセンタと接続されている。振込、送金等の為替取引を行う要求指令（電文）が送受信される。
【０１８８】
外部センタ１Ｅは、金融機関の業態別に構築された各種のネットワーク（地方銀行のＡＣＳ，都市銀行のＢＡＮＣＳ，全国キャッシュサービスのＭＩＣＳ等）のセンタや、ファームバンキング（ＦＢ）やエレクトロニックバンキング（ＥＢ）や、テレフォンバンキングに必要なデータの送受信を行うためのセンタ（例えば、ＡＮＳＥＲ）や、販売店のＰＯＳシステムやクレジットカード決済用の端末との通信を行うためのセンタ（例えば、ＣＡＦＩＳやＤＣＳ）である。この外部センタからは、通知、照会、資金移動など、金融機関窓口で可能な種々の取引を行う要求指令（電文）が入力される。
【０１８９】
通信制御装置１０１は、それぞれのプロトコルに従って要求指令を受信し、オンライン演算手段４を構成するＣＰＵに入力する。ＣＰＵは、各端末からそれぞれの形態で入力される要求指令を予め定められた形式の口座処理要求に変換して、口座処理を行うプログラムに引き渡す。
【０１９０】
また、公共料金の振替等（外部自振）は、持ち込み媒体１００Ｂにて持ち込まれる。ＣＰＵは、媒体読取部１００Ａによって読み取られた外部自振原データと他のデータベース（ＤＢ）を用いて口座処理要求を生成する。
【０１９１】
図１９に示す例では、勘定系システムを構成する先日付完結処理システムは、振替又は振込等の預金口座を用いた決済に関するデータを管理する外部自振関連ＤＢ１００と、自動積立や融資返済等の入出金に関するデータを管理する内部自振関連ＤＢ１０２と、決済又は入出金に用いられる預金口座に関するデータを管理する預金マスタＤＢ１０４と、自動支払機や店頭端末等との口座処理要求に応答すると共に前記入出金又は決済を実行するセンターカットを口座処理要求として処理するＣＰＵとを備えている。
【０１９２】
前記預金マスタＤＢは、図７等に示したファイル６と同様に、口座処理の順序に従った順序で口座処理要求を取引明細として勘定日及び優先順位を含めて格納する取引明細セグメント１２と、前記勘定日毎の残高を格納する残高明細セグメント１４と、決済不能で未成立の口座処理要求を残不足明細として勘定日及び優先順位を含めて格納する残不足明細セグメント１６とを備えている。
【０１９３】
図１９に示す例では、先日付完結処理システムは、外部自振関連ＤＢ１００や、内部自振関連ＤＢ１０２から抽出した外部自振原データ又は内部自振データをそれぞれ編集すると共に、１又は複数の口座処理要求からなるセンターカット電文を生成する自振入力ファイル生成手段１０５を備えている。自振入力ファイル生成手段１０５は、各自振データを編集して、口座処理要求を生成し、さらに、必要に応じて複数の口座処理要求を一つの電文へブロッキングしたり、電文の並べ替え等を行う。
【０１９４】
本実施例での先日付完結処理システムは、このオンライン演算手段４へ前記自振入力ファイル生成手段１０５Ａによって生成されたセンターカット電文を入力するセンターカット電文入力手段１０５Ｂを備えている。自振入力ファイル生成手段１０５Ａが、外部自振データと内部自振データをそれぞれ生成又は抽出しておき、これらの自振データからセンターカット電文を生成する。この自振入力ファイルのデータ構造を予め定められた形式としておくことで、外部自振と内部自振とを並行又は連続して実行することができる。
【０１９５】
さらに、オンライン演算手段４は、外部自振関連ＤＢ１００、内部自振関連ＤＢ１０２から抽出したデータに基づくセンターカット電文や、オンライン応答部１０６Ａを介して入力される口座処理要求を処理する起動業務処理部１０８と、預金マスタＤＢを管理する受動業務処理部１１０とを備えている。図１９に示す例では、説明を簡略化するために、預金マスタＤＢ１０４に残高が格納されている預金を用いた決済の要求を処理する例を説明する。この預金マスタＤＢを用いた決済処理のほか、オンライン演算手段４は、通帳への記帳の要求や、融資実行の登録や、データベースの再編成など種々の業務処理要求を種々の資源を用いて処理する。
【０１９６】
また、オンライン演算手段は、ＡＴＭ１Ａ等からの口座処理要求をリアルタイムに実行するオンライン応答処理部１０６Ａを備えている。オンライン応答処理部１０６Ａは、当日の入出金指令に応答するほか、振込予約等を受け付ける。
【０１９７】
図１９に示す例では、起動業務処理部１０８は、センターカット電文による口座処理要求と、オンライン応答部１０６Ａを介した口座処理要求とを、勘定日毎の残高明細セグメント１４に基づいて処理する。起動業務処理部１０８は、実行中の起動業務プログラム群と単一のトランザクションとしての連動を受動業務処理部１１０に依頼する。受動業務処理部１１０は、起動業務処理部１０８によって連動依頼される勘定日毎の口座残高の出金又は入金等の受動業務を前記各セグメント１２，１４，１６を用いて実行する。この受動業務は、残高の確認処理、要求された残高の預金マスタＤＢへの更新処理、及び残高が更新された場合の先日付の勘定日での残高の更新処理等を含む。受動業務処理部１１０は、当該受動業務の実行によって前記勘定日毎の残高明細が変化した場合には、取消再カットメインプログラムを当該起動業務及び受動業務が連動した単一のトランザクションとは異なる他の派生トランザクションとして起動する。
【０１９８】
取消再カットメインプログラムが派生トランザクションとして起動されると、オンライン演算手段の一部は取消再カットメイン処理部１１２として機能する。取消再カットメイン処理部１１２は、受動業務処理部１１０によって起動された状態の前記残高明細セグメントに基づいて各勘定日毎の出金可能額を日付チェックテーブルとして算出すると共に、生成した日付チェックテーブルに基づいて一つの口座処理の取消又は再カットを派生トランザクションとして起動する。取消処理又は再カット処理を派生トランザクションとして起動すると、起動業務処理部１０８は、この取消処理又は再カット処理を実行する。
【０１９９】
この取消再カットメイン処理部１１２は、第４実施形態と同様に、前記取消又は再カットとして起動するトランザクションに派生管理フラグを渡すと共に当該起動した起動業務と受動業務からなるトランザクションから渡される派生管理フラグに基づいて前記各セグメントに対する探索を継続するスパイラル処理制御機能１１４を備えている。
【０２００】
また、オンライン演算手段（または起動業務処理部１０８）は、口座処理要求の種別に応じて各ＤＢ１００，１０２，１０３，１０４を参照して口座処理内容を算出するセンターカット時参照機能を備えるようにしても良い。この場合、定期の利率や、融資の利息や延滞金の額や、カードローン自動融資額などを、口座処理時に確定し、処理する。センターカット時参照機能により、最新の情報に基づいた先日付処理が可能となり、また、口座処理要求の書式や、口座処理要求の実行プログラムや、自振入力ファイル生成手段の構成を簡略化することができる。この場合、取消再カットメイン処理部１１２は、実際に再カットできるか否かを問うことなく、当初に実行された際の取引金額に基づいて、再カットができそうであれば再カットを起動する。また、取消については、優先順位が最も低い口座処理要求を取り消し、再度起動されたときに出金可能額を確認する。このため、取消再カットメイン処理部１１２が、起動業務処理部１０８によって実行されるすべての処理内容を把握する必要はない。
【０２０１】
また、勘定系システムは、図１等に示すファイル６や融資マスタＤＢ等を記憶するファイル記憶部と、ＣＰＵによって実行される各種プログラムを記憶するプログラム記憶部と、ＣＰＵによる口座処理や各種契約の登録等の実行結果をログとして記憶するログ記憶部と、顧客に発送する帳票等を印刷する印刷部とを備える。
【０２０２】
図２０は、預金マスタを用いた決済（自動振替，自振）に関連するデータベースの一例を示す説明図である。自振のタイプとして、勘定日をキーとして口座処理要求を読み出すタイプと、勘定日の特定時刻をキーとして実行するタイプとがある。通常の外部自振や内部自振は、勘定日をキーとする口座処理である。外部からの持ち込み媒体１００Ｂによる口座振替や、顧客ＰＣ１Ｆ等の操作に応じた振込や振替は、自振原データファイルに格納される。融資の約定返済日を勘定日とする口座振替での返済や、自動的な定期化サービスなどによる定期預金への入金などは、内部の各種ＤＢへの登録データに基づいて口座処理要求が抽出される。
【０２０３】
融資の返済や、積立や、自動定期化サービスなどは、特約管理ＤＢへ蓄積された情報に基づいて内部自振データが抽出される。定期の期間が満了したときに自動継続するための口座処理などについては、期日管理ＤＢに蓄積された情報に基づいて内部自振データが抽出される。
【０２０４】
勘定日の特定時刻をキーとする自振としては、例えば手形小切手の資金化や、カードローンの自動融資などがある。これは、勘定日が満了するまで又は所定の入金待ち終了時刻に至ったときに決済不能である場合には、カードローンによる自動融資を行うものである。このカードローンによる自動融資は、担保定期による貸越極度内の自動融資と異なり、ローンの対象とする口座処理が限定され、かつ、勘定日の満了直前に入金が無い場合に自動融資するものである。このような特定時刻をキーとする自振の管理には、再カット管理ＤＢを用いる。再カット管理ＤＢは、所定の勘定日の予め定められた時刻以降に処理する口座処理を管理する。自振入力ファイル生成手段１０５Ａは、この再カット管理ＤＢに管理される口座処理要求のうち、勘定日が当日である口座処理要求を、口座処理要求の種別に応じて予め定められた時刻以後に抽出する。
【０２０５】
また、自動定期化サービスを実行するべく、先日付で普通預金口座からの出金と定期預金口座への入金を処理した後に、当該勘定日の満了前に定期入金の金額の変更等が依頼されることがある。この場合、営業店の端末のオペレーションにより、既に実行した関連する口座処理の取消と、新たな契約での口座処理の実行を行う。このような勘定日又はその直前での変更による口座処理要求は、追い上げ分ＤＢに登録される。
【０２０６】
図２１は、外部自振を処理するオンライン演算手段４の一部構成を示すブロック図である。外部自振の先日付センターカットでは、持ち込み媒体からの入力処理を行い、続いて、口座の照合及び抽出処理を行い、そして、センターカット電文を生成する。まず、事前に、電力会社等の自振の依頼先を介して、口座を用いた自振を行う旨の受託契約書を受け取る。この受託契約を、受託契約管理ＤＢ等に登録する。受託契約管理ＤＢには、自振の依頼者（振替等の委託者）に関する情報が登録される。自振契約者（振替を口座で行う口座の名義人等）に関する情報については、例えば預金氏名ファイル１００Ｄ等を使用する。外部自振としては、電気、ガス、水道、税金、年会費の支払、企業等の口座からの給与の振込などの出金や、従業員の口座への給与振込等の入金などがある。
【０２０７】
そして、例えば毎月の特定日に、ＭＴや、ＦＤなどの持込媒体１００Ｂや、ＦＢ端末となるＰＣ１Ｆや、インターネットバンキングを行うＰＣ１Ｆ等を介して、口座振替の依頼を受け取る。入力処理では、受託契約管理ＤＢの内容と、持込媒体１００Ｂ等による口座振替の依頼とを照合し、支店や口座が存在しない等のエラーが生じた場合を除いて、口座振替の依頼を予め定められたデータ構造である自振原データファイル１００Ｃに変換する。このとき、外部自振の決済状況を管理する種別決済状況ＤＢや、外部自振の進行を管理する受託運行管理ＤＢに自振の情報を登録する。また、自振通番は、この自振原データへの登録時に採番する。自振の種類毎の優先順位をこの自振原データ登録時に付与するようにしても良い。この場合、自振入力ファイル生成手段１０５Ａが、口座処理要求毎にその種別に応じた優先順位を付与する優先順位付与部１０５Ｄを備える。
【０２０８】
図２１に示す例では、自振入力ファイル生成手段１０５Ａは、各ＤＢの自振関連情報を照合し、データを抽出する自振データ抽出部１０５Ｃを備えている。自振データ抽出部１０５Ｃは、外部自振に関しては、預金者の氏名等を登録した預金者氏名ファイルと、自振原データファイル１００Ｃに格納された自振原データとを照合し、依頼者から自振の依頼を受けた口座番号等に関してエラーがあるか否かを判定する。正常であれば、自振入力ファイル生成手段１０５Ａは、自振原データからセンターカット電文を生成する。例えば、５つの口座処理要求を一つの電文へとブロッキングする。
【０２０９】
センターカット電文の実行は、例えば、口座処理要求の勘定日の前営業日に行う。すると、口座処理要求は先日付にて決済される。口座処理が決済されると、種別決済状況ＤＢ１００Ｅにて決済金額等を集計する。そして、自振原データ１００Ｃにも決済済み又は決済不能の情報を登録する。自振原データ１００Ｃに予め決済済みというビットを登録しておく場合には、決済できた場合には何も処理を行わない。残不足にて決済不能であった場合に、自振原データファイルに当該口座での決済が不能であったことを示すビットを付する。これらの外部自振関連のＤＢの管理は、起動業務側が行う。また、決済不能の場合には不渡管理ＤＢにも情報登録するようにしても良い。この場合、センターカット不渡り一覧の照会が可能となり、店頭等での事務処理効率が向上する。
【０２１０】
外部自振が再カットされた場合や、取り消された場合には、自振原データファイル１００Ｃのビットや、種別決済状況ＤＢ１００Ｅの内容を更新する。そして、振替日当日を迎えたときに、決済済みの口座処理要求は確定する。また、勘定日当日にて再カットされた場合は、その再カットの口座処理要求が確定する。一方、勘定日当日に入金の可能性がなくなった場合や、勘定日当日から次の営業日へと日付変更されたときに、決済不能であることが確定する。これらの口座処理要求の確定に従って、自振原データファイルに登録された決済不能であったビットも確定する。
【０２１１】
外部自振が確定すると、受託運行管理ＤＢや、種別決済状況ＤＢに登録された自振金額等に基づいて、口座振替によって振り替えた総額を集計し、自振の依頼者への資金決済を行う。この資金決済もセンターカットにて実行する。また、内部的に、支店間の決済等も行う。これら自振関連ＤＢを用いた外部自振の進行管理は、起動業務側での処理となる。受動業務側では、起動業務から出金要求や取消による入金（増額）の要求を受けたときに、この起動業務と連動して預金マスタＤＢを管理する。
【０２１２】
図２２は、融資の回収を自動引落を用いて行う場合の構成を示すブロック図である。融資の回収をセンターカットで実行するには、内部自振関連ＤＢの一種である特約管理ＤＢ１０２Ｂを用いる。特約管理ＤＢは、図２０に示すように勘定日をキーとして口座処理要求を読み出すためのＤＢである。まず、融資が実行されると、融資マスタ１０２Ｃに種々の情報を登録する。このとき、融資の回収のための自動振替の振替日を、特約管理ＤＢに登録しておく。特約管理ＤＢでは、融資を特定する番号と、振替を行う口座番号等の口座処理要求の契機となる情報のみを登録している。
【０２１３】
自振入力ファイル生成手段１０５Ａは、特約管理ＤＢから勘定日をキーとして融資返済のための口座処理要求をセンターカット電文として生成する。この口座処理要求は、先日付にて入力される。起動業務処理部１０８は、回収額の算出を行う。これは、元金に約定利息を加算したものである。すなわち、融資回収のセンターカットは、実行されるまで出金金額は不明である。このとき、約定利息は、変動利率の場合にも、先日付の勘定日での利率で算出する。これら回収額の算出に必要な情報は、起動業務処理部が収集する。このように、融資等の内部自振の場合には、その最初の実行時に詳細が定まることがある。このため、図２２に示す例では、起動業務処理部１０８が、口座処理要求毎にその種別に応じた優先順位を付与する優先順位付与部１０５Ｄを備えるようにしてもよい。
【０２１４】
回収額が算出されると、振替口座への出金を連動取引にて要求する。受動業務処理部１１０は、当該勘定日の残高明細に基づいて出金の可否を判定し、支払または支払不能を返す。受動業務処理部１１０は、出金した場合には残高を更新し、出金不能であった場合には当該回収額と共に残不足明細に登録する。
【０２１５】
融資回収の起動業務側では、出金できた場合には、融資取引履歴ＤＢの登録や、融資マスタ１０２の融資実行明細セグメントの洗替えを行う。例えば、次回償還日、利率、償還額、約定残高等を更新する。また、支店別の極度枠等の残高を更新する。そして、銀行側の会計に必要な日計勘定等の更新を行う。一方、出金不能であった場合には、延滞処理を行う。融資マスタ１０２の延滞管理セグメントへの登録や、不渡管理ＤＢ１０２Ａへの登録などである。
【０２１６】
この融資回収の起動業務側では、現に実行している口座処理が後に取り消される場合や、再カットされる場合に備えて、当該口座処理にて変更する融資マスタ１０２Ｃ等の直前のデータや、回収額等を洗替え前情報として登録すると良い。この口座処理要求が取り消される場合には、種々の情報に基づいて再度融資マスタを更新するのではなく、洗替え前情報に基づいて取消を行うことで、取消処理に要する処理量を減少させることができる。
【０２１７】
また、融資回収の場合には、一般的に、再カット期限を３ヶ月としている。従って、約定返済日から数日後に再カットされる場合がある。融資回収の起動業務では、再カット処理を行う際に、約定返済日から再カットする勘定日までの延滞利息を回収額に加算する。従って、取消再カットメインが再カット（または、修正再カット）可能と判定したが、実際には再カットできない場合も生じる。再カットに成功すると、融資回収の起動業務は、融資マスタや不渡管理ＤＢ１０２Ａの内容を更新する。
【０２１８】
定期積金や、定期の更新などについても、ほぼ同様の仕組みで実現することができる。
【０２１９】
次に、起動業務と受動業務と、実際に実行されるプログラムとの関係を説明する。図２３（Ａ）は、先日付完結処理の一部構成を示すブロック図である。図２３（Ａ）に示す例では、先日付完結処理システムは、オンラインの口座処理要求及び自振データによる口座処理要求の全部又は一部を処理するサブプログラムデータを複数記憶したプログラム記憶手段１０６Ｂと、前記口座処理要求の実行時に使用するサブプログラム名及びサブプログラムの実行順序が前記口座処理要求の種別を示すオペコード別に格納されたオペコードテーブルを記憶したオペコードテーブル記憶手段１０６Ｃとを備えている。
オペコードは、例えば数値列で、普通預金入金や、定期入金の取消など、口座処理要求の種別を表すコードである。本実施例では、このオペコードと、勘定日や取引金額の組み合わせが、口座処理要求である。
【０２２０】
そして、サブプログラムがそれぞれ、前記オンラインの口座処理要求及び前記自振入力データによる口座処理要求に共通した処理を実行させる共通指令と、当該サブプログラムの起動形態に応じた当該サブプログラムの戻り又は他のサブプログラムの起動を行う処理を実行させる戻り／起動指令とを備えている。
【０２２１】
さらに、プログラム記憶手段１０６Ｂが、前記サブプログラムの実行中に起動され当該口座処理後に当該口座に対する口座処理がないと仮定した場合の先日付となる勘定日での口座状態を生成するために取消又は再カットする口座処理を特定する取消／再カットメインプログラムを記憶している。
【０２２２】
図２３（Ｂ）はオペコードテーブルの一例を示す説明図である。オペコードテーブルは、起動処理と受動処理とに区別して生成すると良い。起動処理としては、公共料金の引落等の外部自振や、融資や、定期や、定積に関する内部自振がある。これらの起動処理と連動して処理される受動処理の例としては、普通預金や、当座預金や、情報登録等の口座処理がある。図２３（Ｂ）に示す例では、口座処理を受動処理と起動処理とに分け、さらにそれぞれの業務毎にオペコードテーブルを作成している。
【０２２３】
図２４は、オペコードテーブルの内容の一例を示す説明図である。図２４は、普通預金のオペコードテーブルである。普通預金出金のオペコードが、「０１００１」であるとする。オペコードテーブルには、このオペコードの動作環境指定が記述されている。例えば、普通預金の出金は、土曜日にも動作し、先日付処理を行うセンター一括も行う。一方、動作のための個別の承認処理は不要である。好ましい実施例では、ある口座処理要求の取消を行うための口座処理要求を、元の口座処理要求のオペコードに一定数（例えば、５００）を加えることとするとよい。起動業務側のオペコードは、取引明細セグメントや、残不足明細セグメントの項目とすると良い。すると、取消再カットメインでの取消や再カットの起動処理をオペコードを用いて直接に行うことができる。例えば、取消明細セグメントに格納された口座処理要求の取消を派生トランザクションとして起動するには、その取消明細に格納されたオペコードに５００を加算したオペコードの派生起動を業務メインに入力する。
【０２２４】
オペコードテーブルは、各オペコードで指定される口座処理要求が予め定められた動作環境以外で動作することを防止する。例えば、何らかの不具合でセンター一括処理で行わないオペコードがセンター一括処理として入力された場合であっても、このオペコードテーブルの動作環境指定を参照することで、オンライン演算手段４はエラー出力することができる。
【０２２５】
普通預金の出金（オペコード０１００１）を例として考えると、ＡＴＭからオンライン処理として実行される場合と、外部自振や定期入金等の先日付処理で実行される場合とでは処理内容の詳細が一致しない場合がある。一方、普通預金の出金であれば、どの起動形態でも共通している処理も存在する。また、勘定日及び勘定日以後の残高を展開する処理などは、普通預金の入金及び出金で共通する処理となる。これらの口座処理とプログラムの関係を、本実施例では、図２４に示すオペコード別のプログラムリストで調整する。
【０２２６】
プログラムの起動形態としては、Ｂ：営業店端末１ＢやＡＴＭ１Ａ等の端末からその口座処理要求（オペコード）が初回に入力された場合と、Ｃ：同様の端末から連続して同一の口座処理要求が入力される場合と、Ｄ：定期の入金に対する普通預金の出金など、受動処理として単一のトランザクションの一部として起動される「被連動」の場合と、Ｅ：先日付処理にて普通預金の入金等の残高に異動があった場合の取消や再カット等を行うために、入金等のトランザクションとは異なる他のトランザクションとして起動される「被派生」とがある。
【０２２７】
前記オンライン演算手段４は、口座処理要求が入力された時に当該口座処理要求のオペコードに基づいて前記オペコードテーブルを特定する機能と、特定されたオペコードテーブルにて指定される順序で前記サブプログラムを単一のトランザクションとして実行する機能とを備えている。例えば、図２４に示す例では、オペコード０１００１で特定される口座処理要求がセンター一括にて起動された場合には、サブプログラム１０，１１，１２をこの順で一つのトランザクションとして実行する。
【０２２８】
サブプログラムの処理例を例示する。残高明細更新処理は受動業務の出金及び入金で共通して利用可能なサブプログラムであり、口座処理要求が成立して口座残高に異動が生じる場合に起動される。続いて、預金マスタＤＢ１０４から、残高明細セグメントを読み出す。そして、勘定日の古い順に残高明細を展開する。続いて、受動処理として実行中の口座処理要求の勘定日について、残高明細が有るか否かを確認する。当該勘定日の残高明細が無い場合には、勘定日当日分の残高明細エリアを作成する。続いて、その勘定日以降の先日付の各種残高を更新する。さらに、更新した残高明細セグメントを預金マスタＤＢ１０４へ更新する。そして、起動形態に応じて業務メイン等に戻る処理を行う。
【０２２９】
口座残高に異動を生じさせる口座処理要求として、通常入金処理と、通常出金処理の処理内容を説明する。通常入金処理では、まず、営業店端末や、ＡＴＭや、例えば振込を行うトランザクションなどの起動業務から、入金処理要求を受信する。続いて、この入金処理要求のフォーマットや、入金対象の口座の有無や状態を確認し、異常があればエラー処理を行う。正常であれば、入金の取引明細を作成する。続いて、上記残高明細更新処理を実行する。残高明細の更新が正常に完了すると、入金の取引ログを出力する。この取引ログは、種々の帳票の印刷や、また、管理用のデータベースの構築（ディレード処理）等に利用しても良い。そして、金融機関側の会計を管理する日計を更新する。さらに、未成立の取引の有無をチェックする。例えば、残不足明細の有無をチェックする。未成立の取引がある場合には、取消／再カットメインを派生取引として起動する。取消／再カットメインの処理完了を待たずに、通常入金処理は完了する。
残高明細の更新処理や、日計の更新等は、種々の口座処理で共通するため、オペコードテーブルのプログラムリストを用いて同一のプログラムを各種の口座処理に流用すると良い。
【０２３０】
通常出金処理では、起動業務から出金要求を受信すると、まず、フォーマット及び口座のチェックを行う。口座が取引停止等の場合には、それに応じたエラー処理を行う。フォーマット等が正常であれば、口座処理要求の残高明細にから出金可能額を算出し、出金要求額と出金可能額を比較する。出金要求額に対して出金可能額が不足で有れば、残高なしとしてエラー処理を行う。入金処理と同様に、取引明細の作成や、残高明細更新処理の起動及び戻りや、取引ログの出力や、日計の更新を行う。
【０２３１】
続いて、更新した勘定日毎の残高明細に基づいて、出金可能額がマイナスとなっている勘定日の有無をチェックする。出金可能額がマイナスとなっている勘定日があれば、取消／再カットメインを派生取引として起動し、取消／再カットメインの処理の終了を待たずに通常出金処理は終了する。一方、マイナスの出金可能額が無い場合にも、通常出金処理は終了する。
受動業務を構成する通常入金処理や通常出金処理の終了は、まず、入出金の成否を起動業務に報告し、その後、起動業務が同期点に達するまで待機する。起動業務が正常に処理を完了すると、受動業務と起動業務とは原子性を保ちつつ同期点に達する。起動業務エラーがありアボートされる場合には、受動業務側の入出金もアボートし、処理開始前の状況へと復帰させる。
【０２３２】
図２５は、本実施例にて最も特徴的な構成となる取消再カットメイン処理部１１２の詳細を中心としたオンライン演算手段４の構成を示すブロック図である。図２５に示す例では、受動業務処理部１１０は、当日に出金可能額がマイナスとなる口座処理要求をエラーとする一方、先日付の勘定日での出金可能額のマイナスを許容する決済完了性設定機能１１６を備えている。そして、取消再カットメイン処理部１１２は、前記受動業務処理部による口座処理要求の処理の結果先日付の勘定日での出金可能額がマイナスになった場合には当該出金可能額がマイナスとなった日付の出金要求を優先順位の低い順に取り消す制御をする取消起動制御機能１１８を備える。
【０２３３】
決済完了性設定機能１１６は、各取引に直接ファイナリティを与えるものではなく、例えば演算日当日に実行した口座処理は取り消さないが、先日付の口座処理は取消可能とするような設定である。他の実施例として、当日であっても口座にアクセスされるまでは演算日当日に成立した口座処理要求の取消を可能とする設定もシステム的には可能である。
【０２３４】
図２５に示す例では、取消再カットメイン処理部１１２は、スパイラル処理制御機能１１４による制御に従って動作する複数のサブコントローラー（ＳＣ）を備えている。このサブコントローラーの構成は、口座処理が、決済又は入出金の期限となる再カット期限が２日以上の可能性があり優先順位の高い第１群か、または、第１群よりも優先順位が低く再カット期限が１日である第２群とのいずれかに分類されるという前提で構築されている。
【０２３５】
具体的には、取消再カットメイン処理部１１２は、スパイラル制御により起動される毎に前記残高明細セグメントに基づいて取引のある日付毎の出金可能額を算出する日付チェックテーブル生成サブコントローラー１２０を備えている。取消再カットメインは、第４実施形態にて説明したように、スパイラル制御により繰り返し起動される。日付チェックテーブルは、その繰り返し毎に、最新の情報に基づいて作成する。取消再カットメインが起動される毎に、日付チェックテーブルを作成することで、起動時での取引明細セグメント及び残不足明細セグメントの構成（なにを成立させて、どの処理を未成立とするか）で、出金可能額がマイナスという業務レベルでの整合性（一貫性）のない状態を検出する。
【０２３６】
また、日付チェックテーブル生成ＳＣ１２０は、種々の理由により、取消再カットメインが最初に起動された、スパイラル制御の起点となる原始の口座処理の勘定日を先頭の日付（先頭勘定日）として、それ以後で先日付取引があった日付を残高明細から抽出し、それぞれの日付での出金可能額を算出する。そして、取消再カットメインは起動されたときに、当該取消再カットメインを起動した口座処理要求に関する情報を得る。従って、派生起動した受動業務にて口座残高に異動が生じた場合、その異動が生じた日付は日付チェックテーブル内に含まれる。通常、この異動が生じた日付以降の調整を行うが、修正再カットＳＣから再カットＳＣへ移行する場合などでは、日付チェックテーブル内の先の日付へと処理がシフトした後に、先頭勘定日へと処理を戻す。
日付チェックテーブルを参照すると、先日付のどの日付に取引があるかを特定することができるという意味で、この勘定日毎の出金可能額を格納するテーブルを日付チェックテーブルと呼ぶ。
【０２３７】
預金マスタＤＢ１０４が、当該預金口座の担保となる担保明細セグメントを備える例では、日付チェックテーブル生成ＳＣ１２０は、前記担保明細セグメントに基づいて前記残高明細セグメントの残高に当該担保明細による極度を加算した額を出金可能額として算出する極度加算機能１３０を備える。
【０２３８】
取消再カットメイン処理部１１２は、残不足明細セグメント１６に格納された決済済みの口座処理要求のうち優先順位が第１群（≠９ｘ）で先日付の出金要求がなくなるまで前記スパイラル制御により当該口座処理要求を取り消す先日付第１群取消サブコントローラー１２２を備えている。残不足明細に格納されたということは、約定返済日等の勘定日の初日での決済が不能であったか、または取り消されたことを意味する。そして、その後、決済済みに変化した場合には、当初勘定日が、それ以後の再カット期限内の勘定日のいずれかに決済されている。従って、前倒制御を行わなければならない可能性がある。「スパイラル制御により」というときには、本実施形態では、「一つの取消処理を起動して同期点に達し、その後取消処理の受動側から起動され、次の取消処理を起動する」という派生トランザクションの繰り返しによる制御を意味する。
【０２３９】
また、第１群（≠９ｘ）の口座処理要求は、修正再カットの対象である。第１群（≠９ｘ）の口座処理が多数成立し、一方未成立のものもある場合には、すべての組み合わせの比較を修正再カットとして行うのではなく、第１群（≠９ｘ）の口座処理を一旦全て取り消しておき、その後、優先順位の高い順に再カット又は修正再カットする方が、優先順位の反映として確実である。例えば、起動業務と受動業務とで分離し、受動業務側では融資返済の再カットでの回収額の算出を行わない（延滞金の加算をしない）場合には、実際に再カットしてみなければその後の正確な残高は判明しない。このため、第１群内（≠９ｘ）内で正確に優先順位を反映させるには、第１群の優先順位の口座処理要求を一旦全て取り消し、その後に優先順位の高い順に再カットまたは修正再カットを検討することが望ましい。
【０２４０】
第１群連続取消制御機能１３２は、一度派生トランザクションとして先日付第１群取消を起動した場合には、次回以降に取消再カットメインが派生起動された場合であっても、この先日付第１群取消の対象がなくなるまで他のＳＣの処理を行わずに先日付第１群の取消を連続させる機能である。具体的には、派生管理フラグを参照してこの連続取消を制御する。
【０２４１】
図２５に示すように、取消再カットメイン処理部１１２は、先日付第１群取消ＳＣ１２２によるスパイラル制御が完了した後に、前記日付チェックテーブルを参照して出金可能額がマイナスとなっている勘定日があるか否かを確認し、マイナスの勘定日がある場合には、当該勘定日に成立し前記取引明細セグメントに格納された口座処理要求を優先順位の低い順に前記出金可能額がプラスとなるまで前記スパイラル制御により当該口座処理要求を取り消させるマイナス時取消サブコントローラー１２４を備えている。上述した取消制御機能１１８は、このマイナス時取消ＳＣ１２４により実現する。マイナス時の取消については、第１実施形態や第４実施形態に開示した手法と同様である。
【０２４２】
図２５に示す例では、出金可能額がマイナスと成る場合の取消制御機能１３４のほか、口座残高が予め定められた金額を超えた場合に、先日付の入金を取り消す制御をするオーバー時取消制御機能１３６を備えている。オーバー時取消制御機能１３６は、例えばマル優口座にてマル優の金額を超えた額が入金される場合に、先日付にてその入金によりマル優オーバーすることが判明した時点で、その口座名義人に連絡する等のサービスに活用できる。また、この機能１３０は、複数の口座を使い分け、ある口座での残高の上限を定めておき、余剰の入金は他の口座へ入金する場合などにも活用できる。
【０２４３】
取消再カットメイン処理部１１２は、先日付第１群取消ＳＣ１２２及び前記マイナス時取消ＳＣ１２４による各スパイラル制御が完了した後、前記第１群（≠９ｘ）の優先順位で前記残不足明細セグメント１６に格納された先日付の口座処理要求を、各勘定日の出金可能額又は所定の修正出金可能額に基づいて出金可能額がマイナスとなるか又は残不足明細セグメントの走査が完了するまで前記スパイラル制御により当該口座処理要求を再カットさせる修正再カットサブコントローラー１２６を備えている。
【０２４４】
第４実施形態と異なり、本実施例では、修正再カットＳＣ１２６は、修正再カットのみならず、再カットも行う。そして、修正再カットＳＣ１２６で処理対象とする口座処理要求は、第１群（≠９ｘ）の優先順位を有する口座処理要求である。出金可能額の定義や、修正出金可能額の定義は第４実施形態と同様である。修正再カットを行うと出金可能額がマイナスとなる。この場合、マイナス時の取消が優先するため、修正再カットを連続して行うことはない。しかし、図２５に示す修正再カットＳＣ１２６は、出金可能額での決済が可能であればその出金可能額で再カットを行う。この場合、再カットが連続することはある。
【０２４５】
一方、本実施例では、再カット期限が３ヶ月の口座処理要求もある。従って、残不足明細セグメントの中から、ある勘定日の口座処理要求群のみを確認するのではなく、再カットの判定対象となる日付（対象勘定日）が再カット期限内である口座処理要求を抽出する。そして、その中で最も優先順位の高い口座処理要求を高順位口座処理要求とする。また、先日付完結処理では、先日付での入金も行う。従って、先日付である１０日には決済不能な場合であっても、１１日に決済可能な場合もある。このため、同一の残不足明細である口座処理要求を、１０日を対象勘定日として読み取り、決済不能であった場合には、１１日を対象勘定日として再カット可否を検討する。この点で、本実施例では、第４実施形態よりも修正再カットの処理が複雑になる。
【０２４６】
図２５に示す例では、修正再カットＳＣ１２６による修正再カットの対象の走査が完了した後、すなわち、修正再カット可能な残不足明細が日付チェックテーブルのすべての日付にて存在しない場合に、前記第１群及び第２群の優先順位で出金可能額内の出金要求を優先順位の高い順に前記スパイラル制御により当該口座処理要求を再カットさせる再カットサブコントローラー１２８を備えている。再カットＳＣ１２８は、優先順位が第２群（９ｘ）の先日付取引の再カットと、優先順位が第１群（≠９ｘ）又は第２群（９ｘ）の双方の演算日当日を勘定日とする再カットとを対象とする。出金可能額が増加した場合の再カット処理については、第２実施形態と同様である。
【０２４７】
図２６は、取消再カットメインによる処理の構成を示す説明図である。図１６に示す例と同様に、起動業務と受動業務とは連動し、受動処理は取消再カットメインを派生トランザクションとして起動する。また、取消再カットメインは、各ＳＣ１２２，１２２，…による判定に従って分岐する。取消再カットメインは、何らかの処理を派生起動した場合には、ハッチングを施した部分Ｃ１１，Ｃ１２…にて同期点に達し、一旦処理を終了する。一旦処理を終了するものの、取消再カットメインでの判定結果は派生管理フラグとして起動処理に渡される。ここでは、派生起動中ビット（Ｄビット）のＯＮ，ＯＦＦと、情報フラグ１，２，３，Ａ，４とを派生管理フラグとして使用する。
【０２４８】
取消再カットメインは、先日付第１群取消スパイラルＳＰＦ１、マイナス時取消スパイラルＳＰＦ２，オーバー時取消スパイラルＳＰＦ３の順に判定、実行する。そして、修正再カットＳＣでは、残不足明細に格納された第１群（≠９ｘ）の口座処理要求のうち、対象勘定日が再カット期限内で未成立の口座処理要求群を特定する。この中での高優先業務の口座処理要求の出金可能額による再カットを試みる。再カットした場合には、スパイラルＳＰＦＡによって再度修正再カットＳＣに戻り、その対象勘定日で次に優先順位の高い取引の再カットを試みる。再カット不能である場合には、成立済みの優先順位の低い取引の取消を前提とした修正出金可能額を算出し、修正再カットを試みる。修正再カット可能な場合には、次の取消再カットメインではマイナス時取消スパイラル制御ＳＰＦ１に入り、出金可能額がプラスとなれば修正再カットＳＣ１２６に戻る。
【０２４９】
対象勘定日にて修正再カットの判定まで行っていない≠９ｘの残不足明細がなくなると、日付チェックテーブルを参照して対象勘定日を次の勘定日にシフトさせる。そして、新しい対象勘定日が再カット期限内である口座処理要求の再カット、修正再カットを試みる。修正再カットの同期点Ｃ１４にて、再カット可能（Ｂ１８）とあるのは、再カット可能又は修正再カット可能という意味である。この分岐Ｂ１８でのＯＮ，Ａというのは、派生再カット中ビット（Ｄビット）がＯＮで、情報フラグがＡであることを意味する。各ＳＣは、それぞれ情報フラグが異なる。従って、前回どのＳＣで処理をしたかを情報フラグを参照することで特定することができる。
【０２５０】
以下、この派生管理フラグを用いたスパイラル制御について、各ＳＣの処理工程を参照しつつ説明する。図２６に示すように、最初の起動処理及び受動処理の連動トランザクションＳ５１から起動された直後には、派生再カット中ビットはＯＦＦで、情報フラグはない（または、１，２，３，Ａ，４以外）。この最初に取消再カットメインを起動するそもそもの口座残高に異動を生じさせた口座処理要求を、原始口座処理と呼ぶ。原始口座処理の勘定日を、先頭勘定日と呼ぶ。日付チェックテーブルはスパイラル処理中（又は、修正再カットＳＣ１２６から再カットＳＣへ移行した直後）は先頭勘定日を起点として作成する。この場合、先頭勘定日は日付チェックテーブルの先頭の日付であり、演算日又は演算日に最も近い勘定日（先頭勘定日）となる。
【０２５１】
図２７は、先日付第１群取消ＳＣ１２２による処理例を示すフローチャートである。日付チェックテーブルが生成されると、先日付第１群取消ＳＣ１２２では、まず、「派生再カット中ビット（Ｄビット）がＯＮで情報フラグが１でない」という条件を満たさないことを確認する。派生再カット中ビットがＯＮである場合には、原始口座処理による残高異動に応じて何らかの取消、再カット処理が行われたことを意味する。「情報フラグが１でない」ことが真（イエス）である場合には、先日付第１群取消以外の処理が行われていることを意味する。何らかの取消再カット処理が行われ、その処理が先日付第１群取消でない場合には、先日付第１群再カットのスパイラル処理が完了したか、またはその対象が無い場合である。従って、ステップＳ６１がイエスである場合には、先日付第１群取消処理を行わない。
【０２５２】
原始口座処理による口座残高の異動から最初に取消再カットメインが起動された場合には、派生再カット中ビット（Ｄビット）がオフであるため、情報フラグがなんであれ、Ｓ６１の条件を満たさない。従って、最初に起動された場合には、ステップＳ６２に進む。また、一度以上先日付第１群取消を起動している場合には、情報フラグが１となっている。従って、前回の取消再カットメインの判定結果が先日付第１群取消であった場合には、ステップＳ６１の条件を満たさず、ステップＳ６２に進む。派生再カット中ビット（Ｄビット）はこの最初の取消再カットメインの起動であるか否かの判定に用いられ、情報ビットは前回の判定が自らのＳＣか他のＳＣかの判定に用いられる。この点、他のＳＣでも同様である。
【０２５３】
図２７のステップＳ６２では、残不足明細セグメント１６に先日付で、決済済みで、かつ、優先順位が第１群（≠９ｘ）である口座処理要求が存在するか否かを確認する。この条件を満たす口座処理要求は勘定日の初日以外の再カット期限内で決済されている可能性があるため、前倒を行うためにまず取消を行う。また、この取消は、修正再カット処理を少なくし、より優先順位に従った再カットを行う役割も果たす。
【０２５４】
ステップＳ６２の条件を満たす決済済みの残不足明細がある場合には、派生再カット中ビット（Ｄビット）をＯＮ、情報フラグを１にセットする（ステップＳ６４）。そして、この口座処理要求の取消を当該派生管理フラグ（Ｄビット＝ＯＮ，情報フラグ＝１）を付した派生トランザクションとして前記起動業務処理部１０８に実行させる（ステップＳ６４）。この一連のステップＳ６１，Ｓ６２，Ｓ６３，Ｓ６４によって実現する機能を図２５に示す例では、第１群連続取消制御機能１３２と呼ぶ。
【０２５５】
図２７に示すように、先日付で、第１群で、決済済み残不足明細を連続して取り消す制御ＳＰＦ１は、ステップＳ６１での判定と、ステップＳ６４での派生管理フラグの更新による。すなわち、一度情報フラグが１となると、前倒判定用の取消処理によって起動される取消再カットメイン処理では、ステップＳ６１の条件に従って、この前記先日付第１群取消ＳＣの処理を連続させる。そして、ステップＳ６２の条件に従って、前倒判定用の取消対象がない場合に、マイナス時取消ＳＣに処理を移す。
【０２５６】
図２８は、マイナス時取消ＳＣ１２４による処理例を示すフローチャートである。まず、日付チェックテーブルを参照して出金可能額がマイナスとなっている勘定日があるか否かを判定する（ステップＳ７１）。この判定は、例えば日付チェックテーブルを作成したときに出金可能額のマイナスの有無を判定し、マイナスがある場合に日付にマイナスを示すビットを付し、ステップＳ７１にてこのビットを確認するようにしてもよい。
【０２５７】
出金可能額がマイナスである場合には、元の派生再カット中ビットや情報フラグの値にかかわらず、取消を行う。このため、最初に、派生再カット中ビット（Ｄビット）をＯＮ、情報フラグを２にセットする（ステップＳ７２）。そして、出金可能額がマイナスとなった勘定日について、当該勘定日に成立した前記取引明細セグメントに格納された口座処理要求のうち最も優先順位が低い出金の口座処理要求を特定し（ステップＳ７３）、この口座処理要求の取消を当該派生管理フラグを付した派生トランザクションとして前記起動業務処理部１０８に実行させる（ステップＳ７４）。このステップＳ７１，Ｓ７２，Ｓ７３，Ｓ７４による機能を、図２５に示す例ではマイナス時取消制御機能と呼ぶ。出金可能額がマイナスである限り、前回の処理がどのＳＣによって行われたかに関わらず、このマイナス時取消制御を行う（ＳＰＦ２）。また、先日付の勘定日（日付チェックテーブルの日付）が２日以上ある場合には、近い将来の勘定日での口座処理を取消、遠い将来の勘定日での出金可能額のマイナスが解消されない場合には、近い将来に続いて遠い将来の勘定日での出金を取り消す。
【０２５８】
ステップＳ７１にて出金可能額がマイナスの日付がないと判定された場合には、入金オーバーの判定を行う（ステップＳ７５）。この入金オーバーについても、日付チェックテーブル作成時に入金オーバービットを付しておき、これに基づいて判定すると良い。そして、所定の入金上限額を超えた先日付の勘定日がある場合には、派生再カット中ビットをＯＮ、情報フラグを３にセットする（ステップＳ７６）。続いて、先日付の勘定日にて成立した入金の口座処理要求の取消を当該派生管理フラグを付した派生トランザクションとして起動業務処理部に実行させる（ステップＳ７７，Ｓ７８）。図２５に示す例では、このステップ７５からＳ７８に至る処理をオーバー時取消制御機能１３６と呼ぶ。
【０２５９】
ステップＳ７２，Ｓ７５にて情報フラグに値を登録するため、これらの取消が行われた次の取消再カットメインで、ステップＳ２７による先日付第１群取消が行われることはない。すなわち、ステップＳ６１にて情報フラグが２又は３であるため、情報フラグが１でないという条件を満たし、マイナス時取消ＳＣへと処理が移る（ステップＳ６５）。
【０２６０】
図２９は、残不足明細のデータ構造例を示す説明図である。本実施例では、残不足明細セグメント１６は、優先順位の第１群又は第２群を示す第１優先順位を第１のキーとして優先順位の高い順に、各口座処理要求の勘定日を第２のキーとして勘定日の近い順に、各優先順位の郡内での優先順位を第３のキーとして優先順位の高い順に読み出されるデータ構造を有する。優先順位の第１群と第２群とを分けるのは、優先順位の９ｘというときの９の桁である。図２９に示す例では、自振通番００２の優先順位は２５で、第１優先順位が「２」、第２優先順位が「５」である。
【０２６１】
図２９に示す例では、すべての勘定日を２日としているが、勘定日の異なる残不足明細がある場合、残不足明細は勘定日順には並ばない。これは、再カット期限と対象勘定日との関係によるものである。優先順位と勘定日の関係では、例えば次のような並び順となる。
【０２６２】
優先順位２５、  勘定日２日、再カット期限３ヶ月
優先順位２７、  勘定日２日、再カット期限３ヶ月
優先順位２３、  勘定日３日、再カット期限３ヶ月
【０２６３】
２日を対象勘定日として最も優先順位の高い取引を特定すると、先頭の優先順位２５であり、２日については、優先順位順に並んでいる。３日を対象勘定日とすると、優先順位２５，２７の取引共に再カット期限内である。しかし、優先順位２３が一番高いため、３日を対象勘定日とすると、残不足明細の全体を読み取り、比較しなければ高優先業務は特定されない。勘定日を第１のキーとした場合も、残不足の全体を読み出さなければならない。第１優先順位を第１のキー、第２優先順位を第２のキーとすると、勘定日の順序がより前後してしまう。図２９に示す残不足明細の内容については、具体例と共に後述する。このように、再カット期限が２日以上の残不足明細の探索では、一旦すべてを読み取らなければ、高優先業務の特定ができない。
一方、９ｘのみを考えると、勘定日順に並んでいることとなる。このため、９ｘの順次再カットは、単純に残不足を読み出した読み出し順に再カット可否を判定できる。
【０２６４】
図３０は、修正再カットＳＣ１２６の処理内容を示すフローチャートである。先日付第１群取消サブコントローラー及びマイナス時取消サブコントローラーでの取消制御用の条件を満たさない場合に、修正再カットＳＣに処理が移る。修正再カットＳＣでは、まず、「派生再カット中ビットがＯＮで情報フラグが４」という条件を満たさないか否かを判定する。ステップＳ８１にてイエスとなる場合には、再カットＳＣ１２８によるスパイラル処理ＳＰＦ４中であることを意味する。
【０２６５】
続いて、「情報フラグがＡで、前記日付チェックテーブルの全日付の判定完了」という条件を満たさないか否かを判定する（ステップＳ８２）。最初に取消再カットメインが起動された場合には、派生再カット中ビットがＯＦＦであるため、ステップＳ８２はノーとなる。情報フラグがＡであれば、前回再カットを派生起動したことを意味する。修正再カットを行った場合には、前回の取消再カットメインでは取消をしているため、情報フラグは２である。
【０２６６】
このステップＳ８２では、修正再カットＳＣでの処理対象が無ければ処理を再カットＳＣへ移すものである。ここでは、前回修正再カットで再カットを派生起動し、再カットがなされて起動された場合で、その前回の再カットをした口座処理要求が対象勘定日での最後の未成立かつ、未判定で決済可能な口座処理要求であった場合で、その再カットの勘定日よりも将来の勘定日が日付チェックテーブルにない場合には、再カットＳＣへ処理を移す。
【０２６７】
ステップＳ８３では、最初にこのステップＳ８２に入った場合には、残不足明細セグメント中の口座処理要求のうち、前記日付チェックテーブルの日付のうち最も現在に近い日付である先頭勘定日を対象勘定日として、「優先順位が第１群（≠９ｘ）で、当該対象勘定日が再カット期限内で、未決済、かつ、未判定」の口座処理要求を読み出す。この条件を満たす口座処理要求が一又は複数存在する場合には、ステップＳ８５へ処理を移す。
【０２６８】
一方、該当する口座処理要求がない場合には、対象勘定日を日付チェックテーブルの日付がなくなるまで対象勘定日を先へとシフトさせて当該条件の口座処理要求を読み出させる（ステップＳ８４）。ここで、日付チェックテーブルの前日付の探索が終了し、次の先日付勘定日が日付チェックテーブルにない場合には、再カットＳＣへと処理を移す。
【０２６９】
前回再カットした又は修正再カットしたことに応じて起動された場合には、その再カットによって残高に異動が生じた勘定日を対象勘定日として、ステップＳ８３の処理を行うと、判定に必要な処理数を少なくすることができる。
【０２７０】
ステップＳ８３にて対象勘定日での未成立で≠９ｘの口座処理要求を残不足明細から読み出せた場合には、この対象勘定日について読み出した口座処理要求のうち当該対象勘定日内で最も優先順位の高い口座処理要求を高優先業務の口座処理要求として特定する（ステップＳ８５）。これは、例えば、残不足明細から口座処理要求を読み出し、今までに一番優先順位の高い口座処理要求の内容をセーブしておき、このセーブした口座処理要求の優先順位よりも優先順位の高い口座処理要求を読み出したときにセーブした内容を入れ替えることで、高優先業務の口座処理を特定するようにしても良い。このステップＳ８１乃至Ｓ８５による処理を、図２５に示す例では、第１群高優先業務特定機能１３８と呼ぶ。
【０２７１】
続いて、この第１群高優先業務特定機能１３８によってステップＳ８５にて特定された高優先業務の出金要求の取引金額が出金可能額以内であるか否かを判定して（ステップＳ８６）、出金可能額以内であれば、派生再カット中ビットをＯＮ、情報フラグをＡにセットして（ステップＳ８７）、当該口座処理要求の再カットを当該派生管理フラグ付きの派生トランザクションとして前記起動業務に実行させる（ステップＳ８８）。このステップＳ８６乃至Ｓ８８による再カット起動を、図２５に示す例では、第１群再カット起動機能１４０と呼ぶ。
【０２７２】
ステップＳ８６にて、高優先業務の出金要求の取引金額が出金可能額を越える場合には、まず、当該高優先業務の出金要求の優先順位よりも低い優先順位の出金要求によって使用される取引金額の総額を修正出金可能額として算出する（ステップＳ８９，修正出金可能額算出機能１４２）。次に、この高優先業務の出金要求の取引金額が前記修正出金可能額以内であるか否かを判定し（ステップＳ９０）、修正出金可能額以内であれば、派生再カット中ビットをＯＮ、情報フラグをＡにセットして（ステップＳ９１）、当該高優先業務の出金要求の再カットを当該派生管理フラグ付きの派生トランザクションとして前記起動業務に実行させる（ステップＳ９２）。このステップＳ９０乃至Ｓ９２による処理を、第１群修正再カット起動機能１４４と呼ぶ。
【０２７３】
そして、ステップＳ９０にて、高優先業務の出金要求の取引金額が修正出金可能額を越えている場合には、当該口座処理要求を判定済みとして前記第１群高優先業務特定機能１３８に処理を戻す（修正再カット対象探索制御機能１４６）。図３０に示す例では、ステップＳ８３に処理を移す。
【０２７４】
ステップＳ８３では、ステップＳ９０にて判定されていない口座処理要求のうち、同一の対象勘定日にて、ステップＳ８３の条件を満たす口座処理要求を読み取る。この読取により特定された口座処理要求は、前回ステップＳ９０で判定された口座処理要求と同一の優先順位か、又はその次に優先順位の低い口座処理要求である。一方、ステップＳ８３にて対象勘定日が再カット期限内の未成立かつ、≠９ｘの口座処理要求が無い場合には、すなわち、この対象勘定日での探索が完了すると、対象勘定日を次の日付へと移す。この対象勘定日の全探索が完了する途中で決済可能な口座処理があった場合には、再カット又は修正再カットを起動し、その勘定日を対象勘定日としてこのステップＳ８３に戻る。この場合、前回またはそれ以前に再カット又は修正再カットされた口座処理要求は残不足明細では決済済みとなっているため、このステップＳ８３で読み込まれることはない。通常に高優先業務を特定すると、前回又はそれ以前に再カットした口座処理要求の次に優先順位が高い口座処理が高優先業務として特定される。
【０２７５】
最後の日付で、最後の口座処理要求が修正再カットされた場合、残不足明細にステップＳ８３の条件を満たす口座処理要求がなくなっているか、もしくは、ステップＳ９０，ステップＳ８４を介して再カットＳＣへと処理が移る。最後の口座処理要求が再カットされた場合、ステップＳ８２にて再カットＳＣへと処理が移る。
【０２７６】
この図３０に示す処理により、再カット期限が３ヶ月等の期間の口座処理要求の再カット及び修正再カットを良好に処理することができる。また、一旦修正再カットＳＣ１２６で修正再カット又は再カットされた口座処理要求が、そのスパイラル処理中に先日付第１群取消ＳＣ１２２で取り消されることはない。これは、修正再カットでは情報フラグをＡとし、一方、先日付第１群取消ＳＣ１２２では派生再カットが開始され、ＤビットがＯＮである場合に、情報フラグが１以外であれば、先日付第１群取消を行わないためである。このように、情報フラグは、スパイラル処理において、不要なループが生じないように制御する役割を果たす。
【０２７７】
図３１は、再カットサブコントローラー１２８の処理例を示すフローチャートである。図３１に示す例では、前記修正再カットＳＣでの第１群再カット又は第１群修正再カットの条件を満たす残不足明細がない場合に処理が始まる。まず、「前記派生再カット中ビットがＯＮ、情報フラグが４かつ、日付チェックテーブルの全日付の判定完了」という条件を満たさないか否かを判定する。前回の再カットで、最後の対象勘定日での最後（最も優先順位が低い）の口座処理要求を再カットした場合には、取消再カットの全判定処理を完了する（ステップＳ１１０）。
【０２７８】
最初に起動され派生再カット中ビット（Ｄビット）がオフであった場合や、すべての口座処理要求の再カット可否の判定が完了していない場合には、ステップＳ１０２に処理を移す。図３１に示す例では、残不足明細セグメントから、再カット期限内で未決済取引で未判定の残不足明細を読み出す（ステップＳ１０２）。そして、当該読み出した口座処理要求を高優先業務の出金要求として特定する（ステップＳ１０３，第２群高優先業務特定機能１４８）。一方、該当する残不足明細が無い場合には、取消再カットメインの全判定を終了する。ステップＳ１０２では、残不足明細のデータ構造に従って順に口座処理を読み出し、口座処理要求の対象勘定日が変化した場合には、その勘定日を対象勘定日とする。修正再カットＳＣ１２６により、≠９ｘの先日付の残不足は全て判定終了し、再カット可能なものがないため、ステップＳ１０２にて残不足明細のデータ構造順に読み出す。すると、９ｘの範囲内では、勘定日順、かつ、優先順位順（第２優先順位）に読み出される。従って、修正再カットＳＣ１２６で行ったような高優先業務の探索処理を不要とすることができる。
【０２７９】
ステップＳ１０３に続いて、この高優先業務の出金要求に自動融資が設定されている場合には当該口座処理要求に再カット派生を設定する（ステップＳ１０４（自動融資再カット派生設定機能１５０）。また、高優先業務の出金要求の取引金額が前記出金可能額以内である場合には、当該高優先業務の出金要求に再カット派生を設定する（ステップＳ１０５、出金可能額再カット派生設定機能１５２）。ここでは、再カット派生の設定はステップＳ１０６へ処理を進めることであるが、好ましくは、再カット派生ビットを付し、そのビットの有無に従ってステップＳ１０６へ進むようにする。このように再カット派生が設定されている場合には、当該高優先業務の出金要求の再カットを当該派生管理フラグ付きの派生トランザクションとして前記起動業務に実行させる（ステップＳ１０７，再カット起動機能１５６）。
【０２８０】
ステップＳ１０５にて、高優先業務の出金要求の取引金額が前記出金可能額を超える場合には、当該口座処理要求を判定済みとして前記高優先業務口座処理要求特定機能に処理を戻す（再カット対象探索制御機能１５４）。
【０２８１】
図２５等に示す構成は、演算手段４が取消再カットメインプログラムを実行することでその一部として実現することができる。このような取消再カットメインプログラムは、前記演算手段を動作させる指令として、各ＳＣに対応する指令を備える。具体的には、取消再カットメインプログラムが起動される毎に前記残高明細セグメントに基づいて取引のある日付毎の出金可能額を算出させる日付チェックテーブル生成指令Ｍ３１と、残不足明細セグメントに格納された決済済みの口座処理要求のうち優先順位が第１群で先日付の出金要求がある場合には当該口座処理要求を取り消す制御をさせる先日付第１群取消指令Ｍ３２と、この先日付第１群取消指令Ｍ３２に応じて前記優先順位が第１群で先日付にて決済済みの出金要求がない場合に、前記日付チェックテーブルを参照して出金可能額がマイナスとなっている勘定日がある場合には、当該勘定日に成立し前記取引明細セグメントに格納された口座処理要求のうち最も低い口座処理要求を取り消させるマイナス時取消指令Ｍ３３とを備える。
【０２８２】
取消再カットメインプログラムは、さらに、先日付第１群取消指令Ｍ３２及びマイナス時取消指令Ｍ３３に応じた取消制御が完了下後に、前記第１群の優先順位で前記残不足明細セグメントに格納された先日付の口座処理要求を優先順位の高い順に各勘定日の出金可能額又は所定の修正出金可能額に基づいて再カットが可能であるか否かを判定させると共に再カット可能な場合には当該口座処理要求を再カットさせる修正再カット指令Ｍ３Ａを備えている。
また、取消再カットメインプログラムは、修正再カット指令Ｍ３Ａによる再カットの対象の走査が完了した後、前記第１群及び第２群の優先順位で出金可能額内の出金要求を優先順位の高い順に再カットさせる再カット指令Ｍ３４とを備える。
【０２８３】
また、上記各指令が、図２７乃至図３１に示す処理工程に応じた指令を備えることで、より具体的な処理を実現することができる。
【０２８４】
図２５に示した構成により、派生トランザクションの繰り返しとして優先順位に基づいた決済の最適化を行うことで、先日付完結処理を他のオンライン処理による口座処理に遅れを生じさせない状態でオンライン処理と並行して処理することができる。例えば、派生取引等に他のトランザクションによるプロセスに対する優先度の設定等を行わなくとも、派生取引の同時最大数等の規制により、オンラインの応答時間に影響を与えずに、口座振替等の従来バッチ処理で行っていた口座処理をオンライン処理中に処理することができる。
【０２８５】
図３２乃至図３８は、本実施例による先日付完結処理の具体的な処理例を示す説明図である。この例では、先日付完結処理の説明のための口座処理の組み合わせである。図３２を参照すると、取引明細セグメントは、演算日、勘定日、取引等の項目を有する。これに応じて、残不足明細セグメントのうち再カット期限や結果の項目を記述している。残不足明細は、その本来の並び順ではなく、取引明細セグメントを更新したときに、残不足明細セグメントに与える更新を併記したものである。
【０２８６】
通番００１は、演算日を１日として、先日付の２日を勘定日として、２０，０００の出金をしている。演算日の項目の左側に、図３２中０から１３までの番号が振られている。この番号を、処理番号と呼ぶ。通番００１の取引種類は電気料の引落である。この電気料の引落は、処理番号１の行で、かつ、Ｅの列に記載されている。列の番号は図中下側（処理番号１３の次の行）に定義されている。図３３は、図３２の取引の結果を示す残高明細セグメント及び担保明細セグメントであり、処理番号は同一の処理に対してのものである。
【０２８７】
まず、上記取消再カットメインによってどのように口座残高を推移させるかを説明する。１日の当初の残高として５０，０００（図３３、０Ｎ）、担保定期が５０，０００で貸越極度が４５，０００。出金可能額を計算すると９５，０００（図３３，０Ｐ）である。この状態で、２日を勘定日として、処理番号１，３，４にあるように、通番００１の電気料引落、通番００３の定期積金入金、通番００４の担保定期入金が成立している。一方、通番００２の融資返済は、その結果（図３２，２Ｈ）が極度超となっている。すなわち、融資返済の１０８，０００は残不足で未成立である。この融資返済を、残不足明細に記録する（図３２，２Ｇから２Ｍ）。
【０２８８】処理番号５から９は、１日にＡＴＭ入金２０，０００があった場合に、この入金を原始口座処理として取消再カットメインを起動したことによる処理結果である。１日現在の残高５０，０００（図３３，０Ｎ）、貸越極度４５，０００、従って、出金可能額を計算すると９５，０００となる。２日の残高は−３０，０００（図３３，４Ｒ）、処理番号４による極度増額により、貸越極度５４，０００で、出金可能額は２４，０００である。２日を勘定日とする先日付の出金として、電気料２０，０００、定期積金５０，０００、担保定期預金１０，０００があり、残不足取引として融資返済１０８，０００が存在する。
【０２８９】
このときに、１日にＡＴＭ入金２０，０００される（図３２，５Ｃ）。１日の残高は５０，０００に入金額２０，０００を加算して７０，０００となる（図３３，５Ｎ）。１日の出金可能額は１１５，０００（図３３，５Ｐ）となる。２日の残高も２０，０００の増額される。２日の出金可能額は４４，０００（図３３，５Ｔ）であるため、残不足となっている融資返済１０８，０００は出金可能額よりも多く、通常の再カットはできない。融資返済の優先順位より優先順位の低い決済済み取引である電気料（通番００１）、定期積金（通番００３）、担保定期入金（００４）を取り消すことを前提とした修正出金可能額は１２４，０００（図３３，５Ｕ）となる。このため、融資返済の修正再カットが行われる。修正再カット後、２日の出金可能額がマイナスとなる（図３３，６Ｔ）ため、優先順位の低い順（電気料→担保定期預金→定期積金）に先日付決済済み取引の取消を行う。これにより、２日の残高−３８，０００、貸越極度４５，０００、出金可能額７，０００（図３３，９Ｔ）となる。
【０２９０】
処理番号１０から１３は、１日に５０，０００の定期入金があった場合の取消再カットメインによる調整である。取消再カットメインが起動すると、まず、残不足に格納された成立済みで≠９ｘの有無を探索する。融資返済が該当するため、まずこれを取り消す（図３２，処理番号１１）。その後の２日の残高は５２，０００（図３３，１２Ｔ）であるため、残不足で決済済みの口座処理要求のうち最も優先順位の高い定期積金入金が再カットされる。５２，０００から５０，０００が減額され、２日の出金可能額は２，０００となる（図３３，１３Ｔ）。他に再カット可能な口座処理要求がないため、取消再カットメインはスパイラル処理を終了する。
【０２９１】
図３４に示す処理番号１４から１８では、先日付第１群による取消と、修正再カットとが行われる。処理番号１９から２５では、先日付第１群の取消が行われた後、優先順位に従って再カットを行う。ここでは、２日付けの２８，０００の振込入金によって担保定期入金と電気料引落の再カットができた（図３４，２４Ｅ，２５Ｅ）。
【０２９２】
図３６に示す処理番号２６から３０では、１日の残高７０，０００（図３３，５Ｎからの異動はない）、貸越極度９０，０００（図３３，１０Ｏ）、従って、出金可能額１６０，０００（図３３，１０Ｐ）、２日の出金可能額は８，０００（図３５，２５Ｔ）。２日を勘定日とする先日付の出金要求として、融資返済１０８，０００、定期積金５０，０００、担保定期預金１０，０００、年会費１，０００がある。残不足としては、電気料２０，０００が存在する。この状態で、１日にＡＴＭ出金１２０，０００を行ったとする（図３６，２６Ｅ）。１日の出金可能額が４０，０００（図３５，２６Ｐ）となり、２日の出金可能額は−１１２，０００（図３５，２６Ｔ）となる。まず、優先順位が≠９ｘである先日付決済済み取引である融資返済と定期積金を優先順位の低い順に取り消す（処理２７，２８）と、２日の出金可能額は４６，０００（図３７，２８Ｐ）となる。このため、残不足となっている定期積み金引落の再カットは行われない状態に見える。しかし定期積み金引落の優先順位よりも低い先日付決済済み取引である電気料、年会費の出金を取り消す前提での修正出金可能額は６７，０００（図３７，２８Ｐ）となるため、定期積金引落の修正再カットを行う。再カット後、２日の出金可能額がマイナスとなっている（図３７，２９Ｐ）ため、電気料の引落の先日付決済済み取引の取消を行う。これにより、２日の残高−８３，０００（図３７，３０Ｎ）、貸越極度９９，０００、出金可能額１６，０００となる。
【０２９３】
図３６に示す処理３１では、３日を勘定日として給与振込がある。３２との出金可能額が１１６，０００となるため、２日に決済できなかった融資返済を３日で決済することができる（処理３２）。
【０２９４】
処理番号３３から３８では、２日の残高−８３，０００（図３７，３０Ｎ）、貸越極度９９，０００、このため出金可能額は１６，０００となる。３日の出金可能額は８，０００（図３７，３２Ｔ）である。２日を勘定日とする成立済みの口座処理としては、定期積金、担保定期預金、年会費１，０００がある。未成立で残不足明細の格納された取引としては、電気料２０，０００がある。融資返済１０８，０００は、３日を勘定日として成立している。
【０２９５】
この状態で、１日に２日付けでの入金６２，０００を行ったとする。２日の出金可能額は７８，０００（図３７，３３Ｐ）となり、３日の出金可能額は７０，０００となる。≠９ｘで、成立済み残不足の先日付第１群取消の対象として、２日の定期積金と３日の融資返済とがある。これを優先順位の低い順に取り消すと、２日の出金可能額は１２８，００となるため、融資返済を２日付けで再カットする。再カットすると、２日の出金可能額は２０，０００（図３７，３６Ｐ）、３日は１２０，０００となる。
【０２９６】
次に、優先順位が高く、再カット期限内である定期積金を再カットする。これにより、３日の出金可能額は７０，０００となる。≠９ｘの再カットの終了後、２日の出金可能額が２０，０００であるため、電気料引落の先日付再カットを行う。２日の出金可能額が０（図３７Ｐ）、３日の出金可能額が５０，０００（図３７，３８Ｔ）となる。もし、３日の出金可能額がマイナスとなる場合には、３日付け先日付取引のうち、最優先順位の口座処理を取り消す。
【０２９７】
処理３８から処理３９の間に、日付変更がある。この日付変更により、２日を勘定日として成立していた取引は決済完了性を有する。すなわち、担保定期入金（処理２５），融資返済（処理３６）、電気料引落（処理３８）は確定する。２日当日では、先日付の取引は３日を勘定日とする定期積金入金である（処理３７）。処理３９では、クレジット代金の引落を処理しようとするが、残不足で未成立となる。このクレジット代金の引落で残不足がある場合に、カードローンによる自動融資を行うとする。３日を迎え、その自動融資を実行する時間までに入金がないと、クレジットローンの自動融資が実行される（図３８，４２Ｅ）。このとき、３日の出金可能額５０，０００に対して、クレジット代金引落に不足している額は８０，０００であるため、８０，０００を自動融資する（図３８，４２Ｆ）これにより、クレジット代金の当日再カットが行われ、３日付けの出金可能額は０となる。
【０２９８】
次に、各サブコントローラーのフローチャート等を参照して、取消再カットメインによるスパイラル制御を詳述する。処理番号５によって開始するスパイラル制御では、図２６を参照すると、まず通番００５のＡＴＭ入金が起動処理及び受動処理の連動Ｓ５１にて実行される。すると、取消再カットメインでは、まず、日付チェックテーブルを作成する。日付は１日と２日で、１日の出金可能額が９５，０００、２日が１５，０００である。先日付第１群取消ＳＣ１２２では、Ｄビットフラグがオフで、情報フラグがないため、図２７に示すステップＳ６２にて前倒の対象があるか否かを確認する。処理番号５の完了時には、決済済み残不足で≠９ｘはないため、マイナス時取消ＳＣへ移る。出金可能額のマイナスや、入金オーバーもないため、修正再カットＳＣ１２６に進行する。図３０を参照すると、ＤビットフラグがＯＦＦであるため、ステップＳ８１，Ｓ８２がノーとなり、ステップＳ８３にて、未決済、未判定、先日付、再カット期限内、かつ、≠９ｘを読み出す。１日での口座残高の異動であるため、まず１日を対象勘定日として読み出すが、１日を再カット期限内とする残不足明細は存在しないため、ステップＳ８４にて日付チェックテーブルを参照して対象勘定日を２日にシフトさせる。２日を対象勘定日とすると、通番００２の融資返済が残不足として格納されている。他の残不足はないため、この融資返済１０８，０００が最高順位となる（ステップＳ８５）。２日の出金可能額は１５，０００であるため、出金可能額での再カットはできない（ステップＳ８６）。修正出金可能額を算出すると、上述したように１２４，０００となるため、修正再カットを派生起動する（ステップＳ９２）。このとき、派生再カット中ビット＝ＯＮ、情報フラグ＝Ａが図２６に示す起動処理Ｓ５５に渡される。
【０２９９】
ステップＳ５５の起動及び受動の連動処理にて、融資返済の修正再カットを行い、受動処理は残高明細を更新して、取消再カットメインを起動する。このとき、派生再カット中ビット＝ＯＮ、情報フラグ＝Ａである。日付チェックテーブルを作成すると、２日の出金可能額マイナス６４，０００となる（図３３，６Ｔ）。取消再カットメインでは、先日付第１群取消処理のステップＳ６１にてイエスとなり、マイナス時取消ＳＣへ移る。出金可能額がマイナス６４，０００であるため、最も優先順位の低い口座処理要求（ここでは、通番００１）を特定し（図２８のステップＳ７３）、図２６のＳ５３に示す起動処理に取消を依頼する。このときの情報フラグは２である。出金可能額がマイナスの間このスパイラル処理ＳＰＦ２が継続し、マイナスが解消したときに修正再カット及び再カットの検討を行う。ここでは、再カット可能な対象が存在しないため、スパイラル処理を完了する。すなわち、図３２の処理番号９によって起動される取消再カットメインは、なにも行わずに同期点Ｃ１６を迎える。
【０３００】
処理９終了時の残不足明細セグメントを図２９（Ａ）に示す。優先順位の高い通番００２が成立し、他の処理は残不足で決済不能となっている。ここで、５０，０００の定期入金があるとする（処理番号１０）。残高は増加しないが、貸越極度が増加する。これにより残高（出金可能額）に異動が生じたとして、取消再カットメインを起動する。先日付第１群取消ＳＣにて、一旦融資返済を取り消す。その後、修正再カットＳＣ１２６にて２日を勘定日とする高優先業務を特定すると、今取り消した融資返済であるため、これを再カットする（ステップＳ８８）。情報フラグ＝Ａとして再度取消再カットメインが起動されると、修正再カットＳＣ１２６では、再度２日での高優先業務の出金要求を探索する。図２９に示すように、自振通番００２の優先順位が高いため、取引金額と出金金額とを比較する（ステップＳ８６）。再カット可能であるため、定期積金入金を再カットする（処理番号１３）。この再カットにより、再度取消再カットメインが起動される。ステップＳ８３にて２日の残不足を探索すると、担保定期及び電気料の優先順位は第２群であるため、ステップＳ８３にて口座処理要求なしと判定される。２日を基準とした先日付取引があるか否か（先日付の残不足明細があるか否か）を判定すると（ステップＳ８４）、日付チェックテーブルの最終日は２日であるため、３日以後の先日付勘定日は存在しない。このため、再カットＳＣへ処理が移る（ステップＳ９４３）。
【０３０１】
図３１を参照すると、派生再カット中ビット（Ｄビット）がＯＮであるが、情報フラグがＡであるため、ステップＳ１０１でノーとなる。残不足から再カット期限内の口座処理を読み出すと、２日の通番００４が読み出される。担保定期への入金額（預金口座からの出金額）は１０，０００であり、２日の出金可能額は２，０００であるため（ステップＳ１０５）、再カットできない。すると、ステップＳ１０２に処理が戻り、次の残不足明細を読む。ここでは、通番００１の電気料が読み込まれる。電気料は２０，０００であるため、やはり、再カットできない。再度ステップＳ１０５からＳ１０２に処理が戻るが、その次の残不足明細は存在しない。このため、取消再カットメインの判定を終了する（ステップＳ１１０）
【０３０２】
図３６に示す処理３３では、２日を勘定日として６２，０００入金されている。これのため、取消再カットメインが起動される。まず、先日付第１群取消ＳＣのスパイラル制御ＳＰＦ１により、定期積金と融資返済とが取り消される。この処理３５終了時の残不足明細を図２９（Ｂ）に示す。≠９ｘの融資返済及び定期積金入金、９ｘの電気料が未成立である。一方、担保定期入金は成立している。
【０３０３】
処理番号３３以下では、原始口座処理は２日を勘定日としている。このため、図３０に示す処理では、まず２日を対象勘定日として残不足未決済≠９ｘの口座処理要求を探索する。融資返済、定期積金ともに対象勘定日の２日は再カット期限内である。そして、融資返済の優先順位が高い。このため、まず、融資返済の再カットを起動する。この再カット完了に応じて取消再カットメインが起動されると、修正再カットＳＣでは、２日を対象勘定日とする残不足を探索する。ここでは、定期積金入金が高優先業務として特定される（ステップＳ８５）。２日の出金可能額は２０，０００であるため、再カットできない。担保定期の取消を前提とした修正出金可能額も３０，００であるため、修正再カットもできない。このため、ステップＳ８３に処理が戻る。
【０３０４】
ステップＳ８３では、２日を対象勘定日として未読の対象口座処理要求を探索するが、発見できない。このため、ステップＳ８４で対象勘定日を次の先日付へとシフトさせる。日付チェックテーブルを参照すると、３日にも先日付取引があり、出金可能額は１２０，０００である。３日を対象勘定日として残不足明細セグメントからステップＳ８３の条件を満たす口座処理要求を検索すると、定期積金入金の再カット期限は次回振替日前日であるため、３日は再カット期限内である。従って、３日の高優先業務の出金要求は定期積金入金となる。再カット可能であるため、勘定日を３日として定期積金入金を再カットする。この定期積金入金は３日を対象日とする最後の口座処理要求である。
【０３０５】
この定期積金再カットの完了によって取消再カットメインが再度起動されると、直前の処理の対象勘定日は３日である。しかし、ここでは、原始口座処理の対象勘定日である２日を起点として日付チェックテーブルを作成する。修正再カットＳＣでは、ステップＳ８２にて、前回探索完了した３日である対象勘定日よりも先日付の勘定日があるか否かを判定する。４日以後の先日付取引は存在しないため、再カットＳＣへ処理を移す。また、定期積金入金が３日での最後の口座処理要求でなくとも、ステップＳ８３，Ｓ８４を介して先日付勘定日がないとして再カットＳＣへ処理が移る。
【０３０６】
再カットＳＣでは、直前に再カットされた定期積金の勘定日（３日）ではなく、原始口座処理である入金（通番０１１）の勘定日である２日を基準として再カットを判定する。２日を対象勘定日として残不足明細を読み取ると、電気料が探索される。電気料の出金額は２日の出金可能額と等しいため、電気料が再カットされる。
【０３０７】
上述したように本実施例によると、口座処理が幾つかの勘定日について予め予測できない順序で実行されたとしても、さらに、再カット期限が３ヶ月等である場合であっても、図２６等に示すスパイラル制御により、勘定日別の残高セグメントを用いて、優先順位を反映した決済が可能となる。
【０３０８】
【第２実施例】
第２実施例では、決済完了性を日付ではなく時間やアクセスの有無で設定することで、より柔軟な処理を可能とする。ここでは、取消処理部が、口座処理部による口座処理によって当日又は先日付の勘定日での口座処理要求が決済不能となる場合には当該決済不能となる勘定日での決済完了性を有さない複数の決済済みの口座処理要求のうち優先順位の低い口座処理要求を当該優先順位の低い順序にて取り消す。
【０３０９】
例えば、決済完了性を振替日当日の１９：００とすると、振替日当日の１９：００まで取消、再カットが可能となる。一方、１９：００を過ぎた直後に決済を完了させる。この場合、１９：００以前の口座残高と、１９：００以後の口座残高とを有するようにしても良い。また、当日にその口座にアクセスがあるまでは取消が可能であるとしても良い。
【０３１０】
【発明の効果】
本発明は以上のように構成され機能するので、これによると、口座処理部が、先日付の勘定日毎の残高を管理するため、日付変更後に参照すべき口座情報が予め先日付にて作成されているため、日付変更前後に大量の口座に対する種々の処理を一時期にまとめて処理する必要がなく、例えば、公共料金の振替等を夜間バッチ処理にて行う必要がなく、先日付での口座処理を前もって平準化した状態で日中又はオンライン処理中に処理することができ、すなわち、ＡＴＭ等の端末を用いた入出金等のオンライン処理と並列して口座振替や利息の入金等の種々の取引を処理することができ、従って、２４時間連続サービスを演算手段の処理能力を増強せずに実施することがでる。
さらに、第１群の発明では、取消処理部が、先日付の残高がマイナスの際には、口座処理要求を当該優先順位の低い順序にて取り消すため、口座残高が不足する場合に、先日付での取引を予め定められた優先順位に従って決済することができる。
第２群の発明では、再カット処理部が、先日付の残高がプラスの際には、決済可能となる勘定日での複数の未決済の口座処理要求のうち優先順位の高い口座処理要求を当該優先順位の高い順序にて再カットするため、口座残高が不足していた後、増加した場合であっても、予め定められた優先順位に従って当日又は先日付にて決済を行うことができる。
第３群の発明では、競合単位（勘定日）ごとの資源量（残高）を用いた処理により、先日付で一旦成立させた業務処理（口座処理）の取消や、未成立であった業務処理（口座処理）の再カットを用いて、口座処理（業務処理）の入れ替えを行うことができる。従って、実際の口座処理等の実行の順序に関わらず、その時々の残高に応じて最適な決済を提供することができる。すなわち、第３群の発明では、上述した修正出金可能額を用いた修正再カット処理により、成立済みの取引と未成立の取引の入れ替えを行うことができるため、より優先順位を反映する自動的な最適化を提供することができる。
【図面の簡単な説明】
【図１】本発明の実施形態の構成を示すブロック図である。
【図２】第１実施形態等で用いるファイルのデータ構造例を示す説明図である。
【図３】各実施形態で使用する先日付完結処理の一例を示す説明図であり、図３（Ａ）は取引例の内容を示す図で、図３（Ｂ）は日付チェックテーブルの一例を示す図である。
【図４】第１実施形態での処理例を示すフローチャートである。
【図５】図５（Ａ）及び（Ｂ）は第１実施形態での動作例を示す説明図である。
【図６】本発明の第２実施形態の構成を示すブロック図である。
【図７】第２実施形態等で利用する口座情報のデータ構造の一例を示す説明図である。
【図８】第２実施形態での処理例を示すフローチャートである。
【図９】図９（Ａ）及び（Ｂ）は第２実施形態での動作例を示す説明図である。
【図１０】第３実施形態の構成例を示す説明図である。
【図１１】図１０に示す各機能をトランザクション管理技術を用いて実現する構成を示すブロック図である。
【図１２】図１１に示した構成によるスパイラル処理の一例を示すフローチャートである。
【図１３】図１３（Ａ）及び（Ｂ）は第３実施形態の動作の一例を示す説明図である。
【図１４】本発明の第４実施形態の構成例を示すブロック図である。
【図１５】図１４に示す取消再カットメイン処理部の詳細構成を示すブロック図である。
【図１６】図４に示す構成でのスパイラル処理を実現する取消再カットメイン等の構造を示すブロック図である。
【図１７】図１５に示す取消再カットメインの処理例を示すフローチャートである。
【図１８】図１８（Ａ）及び（Ｂ）は、第４実施形態での動作例を示す説明図である。
【図１９】本発明の第１実施例（第４実施形態の具体例）の構成を示すブロック図である。
【図２０】図１９に示す構成で利用するデータベースの一例を示す説明図である。
【図２１】外部自振の処理工程を説明するためのブロック図である。
【図２２】内部自振の処理工程を説明するためのブロック図である。
【図２３】本実施例で利用するオペコードテーブルの説明図であり、図２３（Ａ）はプログラム記憶手段等を備えた例を示す図で、図２３（Ｂ）は業務別のオペコードテーブルの例を示す説明図である。
【図２４】普通預金オペコードテーブルの一例を簡略化して示す説明図である。
【図２５】本実施例での取消再カットメイン処理部の詳細構成を示すブロック図である。
【図２６】図２５に示す構成にてスパイラル処理を実現する場合の取消再カットメイン等の構造を示すブロック図である。
【図２７】図２５に示す先日付第１群取消ＳＣによる処理例を示すフローチャートである。
【図２８】図２５に示すマイナス時取消ＳＣによる処理例を示すフローチャートである。
【図２９】図２９（Ａ）及び（Ｂ）は本実施例で用いる残不足明細セグメントの一例を示す説明図である。
【図３０】図２５に示す修正再カットＳＣによる処理例を示すフローチャートである。
【図３１】図２５に示す再カットＳＣによる処理例を示すフローチャートである。
【図３２】本実施例による優先順位を反映する先日付完結処理の例を示す説明図であり、処理番号０から１３までの取引明細セグメントと残不足明細セグメントの一例を示す図である。
【図３３】図３２に示す取引による残高等を示す説明図である。
【図３４】図３２に続いて処理番号１４から２５までの取引明細セグメント等を示す図である。
【図３５】図３４に示す取引による残高等を示す説明図である。
【図３６】図３４に続いて処理番号２６から３８までの取引明細セグメント等を示す図である。
【図３７】図３６に示す取引による残高等を示す説明図である。
【図３８】図３８（Ａ）は図３６に続いて処理番号３９から４３までの取引明細セグメント等を示す図であり、図３８（Ｂ）は図３８（Ａ）に示す取引による残高等を示す説明図である。
【符号の説明】
２  受信手段
４  演算手段
６  ファイル
８  口座処理部（実施例では、オンライン演算手段の一部）
１０  取消処理部
１２  取引明細情報（セグメント）
１４  残高明細情報（セグメント）
１６  残不足明細情報（セグメント）
２４  再カット処理部
【図１】
0003611110.tif 000002
【図２】
0003611110.tif 000003
【図３】
0003611110.tif 000004
【図４】
0003611110.tif 000005
【図５】
0003611110.tif 000006
【図６】
0003611110.tif 000007
【図７】
0003611110.tif 000008
【図８】
0003611110.tif 000009
【図９】
0003611110.tif 000010
【図１０】
0003611110.tif 000011
【図１１】
0003611110.tif 000012
【図１２】
0003611110.tif 000013
【図１３】
0003611110.tif 000014
【図１４】
0003611110.tif 000015
【図１５】
0003611110.tif 000016
【図１６】
0003611110.tif 000017
【図１７】
0003611110.tif 000018
【図１８】
0003611110.tif 000019
【図１９】
0003611110.tif 000020
【図２０】
0003611110.tif 000021
【図２１】
0003611110.tif 000022
【図２２】
0003611110.tif 000023
【図２３】
0003611110.tif 000024
【図２４】
0003611110.tif 000025
【図２５】
0003611110.tif 000026
【図２６】
0003611110.tif 000027
【図２７】
0003611110.tif 000028
【図２８】
0003611110.tif 000029
【図２９】
0003611110.tif 000030
【図３０】
0003611110.tif 000031
【図３１】
0003611110.tif 000032
【図３２】
0003611110.tif 000033
【図３３】
0003611110.tif 000034
【図３４】
0003611110.tif 000035
【図３５】
0003611110.tif 000036
【図３６】
0003611110.tif 000037
【図３７】
0003611110.tif 000038
【図３８】
0003611110.tif 000039