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

2.2 KiB
Raw Permalink Blame History

ZAN03CHK 使用資源一覧

プログラム概要

  • プログラムID: ZAN03CHK
  • プログラム名: 打刻時間照合処理
  • 処理概要: OVT-NODUPとPUNCH-SORTEDを突合し申請時間帯の照合を行う。申請時間帯が出勤〜退勤の範囲内かを確認する。申請日が休日かを判定しOVT-TYPEを付加する。

使用ファイル

DD名 ファイル識別子 編成 レコード形式 レコード長 COPY句
ZAN03R01 OVT-NODUP 順編成 F (固定長) 80B ZAN01REC
ZAN03R02 PUNCH-SORTED 順編成 F (固定長) 80B なし(自前定義:20B+56B
ZAN03R03 HOLIDAY 順編成 F (固定長) 80B なし(自前定義:9B+71B
ZAN03W01 OVT-CHECKED 順編成 F (固定長) 80B ZAN01REC
ZAN03W02 ERROR-LOG 順編成 V (可変長) 200B ZAN05REC

使用COPY句

COPY句 用途 使用箇所
ZAN01REC レコード定義(R01入力/W01出力) FILE SECTION
ZAN05REC エラーログレコード定義(W02出力) FILE SECTION
ZANMSGAC メッセージ編集サブPGM連絡領域 WORKING-STORAGE

使用サブプログラム

サブPGM 役割 CALL箇所
SUB02MSG メッセージ編集出力 4000MSGOUTSOR

使用DB2テーブル

なし(DB操作なし)

処理フロー

  1. 初期処理(開始メッセージ→OPEN
  2. 休日ファイル(R03)全件読込→HOLIDAY-TABLE設定(OCCURS 1366
  3. メイン処理:R01とR02のキー比較(社員番号+日付)
    • R01 < R02 → 打刻データなしエラー(W02出力)
    • R01 = R02 → 時間範囲チェック
      • 申請時間帯が出勤〜退勤の範囲内 → OVT-TYPE設定(SEARCH ALL休日判定)→ W01出力
      • 範囲外 → エラー(W02出力)
    • R01 > R02 → R02読み飛ばし
  4. 終了処理(CLOSE→件数出力→終了メッセージ)

備考

  • SUB01DAT不使用:日付取得不要のためFUNCTION CURRENT-DATEも使用しない
  • R02FILLER = 56BPUNCH-SORTEDのフォーマット:社員番号8B+日付8B+出勤4B+退勤4B+予備56B