Subsystem B cleanup: dead code removal, sort-key fix, ZAN04MAT/ZAN05CAL/ZAN06UPD updates, resource lists added

This commit is contained in:
qiuqiuqiu
2026-06-19 12:39:49 +08:00
parent a74a5aaa04
commit 164451dda5
19 changed files with 353 additions and 67 deletions
@@ -0,0 +1,72 @@
# ZAN06UPD 使用資源一覧
## プログラム概要
- **プログラムID**: ZAN06UPD
- **プログラム名**: 残業統計DB更新処理
- **処理概要**: OVT-SUMMARYの各レコードをDBにINSERT/UPSERTし、OVT-DBCLEANの各レコードについて該当申請を取消状態に更新する。DB2テーブル操作を含む全サブシステムB唯一のDB更新プログラム。
## 使用ファイル
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|------|---------------|------|-------------|-----------|--------|
| ZAN06R01 | OVT-SUMMARY | 順編成 | F (固定長) | 80B | ZAN03REC |
| ZAN06R02 | OVT-DBCLEAN | 順編成 | F (固定長) | 80B | ZAN04REC |
| ZAN06W01 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC |
## 使用COPY句
| COPY句 | 用途 | 使用箇所 |
|--------|------|---------|
| ZAN03REC | OVT-SUMMARYレコード定義(R01入力) | FILE SECTION |
| ZAN04REC | OVT-DBCLEANレコード定義(R02入力) | FILE SECTION |
| ZAN05REC | エラーログレコード定義(W01出力) | FILE SECTION |
| ZANDATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE |
| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE |
| ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE |
## 使用サブプログラム
| サブPGM | 役割 | CALL箇所 |
|---------|------|---------|
| SUB01DAT | 運用日付取得 | 1000ITTSOR |
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
| SUB03END | ABEND処理 | 9999ABDSOR |
## 使用DB2テーブル
| テーブル名 | 操作種別 | 説明 |
|------------|---------|------|
| OVT_APPLICATIONS | INSERT / UPDATE | 申請データ登録・更新(取消) |
| OVT_MONTHLY | SELECT / INSERT / UPDATE | 月次集計テーブル(加算・減算) |
## 実行SQL一覧
| SQL種別 | 内容 | 該当箇所 |
|---------|------|---------|
| CONNECT TO | DB接続(data\OVERTIME.DB | 1000ITTSOR |
| INSERT INTO ... OVT_APPLICATIONS | 申請データ新規登録 | 2100SUMMARYSOR |
| UPDATE ... OVT_APPLICATIONS | 重複時更新(STATUS | 2100SUMMARYSOR |
| SELECT ... OVT_MONTHLY | 月次集計存在確認 | 2110MONTHLYUPSOR |
| UPDATE ... OVT_MONTHLY (+加算) | 月次集計加算 | 2110MONTHLYUPSOR |
| INSERT INTO ... OVT_MONTHLY | 月次集計新規作成 | 2110MONTHLYUPSOR |
| SELECT ... OVT_APPLICATIONS | 取消データ取得 | 2200DBCLEANSOR |
| UPDATE ... OVT_APPLICATIONS (取消) | 申請ステータス取消 | 2200DBCLEANSOR |
| UPDATE ... OVT_MONTHLY (-減算) | 月次集計減算(リトライ3回) | 2210MONTHLYSUBSOR |
| COMMIT WORK | 50件毎/最終コミット | 2300COMMITDBX |
| ROLLBACK WORK | DBエラー時ロールバック | 9100DBERRSOR |
## 処理フロー
1. 初期処理(開始メッセージ→運用日付取得→OPEN→DB CONNECT→R01/R02初回読込)
2. フェーズ1OVT-SUMMARY処理):
- SQLホスト変数設定(年月抽出・時刻変換・時間→分変換)
- OVT_APPLICATIONSにINSERT
- 成功 → INSERTカウンタ+1
- 重複エラー(SQLCODE≠0) → UPDATESTATUS更新)
- OVT_MONTHLY UPSERT(存在確認SELECT→UPDATE/INSERT
- 50件毎にCOMMIT
3. フェーズ2OVT-DBCLEAN処理):
- OVT_APPLICATIONSから既存データSELECT
- 該当なし(孤立取消) → ERROR-LOG出力+ABEND(999)
- OVT_APPLICATIONSステータス更新('9'=取消)
- OVT_MONTHLY減算(3回リトライ付きUPDATE)
4. 終了処理(最終COMMIT→CLOSE→件数出力→終了メッセージ)