Files
cobol-tna-system/詳細設計書/詳細設計書_JIN03RAN.md

88 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# JIN03RAN 詳細設計書
## プログラム概要
| 項目 | 内容 |
|------|------|
| プログラムID | JIN03RAN(人事→JINji, 03, ランキング→RAN |
| プログラムタイプ | 編集出力(ランキング生成) |
| 機能 | SKILL-AGGJIN02SKL出力のスキル別評価集計結果)を読み込み、平均点降順でランキング出力(前提: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 | ランキング出力 |
## 前提条件
- JIN03R01SKILL-AGG)は、JCL の SORT ステップにより**平均点降順**にソート済みであること
- 本プログラムはソートを行わず、入力順にランク番号(WRK-RANK-NO)を採番する
## レコード定義
### SKILL-AGG-RECJIN03R01, 200B
JIN02SKL 詳細設計書の W01 定義と同じ(SKILL-AGG-REC.cpy 参照)。
### JIN03RECJIN03W01, 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-LevelWS-RANK-VAL-S/A/B)でランク妥当性確認
- W01 WRITE
- 次のR01 READ
3. **4000STPSOR(終了処理)**
- R01 / W01 CLOSE
- SUBTRACT 1 FROM WRK-IDX
- DISPLAY 'JIN03RAN END' UPON CONSOLE