46 lines
2.0 KiB
Markdown
46 lines
2.0 KiB
Markdown
# 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切断 → 終了処理
|