Add Subsystem D (SHA01-10): social insurance subsystem + design-resource consistency fixes
- 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
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# SHA01CVT 使用資源一覧
|
||||
|
||||
## プログラム概要
|
||||
- **プログラムID**: SHA01CVT
|
||||
- **プログラム名**: 被保険者資格データ変換処理
|
||||
- **処理概要**: ASCII CSVの被保険者資格データをINSPECT CONVERTINGでEBCDIC固定長に変換する。半角桁数チェックを内部処理として実施。
|
||||
|
||||
## 使用ファイル
|
||||
|
||||
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|
||||
|------|---------------|------|-------------|-----------|--------|
|
||||
| SHA01R01 | INS-CSV-ASCII | 順編成 | F (固定長) | 500B | なし(自前定義) |
|
||||
| SHA01W01 | INSURED-DATA | 順編成 | F (固定長) | 200B | SHA01REC |
|
||||
| SHA01W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC |
|
||||
|
||||
## 使用COPY句
|
||||
|
||||
| COPY句 | 用途 | 使用箇所 |
|
||||
|--------|------|---------|
|
||||
| SHA01REC | INSURED-DATA レコード定義(W01出力ファイル) | FILE SECTION |
|
||||
| ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION |
|
||||
| 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 | 日付/数値妥当性チェック | 2020HALFSOR |
|
||||
|
||||
## 使用DB2テーブル
|
||||
|
||||
なし(DB操作なし)
|
||||
|
||||
## 処理フロー
|
||||
1. 初期処理(開始メッセージ→コンパイル日時出力→ワーク初期化→SUB01DAT運用日取得→OPEN→初回読込)
|
||||
2. 主処理:R01終了まで繰り返し
|
||||
- CSV分解(UNSTRINGでカンマ区切り→各項目)
|
||||
- 半角桁数チェック(氏名カナ20/被保険者番号10/事業所番号4/日付妥当性/数値妥当性→エラーはW02出力)
|
||||
- ASCII→EBCDIC変換(変換テーブルで各バイト変換→INSURED-DATAレコードにMOVE)
|
||||
- W01(INSURED-DATA)出力
|
||||
- R01次件READ
|
||||
3. 終了処理(CLOSE→件数出力→終了メッセージ)
|
||||
@@ -0,0 +1,51 @@
|
||||
# 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→件数出力→終了メッセージ)
|
||||
@@ -0,0 +1,50 @@
|
||||
# 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→件数出力→終了メッセージ)
|
||||
@@ -0,0 +1,53 @@
|
||||
# SHA04TWO 使用資源一覧
|
||||
|
||||
## プログラム概要
|
||||
- **プログラムID**: SHA04TWO
|
||||
- **プログラム名**: 事業所保険者マッチング処理
|
||||
- **処理概要**: INSURED-DATAをOFFICE-MST/INSURER-MSTの2段階で1:1マッチングし、GRADED-LIST/UNMATCHED-LISTを出力する。
|
||||
|
||||
## 使用ファイル
|
||||
|
||||
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|
||||
|------|---------------|------|-------------|-----------|--------|
|
||||
| SHA04R01 | INSURED-DATA | 順編成 | F (固定長) | 200B | SHA01REC |
|
||||
| SHA04R02 | OFFICE-MST | 順編成 | F (固定長) | 80B | なし(自前定義) |
|
||||
| SHA04R03 | INSURER-MST | 順編成 | F (固定長) | 80B | なし(自前定義) |
|
||||
| SHA04W01 | GRADED-LIST | 順編成 | F (固定長) | 200B | SHA04REC |
|
||||
| SHA04W02 | UNMATCHED-LIST | 順編成 | F (固定長) | 200B | なし(自前定義) |
|
||||
| SHA04W03 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC |
|
||||
|
||||
## 使用COPY句
|
||||
|
||||
| COPY句 | 用途 | 使用箇所 |
|
||||
|--------|------|---------|
|
||||
| SHA01REC | INSURED-DATA レコード定義(R01入力ファイル) | FILE SECTION |
|
||||
| SHA04REC | GRADED-LIST レコード定義(W01出力ファイル) | FILE SECTION |
|
||||
| ZAN05REC | エラーログレコード定義(W03出力ファイル) | 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 | INSURED-MASTER | I | 履歴整合性確認 |
|
||||
|
||||
|
||||
## 処理フロー
|
||||
1. 初期処理(開始メッセージ→SUB01DAT運用日取得→OPEN→R02全件読込→OFFICE-TBL格納→R03全件読込→INSURER-TBL格納→DB接続→R01初回READ)
|
||||
2. 主処理:R01終了まで繰り返し
|
||||
- 第1段階マッチング:OFFICE-NO vs OFFICE-TBL線形探索→成功なら第2段階、失敗ならW02出力
|
||||
- 第2段階マッチング:INSURER-CODE vs INSURER-TBL線形探索→成功ならW01出力、失敗ならW02出力
|
||||
- DB2整合性検証:W01出力時INSURED-MASTER SELECT、異常はW03出力
|
||||
- R01次件READ
|
||||
3. 終了処理(CLOSE→件数出力→終了メッセージ)
|
||||
@@ -0,0 +1,46 @@
|
||||
# SHA05TWN 使用資源一覧
|
||||
|
||||
## プログラム概要
|
||||
- **プログラムID**: SHA05TWN
|
||||
- **プログラム名**: 標準報酬月額等級判定処理
|
||||
- **処理概要**: SALARY-MONTHLYをEMP-IDでN:1キーブレイク集約し、平均標準報酬月額とGRADE-TBLをN:1マッチングして等級改定を判定する。
|
||||
|
||||
## 使用ファイル
|
||||
|
||||
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|
||||
|------|---------------|------|-------------|-----------|--------|
|
||||
| SHA05R01 | SALARY-MONTHLY | 順編成 | F (固定長) | 200B | なし(自前定義) |
|
||||
| SHA05R02 | GRADE-TBL | 順編成 | F (固定長) | 80B | なし(自前定義) |
|
||||
| SHA05W01 | REVISED-GRADE | 順編成 | F (固定長) | 200B | SHA05REC |
|
||||
| SHA05W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC |
|
||||
|
||||
## 使用COPY句
|
||||
|
||||
| COPY句 | 用途 | 使用箇所 |
|
||||
|--------|------|---------|
|
||||
| SHA05REC | REVISED-GRADE レコード定義(W01出力ファイル) | FILE SECTION |
|
||||
| ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION |
|
||||
| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE |
|
||||
| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE |
|
||||
| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE |
|
||||
|
||||
## 使用サブプログラム
|
||||
|
||||
| サブPGM | 役割 | CALL箇所 |
|
||||
|---------|------|---------|
|
||||
| SUB01DAT | 運用日付取得 | 1000ITTSOR |
|
||||
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
|
||||
| SUB03END | ABEND処理 | 9999ABDSOR |
|
||||
|
||||
## 使用DB2テーブル
|
||||
|
||||
なし(DB操作なし)
|
||||
|
||||
## 処理フロー
|
||||
1. 初期処理(開始メッセージ→SUB01DAT運用日取得→PARM取得→OPEN→R02全件読込→GRADE-TBL格納→R01初回READ)
|
||||
2. 主処理:R01終了まで繰り返し
|
||||
- 第1段階:キーブレイクN:1集約(同一EMP-ID: MONTHLY-AMOUNT累積→キー変更時: DIVIDEで平均標準報酬月額算出、TYPE='A'/'B'判定→該当なしはW02出力)
|
||||
- 第2段階:等級テーブルN:1マッチング(GRADE-TBL線形探索→平均額に合致する等級コード取得→該当なしはW02出力、OLD≠NEWならW01出力)
|
||||
- WRK-ACCUM INITIALIZE
|
||||
- R01次件READ
|
||||
3. 終了処理(最終キーグループ処理→CLOSE→件数出力→終了メッセージ)
|
||||
@@ -0,0 +1,51 @@
|
||||
# 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→件数出力→終了メッセージ)
|
||||
@@ -0,0 +1,52 @@
|
||||
# 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→件数出力→終了メッセージ)
|
||||
@@ -0,0 +1,47 @@
|
||||
# SHA08SRT 使用資源一覧
|
||||
|
||||
## プログラム概要
|
||||
- **プログラムID**: SHA08SRT
|
||||
- **プログラム名**: 届出書データSORT編集処理
|
||||
- **処理概要**: GRADED-LISTをINPUT PROCEDUREで全件RELEASEし、MONTHLY-AMOUNT/GRADE-CODEを保持したままPREF-CODE・OFFICE-NO・EMP-ID昇順SORT後、OUTPUT PROCEDUREでRETURNしてRPT-DATA出力する。GRADED-LISTはSHA04TWOのマッチング成功レコードであり全件有効のためSTATUSフィルタは不要。
|
||||
|
||||
## 使用ファイル
|
||||
|
||||
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|
||||
|------|---------------|------|-------------|-----------|--------|
|
||||
| SHA08R01 | GRADED-LIST | 順編成 | F (固定長) | 200B | SHA04REC |
|
||||
| SORTWORK | SD-SORTWORK | — | — | 200B | なし(自前SD定義) |
|
||||
| SHA08W01 | RPT-DATA | 順編成 | F (固定長) | 300B | SHA08REC |
|
||||
| SHA08W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC |
|
||||
|
||||
## 使用COPY句
|
||||
|
||||
| COPY句 | 用途 | 使用箇所 |
|
||||
|--------|------|---------|
|
||||
| SHA04REC | GRADED-LIST レコード定義(R01入力ファイル) | FILE SECTION |
|
||||
| SHA08REC | RPT-DATA レコード定義(W01出力ファイル) | FILE SECTION |
|
||||
| ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION |
|
||||
| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE |
|
||||
| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE |
|
||||
| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE |
|
||||
|
||||
## 使用サブプログラム
|
||||
|
||||
| サブPGM | 役割 | CALL箇所 |
|
||||
|---------|------|---------|
|
||||
| SUB01DAT | 運用日付取得 | 1000ITTSOR |
|
||||
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
|
||||
| SUB03END | ABEND処理 | 9999ABDSOR |
|
||||
|
||||
## 使用DB2テーブル
|
||||
|
||||
なし(DB操作なし)
|
||||
|
||||
## 処理フロー
|
||||
1. 初期処理(開始メッセージ→SUB01DAT運用日付取得→出力ファイルOPEN→入力ファイルOPEN)
|
||||
2. SORT実行
|
||||
- INPUT PROCEDURE: R01全件読込→MONTHLY-AMOUNT/GRADE-CODEを含め全項目をSORTRECに転記→全件RELEASE
|
||||
- SORT KEY: PREF-CODE昇順、OFFICE-NO昇順、EMP-ID昇順
|
||||
- OUTPUT PROCEDURE: RETURN→SHA08REC編集(MONTHLY-AMOUNT/GRADE-CODEはSR→W01転記)→REPORT-TYPE/REPORT-DATE設定→W01出力
|
||||
3. SORT結果判定(RETURN-CODE≠0→ABEND)
|
||||
4. 終了処理(CLOSE→件数出力→終了メッセージ)
|
||||
@@ -0,0 +1,46 @@
|
||||
# SHA09S25 使用資源一覧
|
||||
|
||||
## プログラム概要
|
||||
- **プログラムID**: SHA09S25
|
||||
- **プログラム名**: 都道府県支部別分割出力処理
|
||||
- **処理概要**: RPT-DATAをPREF-CODE(01~25)で判定し、25個の出力ファイルに振り分けて出力する。CLOSE WITH LOCKで各ファイルを確定する。
|
||||
|
||||
## 使用ファイル
|
||||
|
||||
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|
||||
|------|---------------|------|-------------|-----------|--------|
|
||||
| SHA09R01 | RPT-DATA | 順編成 | F (固定長) | 300B | SHA08REC |
|
||||
| SHA09W01~W25 | PREF-OUT-01~25 | 順編成 | F (固定長) | 300B | SHA09REC |
|
||||
| SHA09W98 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC |
|
||||
|
||||
## 使用COPY句
|
||||
|
||||
| COPY句 | 用途 | 使用箇所 |
|
||||
|--------|------|---------|
|
||||
| SHA08REC | RPT-DATA レコード定義(R01入力ファイル) | FILE SECTION |
|
||||
| SHA09REC | PREF-OUT レコード定義(W01~W25出力ファイル) | FILE SECTION |
|
||||
| ZAN05REC | エラーログレコード定義(W98出力ファイル) | FILE SECTION |
|
||||
| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE |
|
||||
| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE |
|
||||
| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE |
|
||||
|
||||
## 使用サブプログラム
|
||||
|
||||
| サブPGM | 役割 | CALL箇所 |
|
||||
|---------|------|---------|
|
||||
| SUB01DAT | 運用日付取得 | 1000ITTSOR |
|
||||
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
|
||||
| SUB03END | ABEND処理 | 9999ABDSOR |
|
||||
|
||||
## 使用DB2テーブル
|
||||
|
||||
なし(DB操作なし)
|
||||
|
||||
## 処理フロー
|
||||
1. 初期処理(開始メッセージ→SUB01DAT運用日付取得→OPEN(R01+W01~W25+W98)→R01初回READ)
|
||||
2. 主処理:R01終了まで繰り返し
|
||||
- PREF-CODE判定(EVALUATE PREF-CODE 01~25)→該当ファイルにWRITE
|
||||
- SHA09REC編集: PREF-CODE/INSURER-CODE/RPT-BODY設定
|
||||
- R01次件READ
|
||||
- PREF-CODE範囲外(01~25以外)→W98(ERROR-LOG)出力
|
||||
3. 終了処理(CLOSE WITH LOCK→件数出力→終了メッセージ)
|
||||
@@ -0,0 +1,46 @@
|
||||
# SHA10S10 使用資源一覧
|
||||
|
||||
## プログラム概要
|
||||
- **プログラムID**: SHA10S10
|
||||
- **プログラム名**: 保険者別分割出力処理
|
||||
- **処理概要**: RPT-DATAをINSURER-CODE(001~010)で判定し、10個の出力ファイルに振り分けて出力する。CLOSE WITH LOCKで各ファイルを確定する。本実装は代表10ファイル(001-010)で定義。エラーファイルはW99(DD名SHA10W98)。
|
||||
|
||||
## 使用ファイル
|
||||
|
||||
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 |
|
||||
|------|---------------|------|-------------|-----------|--------|
|
||||
| SHA10R01 | RPT-DATA | 順編成 | F (固定長) | 300B | SHA08REC |
|
||||
| SHA10W01~W10 | INSURER-OUT-01~10 | 順編成 | F (固定長) | 300B | SHA09REC |
|
||||
| SHA10W98 | ERROR-LOG(識別子:W99OUTFIL) | 順編成 | V (可変長) | 200B | ZAN05REC |
|
||||
|
||||
## 使用COPY句
|
||||
|
||||
| COPY句 | 用途 | 使用箇所 |
|
||||
|--------|------|---------|
|
||||
| SHA08REC | RPT-DATA レコード定義(R01入力ファイル) | FILE SECTION |
|
||||
| SHA09REC | INSURER-OUT レコード定義(W01~W10出力ファイル) | FILE SECTION |
|
||||
| ZAN05REC | エラーログレコード定義(W98出力ファイル) | FILE SECTION |
|
||||
| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE |
|
||||
| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE |
|
||||
| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE |
|
||||
|
||||
## 使用サブプログラム
|
||||
|
||||
| サブPGM | 役割 | CALL箇所 |
|
||||
|---------|------|---------|
|
||||
| SUB01DAT | 運用日付取得 | 1000ITTSOR |
|
||||
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
|
||||
| SUB03END | ABEND処理 | 9999ABDSOR |
|
||||
|
||||
## 使用DB2テーブル
|
||||
|
||||
なし(DB操作なし)
|
||||
|
||||
## 処理フロー
|
||||
1. 初期処理(開始メッセージ→SUB01DAT運用日付取得→OPEN(R01+W01~W99+W98)→R01初回READ)
|
||||
2. 主処理:R01終了まで繰り返し
|
||||
- INSURER-CODE判定(EVALUATE INSURER-CODE 001〜010)→該当ファイルにWRITE
|
||||
- SHA09REC編集: PREF-CODE/INSURER-CODE/RPT-BODY設定
|
||||
- R01次件READ
|
||||
- INSURER-CODE範囲外(001〜010以外)→W99(ERROR-LOG/DD:SHA10W98)出力
|
||||
3. 終了処理(CLOSE WITH LOCK→件数出力→終了メッセージ)
|
||||
Reference in New Issue
Block a user