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

140 lines
5.7 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.
# JIN06SRT 詳細設計書
## プログラム概要
| 項目 | 内容 |
|------|------|
| プログラムID | JIN06SRT(人事→JINji, 06, 社員データ並替→SRT |
| プログラムタイプ | 34(SORT) |
| 機能 | EMP-VALID200B)を INPUT PROCEDURE で読込み、EMP-ID 昇順に SORT し、OUTPUT PROCEDURE で RETURN して SORTED-EMP へ書出す |
| CALL方式 | メインプログラム(JCLからCALL) |
| DBアクセス | なし |
| 使用サブプログラム | SUB01DAT(日付), SUB02MSG(メッセージ), SUB03END(アベンド) |
### 前提条件
| NO | 対象ファイル | 条件 |
|----|-------------|------|
| 1 | EMP-VALID | JIN01KNS でチェック済のデータであること |
| 2 | EMP-VALID | 並替は COBOL の SORT 文で実施(本プログラム内) |
> キーワードカバー目的で、並替は COBOL の `SORT` 文(INPUT/OUTPUT PROCEDURE)を明示使用する。本番では JCL の SORTWK* でソートワーク領域を確保する。
### 使用ファイル一覧
| NO | 使用ファイル名 | 識別子 | DD名 | I/O | COPY群 | 形式 | レコード長 | 媒体 | 備考 |
|----|--------------|--------|------|-----|--------|------|-----------|------|------|
| 1 | EMP-VALID | R01 | JIN06R01 | I | JIN01REC | FB | 200 | PS | チェック済社員データ |
| 2 | SORTED-EMP | W01 | JIN06W01 | O | JIN01REC | FB | 200 | PS | 並替済社員データ |
| 3 | VALID-ERROR | W02 | JIN06W02 | O | VALID-ERROR-REC | FB | 80 | PS | 上限超過エラー |
| 4 | SORTWORK | SD | SORTWK01 | — | JIN01REC | FB | 200 | ワーク | SORTファイル |
### キー項目一覧
| NO | ファイル名 | ソート条件(キー項目) | キー条件 |
|----|-----------|---------------------|----------|
| 1 | SORTWORK | EMP-ID 昇順 | ON ASCENDING KEY |
### 使用モジュール一覧
| NO | 機能 | プログラムID | 使用COPY名 |
|----|------|-------------|-----------|
| 1 | 運用日付取得SUB | SUB01DAT | JINDATAC |
| 2 | メッセージ編集出力SUB | SUB02MSG | JINMSGAC |
| 3 | ABEND処理SUB | SUB03END | JINENDAC |
---
## 処理詳細
### 段落一覧(SOR規約名)
| 段落名 | 機能 |
|:-------|:-----|
| 0000MAJCOLSOR | メインコントロール(初期→SORT→終了) |
| 1000ITTSOR | 初期処理(開始MSG・初期化・運用日付・出力OPEN) |
| 2000MAJSOR | SORT実行(ON ASCENDING KEY + INPUT/OUTPUT PROCEDURE + 復帰コード判定) |
| 2110INPUTSOR | INPUT PROCEDUREEOF 到達まで読込ループ + R01読込→RELEASE |
| 2110READSOR | 1件読込→SORTレコード転記→RELEASE / 上限超過はVALID-ERROR |
| 2120OUTPUSOR | OUTPUT PROCEDURERETURN→SORTED-EMP書出) |
| 3000STPSOR | 終了処理(統計表示・CLOSE・終了MSG) |
| 4000MSGOUTSOR | メッセージ編集出力SUB呼出 |
| 9000ERRSOR | エラー処理(ABEND |
### 処理フロー
```
1. 0000MAJCOLSOR
1-1. PERFORM 1000ITTSOR(初期処理)
1-2. PERFORM 2000MAJSORSORT処理)
1-3. PERFORM 3000STPSOR(終了処理)
1-4. GOBACK
2. 1000ITTSOR(初期処理)
2-1. DISPLAY 'JIN06SRT START' UPON CONSOLE
2-2. SUB02MSG で開始メッセージ(001)出力
2-3. INITIALIZE WRKARA, CUNARA
2-4. CALL SUB01DAT(運用日付取得)。異常時は 4000MSGOUTSOR9000ERRSOR
2-5. OPEN OUTPUT W01OUTFIL, W02OUTFIL
3. 2000MAJSORSORT実行)
3-1. SORT SORTWORK
ON ASCENDING KEY SREMP-ID
INPUT PROCEDURE 2110INPUTSOR
OUTPUT PROCEDURE 2120OUTPUSOR
3-2. MOVE RETURN-CODE TO WRK-SORT-STAT
3-3. WRK-SORT-STAT ≠ 0 → 4000MSGOUTSOR + CALL SUB03ENDABEND
4. 2110INPUTSORINPUT PROCEDURE
4-1. OPEN INPUT R01INNFIL
4-2. PERFORM UNTIL WRK-R01EOF-YEOF 到達まで 2110READSOR を繰返す)
※READ は EOF まで行い、上限超過(WRK-SORT-CNT > 999)分を VALID-ERROR へ出力する
4-3. CLOSE R01INNFIL
5. 2110READSOR(読込・RELEASE
5-1. WRK-R01EOF-Y なら EXIT SECTION(上限到達後の空処理)
5-2. READ R01INNFIL
AT END → WRK-R01EOF='1'
NOT AT END → CUN-R01INN +1、WRK-SORT-CNT +1
R01→SR へ全項目転記
WRK-SORT-CNT <= 999 → RELEASE SORTREC、CUN-SORT-IN +1
WRK-SORT-CNT > 999 → VALID-ERROR9999WRITE、CUN-W02OUT +1
6. 2120OUTPUSOROUTPUT PROCEDURE
6-1. PERFORM UNTIL 1=2
RETURN SORTWORK RECORD
AT END → EXIT PERFORM
NOT AT END → SR→W01 へ転記 → WRITE W01OUTREC、CUN-W01OUT +1
END-RETURN
7. 3000STPSOR(終了処理)
7-1. DISPLAY READ/SORT/OUT/ERROR 件数 UPON CONSOLE
7-2. CLOSE W01OUTFIL, W02OUTFIL
7-3. SUB02MSG で終了メッセージ(002)出力
8. 9000ERRSOR(エラー処理)
8-1. CALL SUB03ENDABEND
```
### 上限超過時のエラー出力(W02/VALID-ERROR
| 項目名 | 設定値 | PIC | 備考 |
|--------|--------|:---:|------|
| ERR-PROGRAMID | CNS-PRGIDX | X(8) | 'JIN06SRT' |
| ERR-EMP-ID | SREMP-ID | X(8) | 超過レコードの社員番号 |
| ERR-CODE | '9999' | X(4) | 上限超過 |
| ERR-DETAIL | 'SORT LIMIT OVER' | X(60) | |
---
## カバレッジ対象キーワード
| 予約語/記号 | 区分 | 使用箇所 |
|:-----------|:----:|:---------|
| SORT | 予約語 | 2000MAJSOR: SORT ファイル ON ASCENDING KEY + INPUT/OUTPUT PROCEDURE |
| RELEASE | 予約語 | 2110READSOR: INPUT PROCEDURE 内で RELEASE 送出 |
| RETURN | 予約語 | 2120OUTPUSOR: RETURN SORTWORK RECORD / END-RETURN |
| PERFORM UNTIL | 予約語 | 2110INPUTSOR: EOF 到達まで 2110READSOR を繰返す |
| SDSort Description | 予約語 | FILE SECTION: SD SORTWORK |
| SAME SORT AREA | 予約語 | ENVIRONMENT DIVISION: SAME SORT AREA 句(SHA08SRT と同様) |