repository restructure: move .git to production/, rename dirs (design→基本設計書, list→品質管理, docs→参考資料), add Subsystem A KIN01-03 files, update AGENTS.md and README.md, cleanup tmp/ tools/ bk/

This commit is contained in:
qiuqiuqiu
2026-06-27 01:09:40 +08:00
parent 6754df70cd
commit 3379941b44
22 changed files with 3325 additions and 57 deletions
@@ -0,0 +1,51 @@
# KIN01INP 使用資源一覧
## プログラム概要
- **プログラムID**: KIN01INP
- **プログラム名**: 休暇申請CSV取込・検証処理
- **処理概要**: CSV形式の休暇申請ファイルを読み込み、休暇種別テーブル検索と項目チェックを行い、ステータスによってWORK-LEAVEまたはERROR-LOGへ振り分ける。
## 使用ファイル
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|------|---------------|------|-------------|-----------|--------|
| KIN01R01 | CSV-INPUT | 順編成 | F (固定長) | 80B | なし(自前定義) |
| KIN01W01 | WORK-LEAVE | 順編成 | F (固定長) | 80B | KIN01REC |
| KIN01W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | KIN05REC |
## 使用COPY句
| COPY句 | 用途 | 使用箇所 |
|--------|------|---------|
| KIN01REC | レコード定義(W01出力ファイル) | FILE SECTION |
| 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 | 日付/時刻/社員番号妥当性チェック | 2030VALIDATESOR |
## 使用DB2テーブル
なし(DB操作なし)
## 処理フロー
1. 初期処理(開始メッセージ→休暇種別テーブル設定→運用日付取得→OPEN→初回読込)
2. CSV分解(UNSTRINGで8項目に分解)
3. 休暇種別テーブル検索(SEARCH)
4. エラー前提判定
- フィールド数≠8 → ERROR-LOG出力(種別:F
- 休暇種別未発見 → ERROR-LOG出力(種別:L
5. ステータス判定
- ステータス'1'(有効)→ 項目チェック(SUB04CHK: 開始日付/時刻、終了日付/時刻)→ WORK-LEAVE出力(APPL-ID=0
- ステータス'9'(取消)→ WORK-LEAVE出力(APPL-ID保持、チェックなし)
- その他(エラー)→ ERROR-LOG出力(種別:S
6. 終了処理(CLOSE→件数出力→終了メッセージ)
@@ -0,0 +1,59 @@
# KIN02UPD 使用資源一覧
## プログラム概要
- **プログラムID**: KIN02UPD
- **プログラム名**: 休暇申請DB更新処理
- **処理概要**: WORK-LEAVEファイルの各レコードをDB2テーブルLEAVE_RECORDSに反映する。ステータスに応じて新規登録(INSERT)、変更(DELETE+INSERT)、取消(DELETE)を行う。
## 使用ファイル
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|------|---------------|------|-------------|-----------|--------|
| KIN01W01 | WORK-LEAVE | 順編成 | F (固定長) | 80B | KIN01REC |
| KIN02W01 | ERROR-LOG | 順編成 | V (可変長) | 200B | KIN05REC |
## 使用COPY句
| COPY句 | 用途 | 使用箇所 |
|--------|------|---------|
| KIN01REC | レコード定義(R01入力ファイル) | FILE SECTION |
| KIN05REC | エラーログレコード定義(W01出力) | FILE SECTION |
| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE |
| ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE |
| SQLCA | SQL通信領域 | WORKING-STORAGE |
## 使用サブプログラム
| サブPGM | 役割 | CALL箇所 |
|---------|------|---------|
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
| SUB03END | ABEND処理 | 9999ABDSOR |
## 使用DB2テーブル
| テーブル名 | 操作 | 備考 |
|-----------|------|------|
| LEAVE_RECORDS | INSERT, DELETE | APPLICATION_ID=0→INSERT, >0→DELETE+INSERT, STATUS='9'→DELETE |
## EXEC SQL一覧
| SQL種別 | 処理 | 実行条件 | 使用箇所 |
|---------|------|---------|---------|
| CONNECT | TO 'data/kin.db' | 常時 | 1000ITTSOR |
| INSERT | LEAVE_RECORDSへ追加 | STATUS='1' AND APPL-ID=0 | 2110INSERTSOR |
| DELETE | APPLICATION_ID一致削除+INSERT | STATUS='1' AND APPL-ID>0 | 2120UPDATESOR |
| INSERT | LEAVE_RECORDSへ追加(変更後) | STATUS='1' AND APPL-ID>0 | 2120UPDATESOR |
| DELETE | APPLICATION_ID一致削除 | STATUS='9' | 2130DELETESOR |
| COMMIT | WORK | 常時 | 3000STPSOR |
| ROLLBACK | WORK | SQLエラー時 | 9100DBERRSOR |
## 処理フロー
1. 初期処理(開始メッセージ→DB接続→OPEN(R01/W01)→初回読込)
2. ホスト変数設定(R01→WS-*
3. ロジック分岐(EVALUATE
- STATUS='1' AND APPL-ID=0 → INSERT
- STATUS='1' AND APPL-ID>0 → DELETE + INSERT
- STATUS='9' → DELETE
- その他 → スキップ
4. SQLエラー時 → ROLLBACK + ERROR-LOG出力(W01) + エラーメッセージ + ABEND
5. 終了処理(COMMIT→CLOSE(R01/W01)→件数出力→終了メッセージ)
@@ -0,0 +1,61 @@
# KIN03EXP 使用資源一覧
## プログラム概要
- **プログラムID**: KIN03EXP
- **プログラム名**: 休暇日別展開処理
- **処理概要**: LEAVE_RECORDS(DB2)より有効申請(STATUS='1')を読込み、開始日〜終了日の期間を日別に展開し、休日・週末を除外してLEAVE-DAILYファイルを出力する。社員番号キーブレイクで小計出力を行う。
## 使用ファイル
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|------|---------------|------|-------------|-----------|--------|
| KIN02W01.DAT | LEAVE-DAILY | 順編成 | F (固定長) | 80B | KIN02REC |
## 使用COPY句
| COPY句 | 用途 | 使用箇所 |
|--------|------|---------|
| KIN02REC | レコード定義(W01出力ファイル) | FILE SECTION |
| ZANDATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE |
| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE |
| ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE |
| SQLCA | SQL通信領域 | WORKING-STORAGE |
## 使用サブプログラム
| サブPGM | 役割 | CALL箇所 |
|---------|------|---------|
| SUB01DAT | 運用日付取得 | 1000ITTSOR |
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
| SUB03END | ABEND処理 | 9999ABDSOR |
| br_fetch_next | SQLカーソル次行FETCHbridge | 1100C1FETCHSOR, 1200HDINNSOR |
| br_get_col | SQLカラム値取得(bridge | 1100C1FETCHSOR, 1200HDINNSOR |
## 使用DB2テーブル
| テーブル名 | 操作 | 備考 |
|-----------|------|------|
| LEAVE_RECORDS | SELECT | STATUS='1'、ORDER BY EMP_ID, START_DATE |
| HOLIDAY_CALENDAR | SELECT | 休日マスタ、ORDER BY HOLIDAY_DATE |
## EXEC SQL一覧
| SQL種別 | 処理 | 実行条件 | 使用箇所 |
|---------|------|---------|---------|
| CONNECT | TO 'data/kin.db' | 常時 | 1000ITTSOR |
| SELECT | HOLIDAY_DATE FROM HOLIDAY_CALENDAR | 常時(初回のみ) | 1200HDINNSOR |
| SELECT | LEAVE_RECORDS(全件) | 常時(初回のみ) | 1100C1INITSOR |
## 処理フロー
1. 初期処理(開始メッセージ→DB接続→運用日付取得)
2. 休日カレンダー全件読込(WORKING-STORAGEに格納)
3. 出力ファイルOPEN
4. DB初回FETCHLEAVE_RECORDSSTATUS='1'、ORDER BY EMP_ID, START_DATE
5. 社員番号キーブレイクループ
- 社員別に期間内を日別展開
- 週末判定(MOD(INTEGER-OF-DATE,7)=0/6)→除外
- 休日判定(SEARCH ALL on WRK-HOLIDAY-TABLE)→除外
- 非週末・非休日 → LEAVE-DAILY出力
- 日付加算(月跨ぎ/閏年対応)
- キーブレイク時:社員別小計メッセージ出力
6. 終了処理(CLOSE→件数出力→終了メッセージ)
@@ -32,7 +32,7 @@
| SUB01DAT | 運用日付取得 | 1000ITTSOR |
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
| SUB03END | ABEND処理 | 9999ABDSOR |
| SUB04CHK | 日付妥当性チェック | 2020VALIDATESOR |
| SUB04CHK | 日付/社員番号妥当性チェック | 2020VALIDATESOR |
## 使用DB2テーブル