JIN03RAN Phase B: COMP-4/CORR/DESCENDING/DOWN/UP カバレッジ追加

This commit is contained in:
qiuqiuqiu
2026-07-21 08:31:00 +08:00
parent 39b9ec4e50
commit e13fbba5b6
5 changed files with 430 additions and 0 deletions
@@ -0,0 +1,82 @@
# JIN03RAN 詳細設計書
## プログラム概要
| 項目 | 内容 |
|------|------|
| プログラムID | JIN03RAN(人事→JINji, 03, ランキング→RAN |
| プログラムタイプ | 編集出力(ランキング生成) |
| 機能 | SKILL-AGGJIN02SKL出力のスキル別評価集計結果)を読み込み、平均点降順でランキング出力 |
| CALL方式 | メインプログラム(JCLからCALL) |
| DBアクセス | なし |
| 使用サブプログラム | SUB01DAT(日付), SUB02MSG(メッセージ) |
## カバレッジ対象キーワード
| 予約語 | 区分 | 使用箇所 |
|:-------|:----:|:---------|
| COMP-4 | 予約語(25) | `PIC 9(004) COMP-4` バイナリカウンタ + `ADD 1 TO CUN-COMP4` |
| CORR | 予約語(33) | `MOVE CORRESPONDING WS-CORR-SRC TO WS-CORR-DST` |
| DESCENDING | 予約語(45) | `OCCURS 3 TIMES DESCENDING KEY IS WS-THR` 内部表定義 |
| DOWN | 予約語(50) | `SET WRK-IDX DOWN BY 1` |
| UP | 予約語(177) | `SET WRK-RANK-NO UP BY 1`, `SET WRK-OUT-IDX UP BY 1` |
| VALUES | 予約語(183) | 88-level 単一VALUE(複数VALUESは未カバー) |
## ファイル一覧
| DD名 | ファイル名 | 編成 | RECM | サイズ | I/O | 用途 |
|:----:|:---------:|:----:|:----:|:-----:|:---:|------|
| JIN03R01 | SKILL-AGG | SEQUENTIAL | FB | 200 | INPUT | スキル別評価集計結果(JIN02SKL出力) |
| JIN03W01 | RANK-OUT | SEQUENTIAL | FB | 200 | OUTPUT | ランキング出力 |
## レコード定義
### SKILL-AGG-RECJIN03R01, 200B
JIN02SKL 詳細設計書の W01 定義と同じ(SKILL-AGG-REC.cpy 参照)。
### JIN03RAN-RECJIN03W01, 200B 新規COPY書式)
| 項目 | PIC | 内容 |
|:----|:---:|:-----|
| RANK-NO | 9(4) | ランキング順位 |
| SKILL-CODE | X(4) | スキルコード |
| SCORE | 9(3)V9(2) | 平均点 |
| EMP-COUNT | 9(5) | 評価人数 |
| LEVEL-NAME | X(20) | レベル名称 |
| RANK-CODE | X(1) | ランク区分(S/A/B |
| FILLER | X(161) | — |
## 処理詳細
### 段落一覧
| 段落名 | 機能 |
|:-------|:-----|
| 0000MAJCOLSOR | メイン制御(PERFORM連鎖) |
| 1000ITTSOR | 初期処理(開始メッセージ→OPEN→初回読込) |
| 2000MAINSOR | 主処理(ランク区分設定→WRITE→次件読込) |
| 2100READSOR | R01読込処理(EOF判定) |
| 4000STPSOR | 終了処理(CLOSE→終了メッセージ) |
### 処理ロジック
1. **1000ITTSOR(初期処理)**
- DISPLAY 'JIN03RAN START' UPON CONSOLE
- SUB02MSG で開始メッセージ出力
- SUB01DAT で運用日付取得
- R01 / W01 ファイル OPEN
- R01 初回 READ
2. **2000MAINSOR(主処理ループ)**
- WRK-RANK-NO を SET UP BY 1 で順位UP
- COMP-4 カウンタ ADD 1
- MOVE CORRESPONDING で項目編集
- 平均点に基づきランク区分設定(S: >= 900, A: >= 600, B: < 600
- 88-LevelWS-RANK-VAL-S/A/B)でランク妥当性確認
- W01 WRITE
- 次のR01 READ
3. **4000STPSOR(終了処理)**
- R01 / W01 CLOSE
- SET WRK-IDX DOWN BY 1
- DISPLAY 'JIN03RAN END' UPON CONSOLE