Files
cobol-tna-system/詳細設計書/詳細設計書_SHA09S25.md
qiuqiuqiu 71232af484 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
2026-07-15 20:32:51 +08:00

150 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 詳細設計書
## 基本情報
| # | 項目 | 内容 |
|---|------|------|
| 1 | システム名 | 社会保険管理システム |
| 2 | プログラムID | SHA09S25 |
| 3 | プログラム名 | 都道府県支部別分割出力処理 |
| 4 | PGMタイプ | メイン |
| 5 | PGMパターン | 1125分割) |
| 6 | 機能概要 | RPT-DATASHA08REC 300B)からPREF-CODE(都道府県コード01〜25)を判定し、25個の出力ファイル(PREF-OUT-01〜25)に振り分けて出力する。 |
| 7 | | SELECT文にはORGANIZATION IS SEQUENTIALを明示指定する。 |
| 8 | | 各出力ファイルはCLOSE WITH LOCKで確定する。 |
※PGMタイプ:メイン、サブ
※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新
### 前提条件
| NO | 対象ファイル | 条件 |
|----|-------------|------|
| 1 | RPT-DATA(R01) | SHA08SRTの出力。PREF-CODE 01〜25のいずれかが設定されている。 |
### 使用ファイル一覧
| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 |
|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------|
| 1 | RPT-DATA | R01 | SHA09R01 | I | SHA08REC | FB | | 300 | PS | |
| 2 | PREF-OUT-01 | W01 | SHA09W01 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=01 |
| 3 | PREF-OUT-02 | W02 | SHA09W02 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=02 |
| 4 | PREF-OUT-03 | W03 | SHA09W03 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=03 |
| 5 | PREF-OUT-04 | W04 | SHA09W04 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=04 |
| 6 | PREF-OUT-05 | W05 | SHA09W05 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=05 |
| 7 | PREF-OUT-06 | W06 | SHA09W06 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=06 |
| 8 | PREF-OUT-07 | W07 | SHA09W07 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=07 |
| 9 | PREF-OUT-08 | W08 | SHA09W08 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=08 |
| 10 | PREF-OUT-09 | W09 | SHA09W09 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=09 |
| 11 | PREF-OUT-10 | W10 | SHA09W10 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=10 |
| 12 | PREF-OUT-11 | W11 | SHA09W11 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=11 |
| 13 | PREF-OUT-12 | W12 | SHA09W12 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=12 |
| 14 | PREF-OUT-13 | W13 | SHA09W13 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=13 |
| 15 | PREF-OUT-14 | W14 | SHA09W14 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=14 |
| 16 | PREF-OUT-15 | W15 | SHA09W15 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=15 |
| 17 | PREF-OUT-16 | W16 | SHA09W16 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=16 |
| 18 | PREF-OUT-17 | W17 | SHA09W17 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=17 |
| 19 | PREF-OUT-18 | W18 | SHA09W18 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=18 |
| 20 | PREF-OUT-19 | W19 | SHA09W19 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=19 |
| 21 | PREF-OUT-20 | W20 | SHA09W20 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=20 |
| 22 | PREF-OUT-21 | W21 | SHA09W21 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=21 |
| 23 | PREF-OUT-22 | W22 | SHA09W22 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=22 |
| 24 | PREF-OUT-23 | W23 | SHA09W23 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=23 |
| 25 | PREF-OUT-24 | W24 | SHA09W24 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=24 |
| 26 | PREF-OUT-25 | W25 | SHA09W25 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=25 |
| 27 | ERROR-LOG | W98 | SHA09W98 | O | ZAN05REC | VB | | 200 | PS | |
### キー項目一覧
| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) |
|----|-----------|---------------------|-------------------------------------------|
| 1 | RPT-DATA | なし | PREF-CODEで振分け(01〜25 |
### 使用モジュール一覧
| NO | 機能 | プログラムID | 使用COPY名 |
|----|------|-------------|-----------|
| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC |
| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC |
| 3 | ABEND処理SUB | SUB03END | SHAENDAC |
---
## 処理詳細
```
1.初期処理(1000ITTSOR
1-1.開始メッセージ出力
【メッセージ編集】
メッセージ番号:1(開始メッセージ)
1-2.コンパイル日時出力
【メッセージ編集】
メッセージ番号:33(コンパイル日時)
PARM1:コンパイル日時
PARM2'COMPILED'
1-3.ワークエリアの初期化
1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。
復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。
【メッセージ編集】
メッセージ番号:5(サブエラー)
PARM1'SUB01DAT'
PARM2:復帰コード
【ABEND処理SUB】
ABENDコード:999
1-5.入出力ファイルのオープン
入力R01、出力W01〜W25、エラーW98
1-6.R01を読み込む。(1100R01INNSOR)(1回目)
2.主処理(2000MAJSOR)(R01を全て読み終えるまで繰り返す)
2-1.PREF-CODE判定(2100SPLITSOR
EVALUATE PREF-CODE01〜25)で該当する出力ファイルにWRITE
【出力レコード編集】
SHA09RECのPREF-CODEにR01のPREF-CODEを設定
SHA09RECのINSURER-CODEにR01のINSURER-CODEを設定
SHA09RECのRPT-BODYにR01のFILLER(実質レコード本体の先頭294B)を設定
またはSHA08RECの全項目を編集してSHA09RECに転記
2-2.W01〜W25のいずれかにWRITE
2-3.R01を読み込む(1100R01INNSOR)(2件目以降)
2-4.PREF-CODEが01〜25の範囲外の場合、ERROR-LOGに出力
3.終了処理(3000STPSOR
3-1.入出力ファイルのクローズ(CLOSE WITH LOCKで出力ファイルを確定)
3-2.入出力件数メッセージ出力
【メッセージ編集】
メッセージ番号:6(入力件数メッセージ)
PARM1'SHA09R01'
PARM2:入力件数
【メッセージ編集】
メッセージ番号:7(出力件数メッセージ)
PARM1:各出力ファイルDD名
PARM2:各出力件数
【メッセージ編集】
メッセージ番号:7(出力件数メッセージ)
PARM1'SHA09W98(ERROR-LOG)'
PARM2:エラー件数
3-3.終了メッセージ出力
【メッセージ編集】
メッセージ番号:2(終了メッセージ)
```
---
## 出力レコード定義
### 出力ファイル1〜25W01〜W25/PREF-OUT-01〜25
SHA09REC.cpyに従う。300B固定長。
| No | 項目名 | 設定元 | 備考 |
|----|--------|--------|------|
| 1 | PREF-CODE | R01のPREF-CODE | 01〜25 |
| 2 | INSURER-CODE | R01のINSURER-CODE | |
| 3 | RPT-BODY | R01のFILLER領域相当 | ファイル本体データ(294B) |
### エラー出力ファイル(W98/ERROR-LOG
| No | 項目名 | 設定元 | 備考 |
|----|--------|--------|------|
| 1 | ERR-CATEGORY | 01で固定 | |
| 2 | ERR-DETAIL | STRINGで編集 | エラー内容 |