# SHA06TWM 使用資源一覧 ## プログラム概要 - **プログラムID**: SHA06TWM - **プログラム名**: 保険料率適用・控除計算処理 - **処理概要**: EMP-INSURANCEをDB2 INSURANCE-RATES(M×N)とAPPLICABLE-RULES(M:N)の2段階マッチングにより保険料を算出しDEDUCTED-RESULTを出力する。 ## 使用ファイル | DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | |------|---------------|------|-------------|-----------|--------| | SHA06R01 | EMP-INSURANCE | 順編成 | F (固定長) | 200B | SHA02REC | | SHA06R02 | APPLICABLE-RULES | 順編成 | F (固定長) | 80B | なし(自前定義) | | SHA06W01 | DEDUCTED-RESULT | 順編成 | F (固定長) | 300B | SHA06REC | | SHA06W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | ## 使用COPY句 | COPY句 | 用途 | 使用箇所 | |--------|------|---------| | SHA02REC | EMP-INSURANCE レコード定義(R01入力ファイル) | FILE SECTION | | SHA06REC | DEDUCTED-RESULT レコード定義(W01出力ファイル) | FILE SECTION | | ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION | | SQLCA | SQL通信領域 | WORKING-STORAGE | | SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | | SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | | SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | ## 使用サブプログラム | サブPGM | 役割 | CALL箇所 | |---------|------|---------| | SUB01DAT | 運用日付取得 | 1000ITTSOR | | SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | | SUB03END | ABEND処理 | 9999ABDSOR | ## 使用DB2テーブル | DB名 | テーブル名 | I/O | 備考 | |------|-----------|:---:|------| | INSURANCEDB | INSURANCE-RATES | I | 料率取得(SELECT) | | SALARYDB | EMP-MASTER | I | 誕生日・扶養人数・地域コード取得(SELECT) | ## 処理フロー 1. 初期処理(開始メッセージ→SUB01DAT運用日取得→OPEN→DB接続→R02全件読込→RULE-TBL格納→R01初回READ) 2. 主処理:R01終了まで繰り返し - 第1段階:保険料率M×Nマッチング(GRADE-CODEでDB2 INSURANCE-RATES SELECT→料率取得、保険料計算) - 第2段階:適用ルールM:Nマッチング(年齢算出→RULE-TBL線形探索→料率調整→保険料再計算) - W01(DEDUCTED-RESULT)出力 - R01次件READ 3. 終了処理(CLOSE→件数出力→終了メッセージ)