Files
cobol-tna-system/詳細設計書/詳細設計書_SHA08SRT.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

7.1 KiB
Raw Permalink Blame History

詳細設計書

基本情報

# 項目 内容
1 システム名 社会保険管理システム
2 プログラムID SHA08SRT
3 プログラム名 届出書データSORT編集処理
4 PGMタイプ メイン
5 PGMパターン 34SORT INPUT/OUTPUT PROCEDURE
6 機能概要 GRADED-LISTSHA04REC 200B)をすべてSORT文のINPUT PROCEDUREでRELEASEし、都道府県・事業所・従業員昇順にSORT後、OUTPUT PROCEDUREでRETURNしてレイアウト編集したRPT-DATASHA08REC 300B)を出力する。GRADED-LISTはSHA04TWOでマッチング成功した全件が有効レコードのため、STATUSフィルタは不要。
7 SORT作業用ファイルはSD-SORTWORKで定義し、I-O-CONTROLでSAME SORT AREAを指定する。
8 RETURN-CODEでSORT結果を判定し、異常時はABEND処理を行う。

※PGMタイプ:メイン、サブ ※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新

前提条件

NO 対象ファイル 条件
1 GRADED-LIST(R01) 事前に事業所マッチング・保険者マッチング済みのSHA04TWO出力。ソート不要(SORT文で並替え)。

使用ファイル一覧

NO 使用ファイル/DB名 識別子 DD名 I/O COPY群 形式 ブロック レコード長 媒体 備考
1 GRADED-LIST R01 SHA08R01 I SHA04REC FB 200 PS
2 SD-SORTWORK I/O 自前 200 内部 SORT作業用
3 RPT-DATA W01 SHA08W01 O SHA08REC FB 300 PS
4 ERROR-LOG W02 SHA08W02 O ZAN05REC VB 200 PS

キー項目一覧

NO ファイル名 ソート条件(キー項目) キー条件(マッチング/キーブレイク)
1 SD-SORTWORK PREF-CODE昇順, OFFICE-NO昇順, EMP-ID昇順 なし(SORTのみ)

使用モジュール一覧

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.出力ファイルのオープン(W01 / W02)
  1-6.入力ファイルR01のオープン

2.主処理(2000MAJSOR
  2-1.SORT文の実行(2100SORTSOR
    SORT SD-SORTWORK
      ON ASCENDING KEY SR-PREF-CODE
                       SR-OFFICE-NO
                       SR-EMP-ID
      INPUT PROCEDURE  IS 2110INPPSOR
      OUTPUT PROCEDURE IS 2120OUTPSOR.
  2-2.SORT結果判定(RETURN-CODE
    RETURN-CODE ≠ 0 の場合:
      メッセージ出力
      【メッセージ編集】
      メッセージ番号:5(サブエラー)
      PARM1'SORT FAILED'
      PARM2RETURN-CODE
      【ABEND処理SUB】
      ABENDコード:100

2-1.入力手続き(2110INPPSOR
  2-1-1.INPUT PROCEDURE内でR01GRADED-LIST)を全件読み込み
  2-1-2.全件をRELEASEでSD-SORTWORKに出力(GRADED-LISTはSHA04TWOの有効マッチング結果のためフィルタ不要)
  2-1-3.SR-STATUSにはCNS-STATUS-0'0')を設定
  2-1-4.READ AT ENDで入力手続き終了
  2-1-5.EXITでINPUT PROCEDUREを抜ける

2-2.出力手続き(2120OUTPSOR
  2-2-1.RETURNでSD-SORTWORKから1件取得
  2-2-2.AT ENDまで以下の処理を繰り返す
  2-2-3.ソート済みSDレコード→W01出力レコードに編集転記
    編集内容:
      RPT-BODYにSHA08RECの全項目を設定
      REPORT-TYPE='01'(届出書種別:算定基礎届)
      REPORT-DATEWRK-U06(運用日)
      MONTHLY-AMOUNTはSR-MONTHLY-AMOUNTから転記(SHA04REC由来)
      GRADE-CODEはSR-GRADE-CODEから転記(SHA04REC由来)
  2-2-4.WRITE W01OUTRECでRPT-DATAに出力
  2-2-5.RETURNで次のレコード取得

3.終了処理(3000STPSOR)
  3-1.入出力ファイルのクローズ
  3-2.SORT入出力件数メッセージ出力
    【メッセージ編集】
    メッセージ番号:6(入力件数メッセージ)
    PARM1'SHA08R01(GRADED-LIST)'
    PARM2:入力件数
    【メッセージ編集】
    メッセージ番号:7(出力件数メッセージ)
    PARM1'SHA08W01(RPT-DATA)'
    PARM2:出力件数
    【メッセージ編集】
    メッセージ番号:7(出力件数メッセージ)
    PARM1'SHA08W02(ERROR-LOG)'
    PARM2:エラー件数
  3-3.終了メッセージ出力
    【メッセージ編集】
    メッセージ番号:2(終了メッセージ)

出力レコード定義

出力ファイル1W01/RPT-DATA

SHA08REC.cpyに従う。300B固定長。

No 項目名 設定元 備考
1 EMP-ID SR-EMP-ID
2 EMP-NAME SR-EMP-NAME
3 OFFICE-NO SR-OFFICE-NO
4 OFFICE-NAME SR-OFFICE-NAME
5 INSURER-CODE SR-INSURER-CODE
6 INSURER-NAME SR-INSURER-NAME
7 PREF-CODE SR-PREF-CODE
8 MONTHLY-AMOUNT SR-MONTHLY-AMOUNT SHA04RECから保持(SHA04TWO時点では0
9 GRADE-CODE SR-GRADE-CODE SHA04RECから保持(SHA04TWO時点では0
10 REPORT-TYPE '01'固定
11 REPORT-DATE WRK-U06 運用日
12 FILLER SPACE

出力ファイル2W02/ERROR-LOG

No 項目名 設定元 備考
1 ERR-CATEGORY 01で固定
2 ERR-DETAIL STRINGで編集 エラー内容

SD-SORTWORKSORT内部ファイル)

自前定義。200B。SHA04REC相当+SORT管理領域。

No 項目名 属性 備考
1 SR-EMP-ID 9(008) SORTキー3
2 SR-EMP-NAME X(040)
3 SR-OFFICE-NO X(004) SORTキー2
4 SR-OFFICE-NAME X(040)
5 SR-PREF-CODE 9(002) SORTキー1
6 SR-INSURER-CODE X(004)
7 SR-INSURER-NAME X(060)
8 SR-MONTHLY-AMOUNT 9(009) SHA04RECから転記
9 SR-GRADE-CODE 9(002) SHA04RECから転記
10 SR-STATUS X(001) CNS-STATUS-0で固定(全件有効扱い)
11 SR-FILLER X(030)