Files
cobol-tna-system/使用資源一覧/KIN02UPD_使用資源一覧.md

61 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 |
| SELECT | COALESCE(MAX(APPLICATION_ID),0)+1 FROM LEAVE_RECORDS | 常時(初期処理時) | 1000ITTSOR |
| INSERT | LEAVE_RECORDSへ追加(APPLICATION_ID含む) | STATUS='1' AND APPL-ID=0 | 2110INSERTSOR |
| DELETE | APPLICATION_ID一致削除+INSERT | STATUS='1' AND APPL-ID>0 | 2120UPDATESOR |
| INSERT | LEAVE_RECORDSへ追加(変更後、APPLICATION_ID含む) | 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)→件数出力→終了メッセージ)