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

3.3 KiB
Raw Permalink Blame History

KIN08DBU 使用資源一覧

プログラム概要

  • プログラムID: KIN08DBU
  • プログラム名: 勤怠DB更新処理
  • 処理概要: SYSIN制御カード(T/P/M)で処理対象を指定し、DAILY_RECORD200B)を読込み、DAILY_RECORDSテーブルにINSERT。社員別月次集計後MONTHLY_ABSENCEにUPSERT。集計結果をABSENCE_SUMMARYファイル(80B)に出力。

使用ファイル

DD名 ファイル識別子 編成 レコード形式 レコード長 COPY句 定義参照先
KIN08R01 DAILY-RECORD(日別勤怠) 順編成 F (固定長) 200B KIN07REC COPY句定義書.md
KIN08S01 SYSIN(制御カード) 順編成 F (固定長) 80B - JCL DD定義
KIN08W01 ABSENCE-SUMMARY(月次集計) 順編成 F (固定長) 80B KIN08REC COPY句定義書.md

使用COPY句

COPY句 用途 使用箇所
KIN07REC DAILY-RECORDR01入力レコード定義) FILE SECTIONFD R01INNFIL
KIN08REC ABSENCE-SUMMARYW01出力レコード定義) FILE SECTIONFD W01OUTFIL
ZANMSGAC メッセージ編集サブPGM連絡領域 WORKING-STORAGE
ZANENDAC ABENDサブPGM連絡領域 WORKING-STORAGE

使用サブプログラム

サブPGM 役割 CALL箇所
SUB02MSG メッセージ編集出力 4000MSGOUTSOR
SUB03END ABEND処理 1000ITTSOR(パラメータ不足時)/ 9100DBERRSOR / 9999ABDSOR

使用DB2テーブル

テーブル名 操作種別 使用箇所 SQL種別
DAILY_RECORDS INSERT 2000MAJSOR INSERT
MONTHLY_ABSENCE DELETE/SELECT/INSERT/UPDATE 3000STPSOR DELETERESETモード)/ SELECT COUNT / INSERT / UPDATE

処理フロー

  1. 初期処理(1000ITTSOR): 開始メッセージ→OPEN SYSIN→SYSIN読込ループ
  2. SYSINカード解析(1199-SYSIN-LOOP): GO TO DEPENDING ON でT/P/M分岐
    • Tカード(1110-TARGETSOR): UNSTRINGで対象社員一覧を内部表に格納
    • Pカード(1120-PERIODSOR): 処理対象年月を設定
    • Mカード(1130-MODESOR): MODERESET/NORMAL)を設定
  3. 主処理(2000MAJSOR): DAILY-RECORD読込→DAILY_RECORDS INSERT→集計テーブルに累積
  4. 終了処理(3000STPSOR): RESET時DELETE→MONTHLY_ABSENCE UPSERT→ABSENCE_SUMMARY出力→COMMIT→CLOSE

使用構文(特記事項)

構文 使用箇所 備考
GO TO DEPENDING ON 1199-SYSIN-LOOP T/P/Mカードパラグラフ分岐
UNSTRING 1110-TARGETSOR / 1120-PERIODSOR カンマ区切り/代入符で文字列分割
INSPECT TALLYING 2000MAJSOR 社員番号先頭ゼロ数チェック
COMPUTE ROUNDED ON SIZE ERROR 2000MAJSOR 丸め+サイズエラー検出
UPSERTSELECT COUNT→INSERT/UPDATE 3000STPSOR 月次集計行の存在確認後分岐
OCCURS WORKING-STORAGE AGG-ENTRIES(100), TARGET-EMP(100)
INITIALIZE 1000ITTSOR WRKARA + AGGREGATION-TABLE初期化
EXEC SQL INCLUDE WORKING-STORAGE SQLCA(ブリッジ変数)
FUNCTION WHEN-COMPILED 1000ITTSOR コンパイル日時表示
INSPECT REPLACING 1130-MODESOR 'MODE='除去