2.7 KiB
2.7 KiB
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 |
処理フロー
- 初期処理(開始メッセージ→DB接続→OPEN(R01/W01)→初回読込)
- ホスト変数設定(R01→WS-*)
- ロジック分岐(EVALUATE)
- STATUS='1' AND APPL-ID=0 → INSERT
- STATUS='1' AND APPL-ID>0 → DELETE + INSERT
- STATUS='9' → DELETE
- その他 → スキップ
- SQLエラー時 → ROLLBACK + ERROR-LOG出力(W01) + エラーメッセージ + ABEND
- 終了処理(COMMIT→CLOSE(R01/W01)→件数出力→終了メッセージ)