# SHA02MNC 使用資源一覧 ## プログラム概要 - **プログラムID**: SHA02MNC - **プログラム名**: 従業員保険情報統合処理 - **処理概要**: DB2 EMP-MASTERとINSURANCE-RATESをマッチングし、従業員単位に統合出力する(M:N→M件マッチング)。 ## 使用ファイル | DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | |------|---------------|------|-------------|-----------|--------| | SHA02W01 | EMP-INSURANCE | 順編成 | F (固定長) | 200B | SHA02REC | | SHA02W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | ## 使用COPY句 | COPY句 | 用途 | 使用箇所 | |--------|------|---------| | SHA02REC | EMP-INSURANCE レコード定義(W01出力ファイル) | FILE SECTION | | ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION | | SQLCA | SQL通信領域 | WORKING-STORAGE | | SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | | SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | | SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | | SHACHKAC | 項目チェックサブPGM連絡領域 | WORKING-STORAGE | ## 使用サブプログラム | サブPGM | 役割 | CALL箇所 | |---------|------|---------| | SUB01DAT | 運用日付取得 | 1000ITTSOR | | SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | | SUB03END | ABEND処理 | 9999ABDSOR | | SUB04CHK | PARM検証 | 1000ITTSOR | ## 使用DB2テーブル | DB名 | テーブル名 | I/O | 備考 | |------|-----------|:---:|------| | SALARYDB | EMP-MASTER | I | 従業員マスタ(SELECT) | | INSURANCEDB | INSURANCE-RATES | I | 料率テーブル(内部表LOAD) | ## 処理フロー 1. 初期処理(開始メッセージ→SUB01DAT運用日取得→PARM取得→DB接続→INSURANCE-RATES内部表LOAD→EMP-MASTER CURSOR OPEN/初回FETCH→出力ファイルOPEN) 2. 主処理:EMP-MASTER終了まで繰り返し - 内部表線形探索(BASE-SALARYに合致するGRADE-CODE特定→該当なしはW02出力) - 種別判定(DEPT-CODEでHEALTH-INS-TYPE/PENSION-TYPE判定) - INSURER-CODE設定 - W01(EMP-INSURANCE)出力 - 次従業員FETCH 3. 終了処理(CLOSE CURSOR→ファイルCLOSE→件数出力→終了メッセージ)