- Add SHA01CVT-SHA10S10: all 10 programs, COPY books (13), binaries, design docs, resource usage lists, DDL schema_sha.sql - Add KYU01REC-KYU06REC COPY books (previously missing from git) - Fix design-code inconsistencies detected in audit: - SHA07KBR: remove dead SHACHKAC COPY (SUB04CHK never called) - SHA02MNC: 2020TYPSOR paragraph -> inline EVALUATE; SUB04CHK = PARM val - SHA05TWN: REVISED-TYPE values 'C'/'N' -> 'A'(定期決定)/'B'(月変) - SHA03MNP: 2010CALCSOR/2020WRTSOR -> inline implementation - SHA04TWO: remove GRADE-HISTORY from DB table list (not accessed) - SHA06TWM: add SALARYDB.EMP-MASTER to DB table list - SHA10S10: fix error file W99OUTFIL, 10+1 file count - Fix comment column alignment (Area A col 7) in SHA07KBR, SHA08SRT - Update KYU source/design docs: BOM removal, classification comment cleanup - Update README: Subsystem D added, program count 39
52 lines
2.5 KiB
Markdown
52 lines
2.5 KiB
Markdown
# 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→件数出力→終了メッセージ)
|