# JIN03RAN 詳細設計書 ## プログラム概要 | 項目 | 内容 | |------|------| | プログラムID | JIN03RAN(人事→JINji, 03, ランキング→RAN) | | プログラムタイプ | 編集出力(ランキング生成) | | 機能 | SKILL-AGG(JIN02SKL出力のスキル別評価集計結果)を読み込み、平均点降順でランキング出力 | | 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-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 を SET UP BY 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 - SET WRK-IDX DOWN BY 1 - DISPLAY 'JIN03RAN END' UPON CONSOLE