2.0 KiB
2.0 KiB
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セクション廃止) |
処理フロー
- PARM解析(YEARMONTH取得)
- DB接続 → 休日データ読込 → 社員CURSOR OPEN
- 社員ループ(PERFORM UNTIL EOF)
- 日付ループ(PERFORM VARYING 当月1日〜月末日)
- PERFORM VARYING 線形探索で休日判定 + 曜日判定(部分埋めテーブルのためSEARCH ALL不使用)
- 出勤日 → WRITE FROM出力
- 日付ループ(PERFORM VARYING 当月1日〜月末日)
- CURSOR CLOSE → DB切断 → 終了処理