テーブル定義の一部として、バッチ制御ロジックを定義する例を紹介します。
例1
この節の最初にも紹介した取引データ入力システムで、次の3つのテーブルがあるとします。
テーブル名: | DAYTOT | BCHTOT | ENTDTA | |
|---|---|---|---|---|
説明: | 日次集計 | バッチ集計 | 入力データ | |
列: | DATE | DATE | DATE | |
プライマリ・キー | 1 | DATE | DATE | DATE |
2 | BATCH | BATCH | ||
3 | TRANSACTION |
ここでBDEBIT(バッチ借方合計)およびBCREDIT(バッチ貸方合計)は、あるDATE(日付)、BATCH(バッチ処理単位番号)のDEBIT(借方)およびCREDIT(貸方)の合計値を表します。同様に、DDEBIT(日次借方)およびDCREDIT(日次貸方)は、あるDATE(日付)のDEBIT(借方)およびCREDIT(貸方)の合計値です。
バッチ制御による集計処理を組み込むためには、次のバッチ制御ロジックを、テーブルENTDTA(入力データ)の定義に追加する必要があります。
定義名 | バッチ制御テーブル名 | 集計の対象となる列 | バッチ制御テーブルのうち、集計値を格納する列 | 集計の対象レコードを選択するためのキー |
|---|---|---|---|---|
ENTDTA | BCHTOT | DEBIT | BDEBIT | DATE |
CREDIT | BCREDIT | BATCH | ||
ENTDTA | DAYTOT | DEBIT | DDEBIT | DATE |
CREDIT | DCREDIT |
例2
次の例は、注文の「頭書き」テーブルと「明細行」テーブルから成るアプリケーションです。
テーブル名: | ORDHDR | ORDLIN | |
|---|---|---|---|
説明: | 注文の頭書き | 注文の明細行 | |
列: | ORDNUM | ORDNUM | |
プライマリ・キー | 1 | ORDNUM | ORDNUM |
2 | ORDLIN | ||
3 |
「頭書き」テーブルのTOTDUE(合計)は、「明細行」テーブルの、該当するレコードのVALUE(金額)を集計して求めます。すなわち、TOTDUEは関連する請求書明細行の合計です。
バッチ制御による集計処理を組み込むためには、次のバッチ制御ロジックを、テーブルORDLIN(明細行)の定義に追加する必要があります。
テーブル定義名: | ORDLIN |
|---|---|
バッチ制御テーブル名: | ORDHDR |
集計の対象となる列: | VALUE |
バッチ制御テーブルのうち、集計値を格納する列: | TOTDUE |
集計の対象レコードを選択するためのキー: | ORDNUM |