Add Subsystem E (JIN01-02): personnel info management + design-resource consistency fixes

This commit is contained in:
qiuqiuqiu
2026-07-19 20:31:51 +08:00
parent 9de04cfa87
commit 39b9ec4e50
17 changed files with 1471 additions and 0 deletions
+119
View File
@@ -0,0 +1,119 @@
# JIN01KNS 詳細設計書
## プログラム概要
| 項目 | 内容 |
|------|------|
| プログラムID | JIN01KNS(人事→JINji, 01, カナKana確認Chekku→KNS |
| プログラムタイプ | 27(半角20桁/4桁チェック) |
| 機能 | 人事取込データの氏名カナ(半角20桁以内・英大文字)および補助コード桁数のチェック |
| CALL方式 | メインプログラム(JCLからCALL) |
| DBアクセス | なし |
| 使用サブプログラム | SUB01DAT(日付), SUB02MSG(メッセージ), SUB03END(アベンド) |
| INITIAL指定 | PROGRAM-ID IS INITIALINITIAL 予約語使用) |
| RETURN-CODE | 正常終了時 MOVE ZERO TO RETURN-CODERETURN-CODE 予約語使用) |
## ファイル一覧
| DD名 | ファイル名 | 編成 | RECM | サイズ | I/O | 用途 |
|:----:|:---------:|:----:|:----:|:-----:|:---:|------|
| JIN01R01 | EMP-IMPORT | SEQUENTIAL | FB | 200 | INPUT | 人事取込データ |
| JIN01W01 | EMP-VALID | SEQUENTIAL | FB | 200 | OUTPUT | 正常通過データ |
| JIN01W02 | VALID-ERROR | SEQUENTIAL | FB | 80 | OUTPUT | エラーレコード |
## レコード定義
### JIN01RECJIN01R01 / JIN01W01 共用, 200B
| 項目 | PIC | 内容 | 備考 |
|:----|:---:|------|:----:|
| KANA-SEI | X(20) | 姓(半角カナ) | 最大20桁チェック対象 |
| KANA-MEI | X(20) | 名(半角カナ) | 最大20桁チェック対象 |
| KANJI-NAME | N(40) | 漢字氏名(全角) | PIC N 使用(N(1)=2B、実長80B、合計200B |
| SUB-CODE | X(4) | 補助コード | 4桁チェック対象 |
| BIRTH-DATE | X(8) | 生年月日 CCYYMMDD | — |
| EMP-ID | X(8) | 社員番号 | — |
| FILLER | X(060) | — | — |
### VALID-ERROR-RECJIN01W02, 80B
| 項目 | PIC | 内容 |
|:----|:---:|------|
| ERR-PROGRAMID | X(8) | エラー発生プログラムID |
| ERR-EMP-ID | X(8) | エラー社員番号 |
| ERR-CODE | X(4) | エラーコード(K001=カナ桁数超過, K002=英大文字以外, K003=補助コード不正) |
| ERR-DETAIL | X(60) | エラー詳細メッセージ |
## 処理詳細
### 段落一覧
| 段落名 | 機能 |
|:-------|:-----|
| JIN01KNS-OPEN | ファイルOPEN |
| JIN01KNS-READ | 1レコードREAD |
| JIN01KNS-CHECK | カナチェック主処理 |
| JIN01KNS-CHK-KANA | 半角カナ文字チェック(IS ALPHABETIC-UPPER |
| JIN01KNS-CHK-SIZE | 桁数チェック(20桁超過チェック) |
| JIN01KNS-CHK-SUB | 補助コード桁数チェック(4桁) |
| JIN01KNS-WRITE-OK | 正常データWRITE |
| JIN01KNS-WRITE-ERR | エラーデータWRITE |
| JIN01KNS-CLOSE | ファイルCLOSE + RETURN-CODE設定 |
### 処理ロジック
#### 初期処理(JIN01KNS-OPEN
1. JIN01R01 / JIN01W01 / JIN01W02 を OPEN
2. WS-READ-CNT, WS-ERR-CNT を INITIALIZE(数値=0, PIC X=SPACE
#### 主処理(JIN01KNS-READ → JIN01KNS-CHECK → JIN01KNS-READ
1. JIN01R01 から1レコード READ
2. READ 成功 → JIN01KNS-CHECK へ
3. READ 失敗(AT END)→ JIN01KNS-CLOSE へ
#### チェック処理(JIN01KNS-CHECK
1. ADD 1 TO WS-READ-CNT END-ADDEND-ADD 予約語)
2. JIN01KNS-CHK-KANA 呼出
3. JIN01KNS-CHK-SIZE 呼出
4. JIN01KNS-CHK-SUB 呼出
5. エラーフラグ OFF → JIN01KNS-WRITE-OK
6. エラーフラグ ON → JIN01KNS-WRITE-ERR
#### カナ文字チェック(JIN01KNS-CHK-KANA
1. IF KANA-SEI IS NOT ALPHABETIC-UPPER → エラー(ALPHABETIC-UPPER 予約語)
2. IF KANA-MEI IS NOT ALPHABETIC-UPPER → エラー
3. エラー時は WRK-ERR-CODE に 'K002' を MOVE88-level VALUESは使用なし)
#### 桁数チェック(JIN01KNS-CHK-SIZE
1. KANA-SEI の20桁超過をチェック(FUNCTION LENGTH
2. 超過時はエラーフラグ ON + エラーコード設定
#### 補助コードチェック(JIN01KNS-CHK-SUB
1. SUB-CODE が有効値(VALUES '0001' '0002' '0003' 等)かチェック
2. 範囲外はエラーフラグ ON
#### 正常出力(JIN01KNS-WRITE-OK
1. JIN01W01 へレコード WRITE
#### エラー出力(JIN01KNS-WRITE-ERR
1. ADD 1 TO WS-ERR-CNT END-ADD
2. VALID-ERROR-REC にエラー情報設定
3. JIN01W02 へ WRITE
#### 終了処理(JIN01KNS-CLOSE
1. JIN01R01 / JIN01W01 / JIN01W02 を CLOSE
2. WS-ERR-CNT = 0 → MOVE ZERO TO RETURN-CODE
3. WS-ERR-CNT > 0 → MOVE 4 TO RETURN-CODE
4. GOBACK
## カバレッジ対象キーワード
| 予約語/記号 | 区分 | 使用箇所 |
|:-----------|:----:|:---------|
| PROGRAM-ID IS INITIAL | 予約語(95) | IDENTIFICATION DIVISION |
| RETURN-CODE | 予約語(145) | JIN01KNS-CLOSE |
| ALPHABETIC-UPPER | 予約語(7) | JIN01KNS-CHK-KANA |
| END-ADD | 予約語(55) | JIN01KNS-CHECK |
| VALUES | 予約語(183) | ERR-CODE 88-levelVALUE→VALUES表記) |
| PIC N | PICTURE記号 | KANJI-NAME定義 |
| ZZZZ9 | PICTURE記号 | 自プログラムでは使用なし(JIN02SKLのAGG-COUNT-EDITでカバー) |