61 lines
2.7 KiB
Markdown
61 lines
2.7 KiB
Markdown
# 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)→件数出力→終了メッセージ)
|