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

2.2 KiB

KIN04CHK 使用資源一覧

プログラム概要

  • プログラムID: KIN04CHK
  • プログラム名: 打刻項目チェック処理
  • 処理概要: CSV形式の打刻データファイルを読み込み、IF多重ネスト(THEN句)による項目チェックを行い、正常レコードをEDITED-PUNCHへ、異常レコードをERROR-LOGへ振り分ける。

使用ファイル

DD名 ファイル識別子 編成 レコード形式 レコード長 COPY句
KIN04R01 RAW-PUNCH 順編成 F (固定長) 80B なし(自前定義)
KIN04W01 EDITED-PUNCH 順編成 F (固定長) 80B KIN04REC
KIN04W02 ERROR-LOG 順編成 V (可変長) 200B KIN05REC

使用COPY句

COPY句 用途 使用箇所
KIN04REC レコード定義(W01出力ファイル) FILE SECTION / WORKING-STORAGE(WRITE FROM用)
KIN05REC エラーログレコード定義(W02出力ファイル) FILE SECTION
ZANDATAC 運用日付サブPGM連絡領域 WORKING-STORAGE
ZANMSGAC メッセージ編集サブPGM連絡領域 WORKING-STORAGE
ZANENDAC ABENDサブPGM連絡領域 WORKING-STORAGE
ZANCHKAC 項目チェックサブPGM連絡領域 WORKING-STORAGE

使用サブプログラム

サブPGM 役割 CALL箇所
SUB01DAT 運用日付取得 1000ITTSOR
SUB02MSG メッセージ編集出力 4000MSGOUTSOR
SUB03END ABEND処理 9999ABDSOR
SUB04CHK 日付/時刻/社員番号妥当性チェック 2020VALIDATESOR

使用DB2テーブル

なし(DB操作なし)

処理フロー

  1. 初期処理(開始メッセージ→運用日付取得→OPEN→初回読込)
  2. CSV分解(UNSTRINGで6項目に分解)
  3. IF多重ネスト(THEN句)で4段階チェック
    • フィールド数=6 AND 社員番号 NOT = SPACE
    • SUB04CHK日付チェック
    • SUB04CHK時刻チェック(出勤/退勤)
    • 出勤時刻 < 退勤時刻
  4. 正常→WRITE FROMでW01出力
  5. 異常→W02出力(エラー区分='02')
  6. 終了処理(CLOSE→件数出力→終了メッセージ)