# SHA03MNP 使用資源一覧 ## プログラム概要 - **プログラムID**: SHA03MNP - **プログラム名**: 保険料計算明細出力処理 - **処理概要**: EMP-INSURANCE×INSURANCE-RATESの直積組合せにより保険料計算明細を出力する(M:N→M×N件出力)。 ## 使用ファイル | DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | |------|---------------|------|-------------|-----------|--------| | SHA03R01 | EMP-INSURANCE | 順編成 | F (固定長) | 200B | SHA02REC | | SHA03W01 | INS-DETAIL | 順編成 | F (固定長) | 300B | SHA03REC | | SHA03W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | ## 使用COPY句 | COPY句 | 用途 | 使用箇所 | |--------|------|---------| | SHA02REC | EMP-INSURANCE レコード定義(R01入力ファイル) | FILE SECTION | | SHA03REC | INS-DETAIL レコード定義(W01出力ファイル) | FILE SECTION | | ZAN05REC | エラーログレコード定義(W02出力ファイル) | 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 | INSURANCE-RATES | I | 料率取得(内部表LOAD) | ## 処理フロー 1. 初期処理(開始メッセージ→SUB01DAT運用日取得→PARM取得→DB接続→INSURANCE-RATES内部表LOAD→OPEN→R01初回READ) 2. 主処理:R01終了まで繰り返し - 直積組合せ生成:従業員×全RATESエントリ - 健康保険: HEALTH-PREMIUM = MONTHLY-AMOUNT × HEALTH-RATE (ROUNDED) - 厚生年金: PENSION-PREMIUM = MONTHLY-AMOUNT × PENSION-RATE (ROUNDED) - W01(INS-DETAIL)出力 - R01次件READ 3. 終了処理(CLOSE→件数出力→終了メッセージ)