サブシステムEをJIN04PRT〜JIN08TST追加で9本に拡充(全48プログラム)。JIN01-09のIBM COBOL完全版・bin再ビルド版・設計書・使用資源一覧・カバレッジ統計・DDL(schema_jin)・COPY(DB-COMMON/JIN04RPT-REC/JIN05REC)をroot側最新に同期。KYU03AGG/KYU08PRI/SHA02MNC/SHA10S10再テスト済み(全PASS)
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
# JIN06SRT 詳細設計書
|
||||
|
||||
## プログラム概要
|
||||
|
||||
| 項目 | 内容 |
|
||||
|------|------|
|
||||
| プログラムID | JIN06SRT(人事→JINji, 06, 社員データ並替→SRT) |
|
||||
| プログラムタイプ | 34(SORT) |
|
||||
| 機能 | EMP-VALID(200B)を 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 PROCEDURE(EOF 到達まで読込ループ + R01読込→RELEASE) |
|
||||
| 2110READSOR | 1件読込→SORTレコード転記→RELEASE / 上限超過はVALID-ERROR |
|
||||
| 2120OUTPUSOR | OUTPUT PROCEDURE(RETURN→SORTED-EMP書出) |
|
||||
| 3000STPSOR | 終了処理(統計表示・CLOSE・終了MSG) |
|
||||
| 4000MSGOUTSOR | メッセージ編集出力SUB呼出 |
|
||||
| 9000ERRSOR | エラー処理(ABEND) |
|
||||
|
||||
### 処理フロー
|
||||
|
||||
```
|
||||
1. 0000MAJCOLSOR
|
||||
1-1. PERFORM 1000ITTSOR(初期処理)
|
||||
1-2. PERFORM 2000MAJSOR(SORT処理)
|
||||
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(運用日付取得)。異常時は 4000MSGOUTSOR+9000ERRSOR
|
||||
2-5. OPEN OUTPUT W01OUTFIL, W02OUTFIL
|
||||
|
||||
3. 2000MAJSOR(SORT実行)
|
||||
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 SUB03END(ABEND)
|
||||
|
||||
4. 2110INPUTSOR(INPUT PROCEDURE)
|
||||
4-1. OPEN INPUT R01INNFIL
|
||||
4-2. PERFORM UNTIL WRK-R01EOF-Y(EOF 到達まで 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-ERROR(9999)WRITE、CUN-W02OUT +1
|
||||
|
||||
6. 2120OUTPUSOR(OUTPUT 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 SUB03END(ABEND)
|
||||
```
|
||||
|
||||
### 上限超過時のエラー出力(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 を繰返す |
|
||||
| SD(Sort Description) | 予約語 | FILE SECTION: SD SORTWORK |
|
||||
| SAME SORT AREA | 予約語 | ENVIRONMENT DIVISION: SAME SORT AREA 句(SHA08SRT と同様) |
|
||||
Reference in New Issue
Block a user