88 lines
3.4 KiB
Markdown
88 lines
3.4 KiB
Markdown
# JIN03RAN 詳細設計書
|
||
|
||
## プログラム概要
|
||
|
||
| 項目 | 内容 |
|
||
|------|------|
|
||
| プログラムID | JIN03RAN(人事→JINji, 03, ランキング→RAN) |
|
||
| プログラムタイプ | 編集出力(ランキング生成) |
|
||
| 機能 | SKILL-AGG(JIN02SKL出力のスキル別評価集計結果)を読み込み、平均点降順でランキング出力(前提:R01はJCL SORTにより平均点降順ソート済み) |
|
||
| 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` 内部表定義 |
|
||
| ADD | 予約語(3) | `ADD 1 TO WRK-RANK-NO`, `ADD 1 TO WRK-OUT-IDX`(2000MAINSOR) |
|
||
| SUBTRACT | 予約語(164) | `SUBTRACT 1 FROM WRK-IDX`(4000STPSOR) |
|
||
| 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 | ランキング出力 |
|
||
|
||
## 前提条件
|
||
|
||
- JIN03R01(SKILL-AGG)は、JCL の SORT ステップにより**平均点降順**にソート済みであること
|
||
- 本プログラムはソートを行わず、入力順にランク番号(WRK-RANK-NO)を採番する
|
||
|
||
## レコード定義
|
||
|
||
### SKILL-AGG-REC(JIN03R01, 200B)
|
||
JIN02SKL 詳細設計書の W01 定義と同じ(SKILL-AGG-REC.cpy 参照)。
|
||
|
||
### JIN03REC(JIN03W01, 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 を ADD 1 で順位UP
|
||
- COMP-4 カウンタ ADD 1
|
||
- MOVE CORRESPONDING で項目編集
|
||
- 平均点に基づきランク区分設定(S: >= 900, A: >= 600, B: < 600)
|
||
- 88-Level(WS-RANK-VAL-S/A/B)でランク妥当性確認
|
||
- W01 WRITE
|
||
- 次のR01 READ
|
||
|
||
3. **4000STPSOR(終了処理)**
|
||
- R01 / W01 CLOSE
|
||
- SUBTRACT 1 FROM WRK-IDX
|
||
- DISPLAY 'JIN03RAN END' UPON CONSOLE
|