# KIN06CLD 使用資源一覧 ## プログラム概要 - **プログラムID**: KIN06CLD - **プログラム名**: 出勤日カレンダー生成処理 - **処理概要**: PARM指定年月の出勤日カレンダーを生成。在籍社員全員 × 当月全日をループし、休日判定を行って出勤日のみ出力。 ## 使用ファイル | DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | |------|---------------|------|-------------|-----------|--------| | KIN06W01 | WORK-DAY-FILE | 順編成 | F (固定長) | 80B | KIN06REC | ## 使用COPY句 | COPY句 | 用途 | 使用箇所 | |--------|------|---------| | KIN06REC | OUTREC出力レコード定義 | FILE SECTION | | ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | | ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | > 注: DBブリッジ変数(WS-SQL-STR, SQLCODE, WS-COL-IDX, WS-COL-LEN)はCOPY句`DB-COMMON`ではなく、プリプロセッサ`convert-sql.mjs`によりWORKING-STORAGEに注入される。`cpy/DB-COMMON.cpy`は存在しない。 ## 使用DBテーブル | テーブル名 | 種別 | 操作 | 備考 | |-----------|------|------|------| | EMP_MASTER | 参照 | SELECT (CURSOR) | 在籍社員一覧(STATUS='1') | | HOLIDAY_CALENDAR | 参照 | SELECT | 対象月の休日一覧 | ## 使用サブプログラム | サブPGM | 役割 | CALL箇所 | |---------|------|---------| | SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | | SUB03END | ABEND処理 | 1100PARMSOR (直接CALL、9999ABDSORセクション廃止) | ## 処理フロー 1. PARM解析(YEARMONTH取得) 2. DB接続 → 休日データ読込 → 社員CURSOR OPEN 3. 社員ループ(PERFORM UNTIL EOF) - 日付ループ(PERFORM VARYING 当月1日〜月末日) - PERFORM VARYING 線形探索で休日判定 + 曜日判定(部分埋めテーブルのためSEARCH ALL不使用) - 出勤日 → WRITE FROM出力 4. CURSOR CLOSE → DB切断 → 終了処理