# SHA07KBR 使用資源一覧 ## プログラム概要 - **プログラムID**: SHA07KBR - **プログラム名**: 資格異動キーブレイク処理 - **処理概要**: DB2 QUALIFICATION-CHANGESから資格異動データをFETCHし、従業員ごと(1:N)かつ保険者コード変更時(異キー)にキーブレイクしてサマリ・明細を出力する。 ## 使用ファイル | DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | |------|---------------|------|-------------|-----------|--------| | SHA07W01 | CHG-SUMMARY | 順編成 | F (固定長) | 200B | SHA07REC | | SHA07W02 | CHG-DETAIL | 順編成 | F (固定長) | 200B | SHA07REC | | SHA07W03 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | ## 使用COPY句 | COPY句 | 用途 | 使用箇所 | |--------|------|---------| | SHA07REC | CHG-SUMMARY/CHG-DETAIL レコード定義(W01/W02出力ファイル) | FILE SECTION | | ZAN05REC | エラーログレコード定義(W03出力ファイル) | FILE SECTION | | SQLCA | SQL通信領域 | WORKING-STORAGE | | SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | | SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | | SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | ## 使用サブプログラム | サブPGM | 役割 | CALL箇所 | |---------|------|---------| | SUB01DAT | 運用日付取得 | 1000ITTSOR | | SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | | SUB03END | ABEND処理 | 9999ABDSOR | ## 使用DB2テーブル | DB名 | テーブル名 | I/O | 備考 | |------|-----------|:---:|------| | INSURANCEDB | QUALIFICATION-CHANGES | I | DECLARE CURSOR / FETCH(JOIN with EMP-MASTER) | | SALARYDB | EMP-MASTER | I | JOIN取得(従業員名) | ## 処理フロー 1. 初期処理(開始メッセージ→SUB01DAT運用日取得→OPEN→DB接続→CURSOR宣言(ORDER BY EMP-ID, CHG-DATE)→初回FETCH→WS-PREV初期設定) 2. 主処理:FETCH終了まで繰り返し - EMP-ID主キーブレイク判定:前回≠今回→サマリレコード出力 - INSURER-CODE異キーブレイク判定:前回≠今回→サマリレコード出力 - 明細レコード出力(全FETCHレコード) - WS-PREV更新→次件FETCH 3. 最終グループ処理(最終従業員グループのサマリ/明細出力) 4. 終了処理(CLOSE CURSOR→DISCONNECT→ファイルCLOSE→件数出力→終了メッセージ)