Files
cobol-tna-system/基本設計書/05_人事情報管理システム_設計書(サブシステムE).md
T

5.9 KiB
Raw Blame History

人事情報管理システム 設計書(サブシステムE)

システム概要

本サブシステムは、従業員の基本情報(氏名カナ/漢字)のフォーマット検証と、 スキル評価データの集計・分析を行う。 これにより、サブシステムA〜Dで未カバーのプログラムタイプ No.19(M:N→N件)および No.27(半角20桁/4桁チェック)を追加し、 PICTURE記号 N/BINARY/ZZZZ9 および11個の COBOL 予約語を 新たにカバーする。

サブシステム情報

項目 内容
サブシステムID JIN(人事→JINji
COBOLプログラム数 2
JCL数 2
DB なし(ファイル連携のみ)

サブシステム内ファイル

# ファイル名 編成 RECM サイズ 用途 区分
1 EMP-IMPORT SEQUENTIAL FB 200 人事取込データ(外部システムよりCSV→EBCDIC変換済) 新規
2 EMP-VALID SEQUENTIAL FB 200 チェック通過正常データ 新規
3 VALID-ERROR SEQUENTIAL FB 80 バリデーションエラーレコード(PROGRAMID・EMP-ID・ERR-CODE・詳細) 新規
4 SKILL-EVAL SEQUENTIAL FB 200 スキル評価明細データ 新規
5 SKILL-MST SEQUENTIAL FB 80 スキル評価基準マスタ 新規
6 SKILL-AGG SEQUENTIAL FB 200 スキル別評価集計結果 新規

システム定数

定数 説明
KANA-MAX-LEN 20 氏名カナ最大桁数(半角)
SUBCODE-LEN 4 補助コード桁数
SKILL-LEVEL-MAX 10 スキルレベルの最大値
EVAL-SCORE-MAX 999 評価点数の最大値

共通関数利用方針

既存のサブプログラム(SUB01DAT〜SUB05TIM)は本サブシステムでも利用する。 連絡領域のCOPY書式は JINDATACJINMSGACJINENDAC を新規作成する (チェック用サブプログラム SUB04CHK は使用しない)。


処理フロー

╞══ JINJ010 ═══════════════════════════════════╡
│ JIN01KNS(カナ氏名チェック) PGMパターン: 27
│   人事取込データ(EMP-IMPORT)を1レコードずつ読み込み
│   IF KANA-SEI IS ALPHABETIC-UPPER AND KANA-MEI IS ALPHABETIC-UPPER → 正常
│   半角20桁超過 OR 補助コード4桁不一致 → エラーファイル出力
│   ADD 1 TO WS-READ-CNT END-ADD(件数カウント)
│   RETURN-CODE に終了ステータス設定
│   PROGRAM-ID IS INITIAL 指定
├── 正常 → EMP-VALID(200B 正常データ)
└── 異常 → VALID-ERROR(80B エラーレコード)
│
╞══ JINJ020 ═══════════════════════════════════╡
│ JIN02SKL(スキル別評価集計) PGMパターン: 19
│   SKILL-EVALM件の評価明細)× SKILL-MST(N件の評価基準)
│   SEARCH ALL でSKILL-CODEに対応するLEVEL判定
│   内部表にスキルコード×レベル別の件数と合計点を集計
│   集計後、PERFORM VARYINGで降順(DESCENDING)走査し出力
│   DIVIDE ... GIVING ... END-DIVIDE で平均点算出
│   SUBTRACT 1 FROM WS-IDX END-SUBTRACT で内部表走査
│   USAGE BINARY / USAGE PACKED-DECIMAL でカウンタ・金額定義
│   エラー件数表示に ZZZZ9 編集
├── → SKILL-AGG(200B スキル別評価集計結果)
└── 異常 → VALID-ERROR(80B エラーレコード)

JCL

JINJ010 — カナ氏名チェック

//JINJ010  JOB (ACCT),'カナ氏名チェック',CLASS=A
//*
//*=====================================================================
//* STEP010: 半角カナチェック(Type 27
//*=====================================================================
//STEP010  EXEC PGM=JIN01KNS
//JIN01R01  DD DSN=EMP-IMPORT.DAT,DISP=SHR
//JIN01W01  DD DSN=EMP-VALID.DAT,DISP=(NEW,CATLG)
//JIN01W02  DD DSN=VALID-ERROR.DAT,DISP=(NEW,PASS)

JINJ020 — スキル別評価集計

//JINJ020  JOB (ACCT),'スキル別評価集計',CLASS=A
//*
//*=====================================================================
//* STEP010: M:N→N件(Type 19
//*=====================================================================
//STEP010  EXEC PGM=JIN02SKL
//JIN02R01  DD DSN=SKILL-EVAL.DAT,DISP=SHR
//JIN02R02  DD DSN=SKILL-MST.DAT,DISP=SHR
//JIN02W01  DD DSN=SKILL-AGG.DAT,DISP=(NEW,CATLG)
//JIN02W02  DD DSN=VALID-ERROR.DAT,DISP=(NEW,PASS)

プログラム一覧

# PGM-ID PGMパターン 機能概要 使用COPY DBアクセス CALL先
1 JIN01KNS 27 半角20桁/4桁チェック 人事取込データの氏名カナ桁数・半角英大文字チェック JIN01REC, JINDATAC, JINMSGAC, JINENDAC なし SUB01DAT, SUB02MSG, SUB03END
2 JIN02SKL 19 M:N→N件 スキル評価明細×評価基準マスタの集計(M件→N件出力) SKILL-EVAL-REC, SKILL-MST-REC, SKILL-AGG-REC, VALID-ERROR-REC, JINDATAC, JINMSGAC, JINENDAC なし SUB01DAT, SUB02MSG, SUB03END

COPY書式一覧

# COPY ID 用途 サイズ 備考
1 JIN01REC EMP-IMPORT/EMP-VALID レコード 200 JIN01KNS入出力
2 VALID-ERROR-REC VALID-ERROR エラーレコード 80 JIN01KNS/JIN02SKL共用
3 SKILL-EVAL-REC SKILL-EVAL スキル評価明細 200 JIN02SKL入力(M件)
4 SKILL-MST-REC SKILL-MST 評価基準マスタ 80 JIN02SKL入力(内部表LOAD
5 SKILL-AGG-REC SKILL-AGG 評価集計結果 200 JIN02SKL出力(N件)
6 JINDATAC SUB01DAT連絡領域 CALL I/F
7 JINMSGAC SUB02MSG連絡領域 CALL I/F
8 JINENDAC SUB03END連絡領域 CALL I/F