Files
cobol-tna-system/基本設計書/04_社会保険管理システム_設計書(サブシステムD).md
T
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

23 KiB
Raw Blame History

社会保険管理システム 設計書(サブシステムD)

システム概要

本サブシステムは、日本年金機構・健康保険組合からの被保険者資格データを起点に、 標準報酬月額の算定・変更(定時決定・月変・随時改定)、社会保険料の計算、 資格異動管理、届出書類の作成・出力を行う。 給与計算サブシステム(C)と連携し、給与データを基にした月変・随時改定処理を実現する。

サブシステム情報

項目 内容
サブシステムID SHA(社会保険→SHAkai Hoken
COBOLプログラム数 10
JCL数 9
DB 1INSURANCEDB / DB2、5テーブル)

システム定数

定数 説明
HEALTH-INS-SPLIT 0.50 健康保険料折半率(50%事業主負担)
PENSION-SPLIT 0.50 厚生年金保険料折半率(50%事業主負担)
PREFECTURE-COUNT 25 都道府県グループ数(協会けんぽ支部)
INSURER-MAX 100 最大保険者数
HALF-WIDTH-LIMIT 20 氏名カナ最大桁数(半角)
TEISI-TEIJI-MONTHS 3 定時決定対象月数(4-6月の3ヶ月)
GETSUHEN-GRADE-DIFF 2 月変該当等級差(2等級以上変動)

サブシステム間連携

連携データ 出力元 入力先 方式 備考
INSURED-CSV-ASCII(被保険者資格データ) 外部(年金機構・健保組合) SHAJ010 ファイル連携 ASCII CSV、外部システムから受信
SALARY-MONTHLY(給与月額データ) C-サブシステム KYU06UPD SHAJ050 ファイル連携 月変・定時決定用給与明細(200B
INS-DETAIL(標準報酬月額明細) SHA03MNP C-サブシステム KYU05DED ファイル連携 控除計算用保険料明細(300B
RPT-DATA(届出書データ) SHA08SRT 外部(年金事務所) ファイル連携 算定基礎届・月変届・資格喪失届

ファイル一覧

# ファイル名 編成 RECM サイズ 用途 区分
1 INS-CSV-ASCII SEQUENTIAL FB 可変 被保険者資格データ(ASCII CSV、外部受信) 新規
2 INSURED-DATA SEQUENTIAL FB 200 被保険者EBCDIC固定長 新規
3 EMP-INSURANCE SEQUENTIAL FB 200 従業員×保険種別統合データ 新規
4 OFFICE-MST SEQUENTIAL FB 80 事業所マスタ(事業所番号→都道府県・事業所名称) 新規
5 INSURER-MST SEQUENTIAL FB 80 保険者マスタ(保険者コード→保険者名称・支部番号) 新規
6 GRADE-TBL SEQUENTIAL FB 80 標準報酬等級テーブル 新規
7 GRADED-LIST SEQUENTIAL FB 200 事業所・保険者情報付与被保険者一覧 新規
8 UNMATCHED-LIST SEQUENTIAL FB 200 マッチング不一致データ 新規
9 SALARY-MONTHLY SEQUENTIAL FB 200 給与月額データ(Cサブシステム出力) C連携
10 REVISED-GRADE SEQUENTIAL FB 200 月変・随時改定結果 新規
11 INS-DETAIL SEQUENTIAL FB 300 保険料計算詳細(従業員×保険種別 M×N件) 新規
12 GRADE-INSURED SEQUENTIAL FB 300 等級×従業員×料率組合せ(M:N→M:N中間結果) 新規
13 DEDUCTED-RESULT SEQUENTIAL FB 300 保険料確定結果(M:N→M:N最終出力) 新規
14 CHG-SUMMARY SEQUENTIAL FB 200 資格異動サマリ(キーブレイク後) 新規
15 CHG-DETAIL SEQUENTIAL FB 200 資格異動明細 新規
16 RPT-DATA SEQUENTIAL FB 300 届出書データ(SORT後) 新規
17 PREF-OUT-01〜25 SEQUENTIAL FB 300 都道府県支部別出力(25分割) 新規
18 INSURER-OUT-01〜99 SEQUENTIAL FB 300 保険者別出力(100分割) 新規
19 APPLICABLE-RULES SEQUENTIAL FB 80 適用条件テーブル(年齢・扶養・地域別) 新規
20 SD-SORTWORK SORT作業用ファイル(I-O-CONTROL SAME SORT AREA指定) 新規
21 ERROR-LOG SEQUENTIAL VB 最大200 エラーレコード退避 A・B・C共用

DB二重対応

本サブシステムのDB操作はDB2の埋め込みSQL(EXEC SQL)で直接記述する。 5テーブルは同一DB2インスタンス内の別スキーマ(INSURANCEDB)で管理する。 CサブシステムのSALARYDBEMP-MASTER)はSALARYDB.EMP-MASTERでクロススキーマ参照する。

共通関数利用方針

既存のサブプログラム(SUB01DAT〜SUB05TIM)は本サブシステムでも利用する。 連絡領域のCOPY書式はサブシステム別にSHADATACSHAMSGACSHAENDACSHACHKACを新規作成する。


DB構成(INSURANCEDB

DB名称:社会保険管理データベース(INSURANCEDB

テーブル1INSURED-MASTER(被保険者マスタ)

カラム 内容
EMP-ID CHAR(8) 社員番号(PK
INSURED-NO CHAR(10) 被保険者番号(番号体系:健康保険+厚生年金で共通)
OFFICE-NO CHAR(4) 事業所番号
INSURER-CODE CHAR(4) 保険者コード
HEALTH-INS-TYPE CHAR(1) 健康保険種別(1=協会けんぽ / 2=組合健保)
PENSION-TYPE CHAR(1) 年金種別(1=厚生年金 / 2=共済)
BASE-MONTHLY DECIMAL(9,0) 現行標準報酬月額
GRADE-CODE CHAR(2) 現行等級コード
STATUS CHAR(1) 状態(0=在籍 / 9=喪失)
UPDATED-AT TIMESTAMP 更新日時

テーブル2INSURANCE-RATES(保険料率テーブル)

カラム 内容
GRADE-CODE CHAR(2) 標準報酬等級コード(PK
MONTHLY-FROM DECIMAL(9,0) 標準報酬月額下限
MONTHLY-TO DECIMAL(9,0) 標準報酬月額上限
HEALTH-RATE DECIMAL(7,6) 健康保険料率(折半後従業員負担率)
PENSION-RATE DECIMAL(7,6) 厚生年金保険料率(折半後従業員負担率)
EFFECTIVE-FROM CHAR(6) 適用開始年月 YYYYMMPK
EFFECTIVE-TO CHAR(6) 適用終了年月 YYYYMMPK、999999=無期限)
UPDATED-AT TIMESTAMP 更新日時

テーブル3GRADE-HISTORY(標準報酬等級履歴)

カラム 内容
EMP-ID CHAR(8) 社員番号(PK
YEAR-MONTH CHAR(6) 対象年月 YYYYMMPK
GRADE-CODE CHAR(2) 等級コード
MONTHLY-AMOUNT DECIMAL(9,0) 標準報酬月額
CHANGE-TYPE CHAR(1) 変更要因(1=定時決定 / 2=月変 / 3=随時改定)
PREV-GRADE CHAR(2) 変更前等級コード
UPDATED-AT TIMESTAMP 更新日時

テーブル4QUALIFICATION-CHANGES(資格異動テーブル)

カラム 内容
CHG-ID INTEGER 異動IDPK、自動採番)
EMP-ID CHAR(8) 社員番号
CHG-DATE CHAR(8) 異動日 YYYYMMDD
CHG-TYPE CHAR(2) 異動種別(01=取得 / 02=喪失 / 03=種別変更 / 04=住所変更)
INSURER-CODE CHAR(4) 異動先保険者コード
PREV-INSURER CHAR(4) 異動元保険者コード
REASON VARCHAR(100) 異動理由
UPDATED-AT TIMESTAMP 更新日時

テーブル5INSURER-MASTER(保険者マスタ)

カラム 内容
INSURER-CODE CHAR(4) 保険者コード(PK
INSURER-NAME VARCHAR(60) 保険者名称
PREF-CODE CHAR(2) 都道府県支部コード(01〜25
INSURER-TYPE CHAR(1) 保険者種別(1=協会けんぽ / 2=組合健保 / 3=共済)
UPDATED-AT TIMESTAMP 更新日時

処理フロー

╞══ SHAJ010 ═══════════════════════════════════╡
│ SHA01CVTASCII→EBCDIC変換) PGMパターン: 29
│   INSPECT CONVERTING X"00"..."FF" TO X"00"..."FF" で変換
│   被保険者番号・事業所番号の桁数チェック(内部処理)
│   SUB04CHK で数値妥当性チェック
├── 正常 → INSURED-DATA200B EBCDIC固定長)
└── 異常 → ERROR-LOG
│
╞══ SHAJ020 ═══════════════════════════════════╡
│ SHA02MNC(M:N→M件マッチング) PGMパターン: 18
│   EMP-MASTERDB2 SALARYDB.EMP-MASTER SELECT)×
│   INSURANCE-RATESDB2 INSURANCEDB.INSURANCE-RATES SELECT
│   M件の従業員 × N件の保険種別料率 → 従業員単位に統合
│   SEARCH ALL で該当GRADE-CODEを内部表検索
│   社員番号昇順に出力
├── → EMP-INSURANCE200B 従業員単位1件)
└── 異常 → ERROR-LOG
│
╞══ SHAJ030 ═══════════════════════════════════╡
│ SHA03MNP(M:N→M×N件直積出力) PGMパターン: 20
│   EMP-INSURANCE × INSURANCE-RATES(内部表LOAD)
│   全従業員 × 全保険種別の直積出力(M×N件)
│   従業員ごとに健康保険・厚生年金・雇用保険の保険料明細を生成
├── → INS-DETAIL(300B 全組合せ明細)
└── 異常 → ERROR-LOG
│
╞══ SHAJ040 ═══════════════════════════════════╡
│ SHA04TWO(2段階1:1→1:1マッチング) PGMパターン: 16
│   第1段階: INSURED-DATA × OFFICE-MST(事業所マスタ)
│    事業所番号一致→事業所名称・都道府県コード付加
│   第2段階: 中間結果 × INSURER-MST(保険者マスタ)
│    保険者コード一致→保険者名称・支部コード付加
│   DB2参照: INSURED-MASTER(履歴整合性確認)
│   PROGRAM-ID IS INITIAL 指定
│   USAGE PACKED-DECIMAL で金額項目定義
├── → GRADED-LIST(200B 事業所・保険者情報付き)
├── → UNMATCHED-LIST200B 不一致データ)
└── 異常 → ERROR-LOG
│
╞══ SHAJ050 ═══════════════════════════════════╡
│ SHA05TWN(2段階N:1→N:1マッチング) PGMパターン: 17
│   第1段階: SALARY-MONTHLY(複数月N件→社員別平均N:1)
│    同一社員の複数月給与(定時決定:4-6月、月変:直近3月)を平均
│    ADD TO + END-ADD で累積、DIVIDE GIVING REMAINDER で平均
│   第2段階: 平均値×GRADE-TBL(N:1で等級判定)
│    平均標準報酬月額が該当する等級コードを特定
│    現行等級と比較し2等級以上変動→月変該当
├── → REVISED-GRADE200B 改定結果)
└── 異常 → ERROR-LOG
│
╞══ SHAJ060 ═══════════════════════════════════╡
│ SHA06TWM(2段階M:N→M:Nマッチング) PGMパターン: 22
│   第1段階: EMP-INSURANCE(M) × INSURANCE-RATES(N)
│    全従業員×全料率の組合せから該当する等級料率を特定
│    → GRADE-INSUREDM:N 中間ファイル)
│   第2段階: GRADE-INSURED(M:N) × APPLICABLE-RULES(N)
│    年齢・扶養人数・地域コード等の条件で正しい料率を確定
│    通常MOVEで構造体転記(MOVE CORRは不使用)
├── → DEDUCTED-RESULT300B 保険料確定結果)
└── 異常 → ERROR-LOG
│
╞══ SHAJ070 ═══════════════════════════════════╡
│ SHA07KBR(1:N+異キーキーブレイク) PGMパターン: 33
│   DB2 QUALIFICATION-CHANGES からEXEC SQL SELECT
│   同一従業員内(1:N)で保険者コード(異キー)変更時キーブレイク
│   保険者変更を検出した時点でサマリ出力、それ以外は明細出力
│   SUB04CHKSUB02MSG でCALL(通常CALL、CANCEL不使用)
├── → CHG-SUMMARY(200B 保険者別異動サマリ)
├── → CHG-DETAIL(200B 全異動明細)
└── 異常 → ERROR-LOG
│
╞══ SHAJ080 ═══════════════════════════════════╡
│ SHA08SRTSORT INPUT/OUTPUT PROCEDURE PGMパターン: 34
│   SD-SORTWORK + SORT文
│   I-O-CONTROL. SAME SORT AREA FOR SD-SORTWORK
│   INPUT PROCEDURE: GRADED-LIST読込+届出対象抽出(STATUS=0
│   OUTPUT PROCEDURE: 届出書形式に編集 + 集計
│   RETURN-CODE でSORT結果判定
│   RELEASE + RETURN 文でSORTデータ引渡し・受取
├── → RPT-DATA(300B 届出書データ)
└── 異常 → ERROR-LOG
│
╞══ SHAJ090 ═══════════════════════════════════╡
│ SHA09S25(25分割) PGMパターン: 11
│   RPT-DATA を都道府県支部コード(PREF-CODE 01〜25)で分割
│   SELECT ... ORGANIZATION IS SEQUENTIAL(明示的宣言)
│   CLOSE WITH LOCK で出力ファイル確定
├── → PREF-OUT-01〜25
└── 異常 → ERROR-LOG
│
╞══ SHAJ100 ═══════════════════════════════════╡
│ SHA10S10100分割) PGMパターン: 12
│   RPT-DATA を保険者コード(INSURER-CODE 001〜099)で分割
│   CLOSE WITH LOCK で出力ファイル確定
├── → INSURER-OUT-01〜99
└── 異常 → ERROR-LOG

JCL

SHAJ010 — 被保険者データ受信変換

//SHAJ010  JOB (ACCT),'被保険者データ変換',CLASS=A
//*
//*--- パラメータ定義 ---
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: ASCII→EBCDIC変換(Type 29
//*=====================================================================
//STEP010  EXEC PGM=SHA01CVT,PARM='YEARMONTH=&YEARMONTH'
//SHA01R01  DD DSN=INS-CSV-ASCII.DAT,DISP=SHR
//SHA01W01  DD DSN=INSURED-DATA.DAT,DISP=(NEW,CATLG)
//SHA01W02  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)

SHAJ020 — 保険マッチングM件

//SHAJ020  JOB (ACCT),'保険マッチングM件',CLASS=A
//*
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: M:N→M件(Type 18
//*=====================================================================
//STEP010  EXEC PGM=SHA02MNC,PARM='YEARMONTH=&YEARMONTH'
//SHA02W01  DD DSN=EMP-INSURANCE.DAT,DISP=(NEW,CATLG)
//SHA02W02  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)
//*  DB2参照(EMP-MASTERINSURANCE-RATES)のためDD不要

SHAJ030 — M:N直積出力

//SHAJ030  JOB (ACCT),'M:N直積出力',CLASS=A
//*
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: M:N→M×N件(Type 20
//*=====================================================================
//STEP010  EXEC PGM=SHA03MNP,PARM='YEARMONTH=&YEARMONTH'
//SHA03R01  DD DSN=EMP-INSURANCE.DAT,DISP=(OLD,DELETE)
//SHA03W01  DD DSN=INS-DETAIL.DAT,DISP=(NEW,CATLG)
//SHA03W02  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)
//*  INSURANCE-RATESは内部表LOADのためDB2参照(DD不要)

SHAJ040 — 2段階1:1事業所・保険者判定

//SHAJ040  JOB (ACCT),'事業所・保険者判定',CLASS=A
//*
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: 2段階1:1→1:1Type 16
//*=====================================================================
//STEP010  EXEC PGM=SHA04TWO,PARM='YEARMONTH=&YEARMONTH'
//SHA04R01  DD DSN=INSURED-DATA.DAT,DISP=(OLD,DELETE)
//SHA04R02  DD DSN=OFFICE-MST.DAT,DISP=SHR
//SHA04R03  DD DSN=INSURER-MST.DAT,DISP=SHR
//SHA04W01  DD DSN=GRADED-LIST.DAT,DISP=(NEW,CATLG)
//SHA04W02  DD DSN=UNMATCHED-LIST.DAT,DISP=(NEW,PASS)
//SHA04W03  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)

SHAJ050 — 定時決定・月変改定

//SHAJ050  JOB (ACCT),'定時決定・月変改定',CLASS=A
//*
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: 2段階N:1→N:1Type 17
//*=====================================================================
//STEP010  EXEC PGM=SHA05TWN,PARM='YEARMONTH=&YEARMONTH'
//SHA05R01  DD DSN=SALARY-MONTHLY.DAT,DISP=SHR
//SHA05R02  DD DSN=GRADE-TBL.DAT,DISP=SHR
//SHA05W01  DD DSN=REVISED-GRADE.DAT,DISP=(NEW,CATLG)
//SHA05W02  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)

SHAJ060 — 保険料確定(2段階M:N)

//SHAJ060  JOB (ACCT),'保険料確定',CLASS=A
//*
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: 2段階M:N→M:NType 22
//*=====================================================================
//STEP010  EXEC PGM=SHA06TWM,PARM='YEARMONTH=&YEARMONTH'
//SHA06R01  DD DSN=EMP-INSURANCE.DAT,DISP=SHR
//SHA06R02  DD DSN=APPLICABLE-RULES.DAT,DISP=SHR
//SHA06W01  DD DSN=DEDUCTED-RESULT.DAT,DISP=(NEW,CATLG)
//SHA06W02  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)
//*  INSURANCE-RATESはDB2参照

SHAJ070 — 資格異動処理

//SHAJ070  JOB (ACCT),'資格異動処理',CLASS=A
//*
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: 1:N+異キーキーブレイク(Type 33
//*=====================================================================
//STEP010  EXEC PGM=SHA07KBR,PARM='YEARMONTH=&YEARMONTH'
//SHA07W01  DD DSN=CHG-SUMMARY.DAT,DISP=(NEW,CATLG)
//SHA07W02  DD DSN=CHG-DETAIL.DAT,DISP=(NEW,PASS)
//SHA07W03  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)
//*  QUALIFICATION-CHANGESはDB2 SELECTDD不要)

SHAJ080 — 届出書作成(SORT

//SHAJ080  JOB (ACCT),'届出書作成',CLASS=A
//*
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: SORT INPUT/OUTPUT PROCEDUREType 34
//*=====================================================================
//STEP010  EXEC PGM=SHA08SRT,PARM='YEARMONTH=&YEARMONTH'
//SHA08R01  DD DSN=GRADED-LIST.DAT,DISP=SHR
//SHA08W01  DD DSN=RPT-DATA.DAT,DISP=(NEW,CATLG)
//SHA08W02  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)
//*  SD-SORTWORKはプログラム内SORT作業ファイル(JCL DD不要)

SHAJ090 — 都道府県支部別分割出力(25分割)

//SHAJ090  JOB (ACCT),'支部別分割出力',CLASS=A
//*
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: 25分割(Type 11
//*=====================================================================
//STEP010  EXEC PGM=SHA09S25,PARM='YEARMONTH=&YEARMONTH'
//SHA09R01  DD DSN=RPT-DATA.DAT,DISP=(OLD,DELETE)
//SHA09W01  DD DSN=PREF-OUT-01.DAT,DISP=(NEW,CATLG)
//SHA09W02  DD DSN=PREF-OUT-02.DAT,DISP=(NEW,CATLG)
//          ...
//SHA09W25  DD DSN=PREF-OUT-25.DAT,DISP=(NEW,CATLG)
//SHA09W98  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)

SHAJ100 — 保険者別分割出力(100分割)

//SHAJ100  JOB (ACCT),'保険者別分割出力',CLASS=A
//*
//SETPARM  SET YEARMONTH=202605
//*=====================================================================
//* STEP010: 100分割(Type 12
//*=====================================================================
//STEP010  EXEC PGM=SHA10S10,PARM='YEARMONTH=&YEARMONTH'
//SHA10R01  DD DSN=RPT-DATA.DAT,DISP=(OLD,DELETE)
//SHA10W01  DD DSN=INSURER-OUT-01.DAT,DISP=(NEW,CATLG)
//SHA10W02  DD DSN=INSURER-OUT-02.DAT,DISP=(NEW,CATLG)
//          ...
//SHA10W99  DD DSN=INSURER-OUT-99.DAT,DISP=(NEW,CATLG)
//SHA10W98  DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS)

プログラム一覧

# PGM-ID PGMパターン 機能概要 使用COPY DBアクセス CALL先
1 SHA01CVT 29 ASCII→EBCDIC変換 ASCII CSVをINSPECT CONVERTINGでEBCDIC固定長に変換 SHA01REC, SHADATAC, SHAMSGAC, SHAENDAC, SHACHKAC なし SUB01DAT, SUB02MSG, SUB03END, SUB04CHK
2 SHA02MNC 18 M:N→M件 従業員×保険種別→従業員単位統合 SHA02REC, SHADATAC, SHAMSGAC, SHAENDAC, SHACHKAC あり(EMP-MASTER SELECT, INSURANCE-RATES SELECT SUB01DAT, SUB02MSG, SUB03END, SUB04CHK
3 SHA03MNP 20 M:N→M×N件 従業員×保険種別→全組合せ明細 SHA03REC, SHADATAC, SHAMSGAC, SHAENDAC あり(INSURANCE-RATES SELECT→内部表LOAD SUB01DAT, SUB02MSG, SUB03END
4 SHA04TWO 16 2段階1:1→1:1 事業所マッチング→保険者マッチング SHA04REC, SHADATAC, SHAMSGAC, SHAENDAC あり(INSURED-MASTER SELECT, GRADE-HISTORY SELECT SUB01DAT, SUB02MSG, SUB03END
5 SHA05TWN 17 2段階N:1→N:1 定時決定・月変改定(複数月平均→等級判定) SHA05REC, SHADATAC, SHAMSGAC, SHAENDAC なし SUB01DAT, SUB02MSG, SUB03END
6 SHA06TWM 22 2段階M:N→M:N M従業員×N料率→適用条件で確定 SHA06REC, SHADATAC, SHAMSGAC, SHAENDAC あり(INSURANCE-RATES SELECT SUB01DAT, SUB02MSG, SUB03END
7 SHA07KBR 33 1:N+異キーKB 資格異動処理、保険者コード変更時KB SHA07REC, SHADATAC, SHAMSGAC, SHAENDAC あり(QUALIFICATION-CHANGES SELECT SUB01DAT, SUB02MSG, SUB03END, SUB04CHK
8 SHA08SRT 34 SORT IP/OP SORT + INPUT/OUTPUT PROCEDURE SHA08REC, SHADATAC, SHAMSGAC, SHAENDAC なし(SORT文、I-O-CONTROL SAME SORT AREA SUB01DAT, SUB02MSG, SUB03END
9 SHA09S25 11 25分割 都道府県支部別分割出力 SHA09REC, SHADATAC, SHAMSGAC, SHAENDAC なし SUB01DAT, SUB02MSG, SUB03END
10 SHA10S10 12 100分割 保険者別分割出力 SHA09REC, SHADATAC, SHAMSGAC, SHAENDAC なし SUB01DAT, SUB02MSG, SUB03END

COPY書式一覧

# COPY ID 用途 サイズ 備考
1 SHA01REC INSURED-DATA レコード 200 SHA01CVT出力、SHA04TWO入力
2 SHA02REC EMP-INSURANCE レコード 200 SHA02MNC出力、SHA03MNP/SHA06TWM入力
3 SHA03REC INS-DETAIL レコード 300 SHA03MNP出力
4 SHA04REC GRADED-LIST レコード 200 SHA04TWO出力、SHA08SRT入力
5 SHA05REC REVISED-GRADE レコード 200 SHA05TWN出力
6 SHA06REC DEDUCTED-RESULT レコード 300 SHA06TWM出力
7 SHA07REC CHG-SUMMARY/CHG-DETAIL レコード 200 SHA07KBR出力
8 SHA08REC RPT-DATA レコード 300 SHA08SRT出力、SHA09S25/SHA10S10入力
9 SHA09REC PREF-OUT/INSURER-OUT レコード 300 SHA09S25/SHA10S10出力
10 SHADATAC SUB01DAT連絡領域 CALL I/F
11 SHAMSGAC SUB02MSG連絡領域 CALL I/F
12 SHAENDAC SUB03END連絡領域 CALL I/F
13 SHACHKAC SUB04CHK連絡領域 CALL I/F