Files
cobol-tna-system/使用資源一覧/KIN08DBU_使用資源一覧.md
T

3.0 KiB
Raw Blame History

KIN08DBU 使用資源一覧

プログラム概要

  • プログラムID: KIN08DBU
  • プログラム名: 月次集計更新処理
  • 処理概要: SYSIN制御カード(T/P/M)で処理対象を指定し、DAILY_RECORDSテーブルをDELETE/INSERT(日別→月次集計)し、MONTHLY_ABSENCEテーブルにUPSERT。ABSENCE_SUMMARYファイル(80B)に出力する。

使用ファイル

DD名 ファイル識別子 編成 レコード形式 レコード長 COPY句 定義参照先
KIN08R01 SYSIN 順編成 F (固定長) 80B - JCL DD定義
KIN08W01 ABSENCE-SUMMARY 順編成 F (固定長) 80B KIN08REC COPY句定義書.md

使用COPY句

COPY句 用途 使用箇所
KIN07REC DAILY-RECORDINSERT用ホスト変数参照) FILE SECTIONSQL宿主)
KIN08REC W01出力レコード定義(ABSENCE-SUMMARY-REC FILE SECTION
ZANMSGAC メッセージ編集サブPGM連絡領域 WORKING-STORAGE
ZANENDAC ABENDサブPGM連絡領域 WORKING-STORAGE

使用サブプログラム

サブPGM 役割 CALL箇所
SUB02MSG メッセージ編集出力 4000MSGOUTSOR
SUB03END ABEND処理 9999ABDSOR

使用DB2テーブル

テーブル名 操作種別 使用箇所 SQL種別
DAILY_RECORDS DELETE/INSERT 1000PROCSOR DELETE / INSERT
MONTHLY_ABSENCE SELECT/INSERT/UPDATE 2000MAJSOR SELECT COUNT / INSERT / UPDATE

処理フロー

  1. 初期処理(開始メッセージ→OPEN SYSIN→SYSIN読込ループ)
  2. SYSINカード解析: GO TO DEPENDING ON でT/P/M分岐
    • Tカード(1110-TARGETSOR): UNSTRINGで対象社員一覧を内部表に格納
    • Pカード(1120-PERIODSOR): 年月範囲を設定
    • Mカード(1130-MODESOR): RESETDELETE/ UPDATEモード切替
  3. 主処理(2000MAJSOR): DAILY_RECORDSのSELECT→INSERT→集計テーブルに累積
  4. 月次UPDATE処理(3000UPDSOR): MONTHLY_ABSENCEにSELECT COUNTINSERTUPDATE
  5. 終了処理(4000MSGOUTSOR): 件数出力→CLOSE→終了メッセージ

使用構文(特記事項)

構文 使用箇所 備考
GO TO DEPENDING ON 1100PARMSOR/1199-SYSIN-LOOP T/P/Mカードパラグラフ分岐
UNSTRING 1110-TARGETSOR/1120-PERIODSOR/1130-MODESOR カンマ/区切り/代入符でカード分割
INSPECT TALLYING 1110-TARGETSOR UNSTRING後のtarget句末尾ゼロ数
COMPUTE ROUNDED ON SIZE ERROR 2000MAJSOR 丸め+サイズエラー検出
DELETE 2100-DELETE-SQL SQL: DAILY_RECORDS DELETE
UPSERTSELECT COUNT→INSERT/UPDATE 3000UPDSOR 月次集計行の存在確認後分岐
OCCURS WORKING-STORAGE TARGET-EMP(100), 内部集計表(9999)
INITIALIZE REPLACING 1110-TARGETSOR TARGET-TABLEの初期化
EXEC SQL INCLUDE WORKING-STORAGE SQLCA