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

135 lines
5.8 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.
# JIN01KNS 詳細設計書
## プログラム概要
| 項目 | 内容 |
|------|------|
| プログラムID | JIN01KNS(人事→JINji, 01, カナKana確認Chekku→KNS |
| プログラムタイプ | 27(半角20桁/補助コード有効値チェック) |
| 機能 | 人事取込データの氏名カナ(半角20桁以内・英大文字)および補助コード有効値のチェック |
| CALL方式 | メインプログラム(JCLからCALL) |
| DBアクセス | なし |
| 使用サブプログラム | SUB01DAT(日付), SUB02MSG(メッセージ), SUB03END(アベンド) |
| INITIAL指定 | PROGRAM-ID IS INITIALINITIAL 予約語使用) |
| RETURN-CODE | エラー時 MOVE 4 TO RETURN-CODERETURN-CODE 予約語使用) |
## ファイル一覧
| DD名 | ファイル名 | 編成 | RECM | サイズ | I/O | 用途 |
|:----:|:---------:|:----:|:----:|:-----:|:---:|------|
| JIN01R01 | EMP-IMPORT | SEQUENTIAL | FB | 200 | INPUT | 人事取込データ |
| JIN01W01 | EMP-VALID | SEQUENTIAL | FB | 200 | OUTPUT | 正常通過データ |
| JIN01W02 | VALID-ERROR | SEQUENTIAL | FB | 80 | OUTPUT | エラーレコード |
## レコード定義
### JIN01RECJIN01R01 / JIN01W01 共用, 200B
| 項目 | PIC | 内容 | 備考 |
|:----|:---:|------|:----:|
| KANA-SEI | X(20) | 姓(半角カナ) | 最大20桁チェック対象 |
| KANA-MEI | X(20) | 名(半角カナ) | 最大20桁チェック対象 |
| KANJI-NAME | N(40) | 漢字氏名(全角) | PIC N 使用(N(1)=2B、実長80B、合計200B |
| SUB-CODE | X(4) | 補助コード | 有効値チェック対象 |
| BIRTH-DATE | X(8) | 生年月日 CCYYMMDD | — |
| EMP-ID | X(8) | 社員番号 | — |
| FILLER | X(060) | — | — |
### VALID-ERROR-RECJIN01W02, 80B
| 項目 | PIC | 内容 |
|:----|:---:|------|
| ERR-PROGRAMID | X(8) | エラー発生プログラムID |
| ERR-EMP-ID | X(8) | エラー社員番号 |
| ERR-CODE | X(4) | エラーコード(K001=カナ桁数超過, K002=英大文字以外, K003=補助コード不正) |
| ERR-DETAIL | X(60) | エラー詳細メッセージ |
## 処理詳細
### 段落一覧
| 段落名 | 機能 |
|:-------|:-----|
| 0000MAJCOLSOR | メインコントロール(初期→読込→主処理→終了、RETURN-CODE設定) |
| 1000ITTSOR | 初期処理(開始・コンパイル日時メッセージ、初期化、運用日付、OPEN、初回読込) |
| 1100R01INNSOR | R01読込・EOF判定 |
| 2000MAJSOR | 主処理(エラーフラグ初期化→各チェック→振分) |
| 2010CHKANASOR | 半角カナ文字チェック(IS ALPHABETIC-UPPER |
| 2020CHKSIZSOR | 桁数チェック(20桁超過チェック) |
| 2030CHKSUBSOR | 補助コード有効値チェック('0001'/'0002'/'0003' |
| 2100WRTOKSOR | 正常データWRITE |
| 2200WRTERRSOR | エラーデータWRITE |
| 3000STPSOR | 終了処理(統計表示・CLOSE) |
| 4000MSGOUTSOR | メッセージ編集出力SUB呼出 |
| 9999ABDSOR | エラー処理(ABEND |
### 処理ロジック
#### 初期処理(1000ITTSOR
1. 開始・コンパイル日時メッセージを SUB02MSG で出力(4000MSGOUTSOR 経由)
2. WRKARA, CUNARA を INITIALIZE
3. 運用日付取得(CALL SUB01DAT)。異常時は 4000MSGOUTSOR9999ABDSOR
4. JIN01R01 / JIN01W01 / JIN01W02 を OPEN
5. 初回読込(PERFORM 1100R01INNSOR
#### 制御・メイン(0000MAJCOLSOR
1. PERFORM 1000ITTSOR(初期処理)
2. PERFORM 2000MAJSOR UNTIL WRK-R01EOF-Y(読込EOFまでループ)
3. PERFORM 3000STPSOR(終了処理)
4. CUN-W02OUT > 0 → MOVE 4 TO RETURN-CODEGOBACK直前)
5. GOBACK
#### 読込処理(1100R01INNSOR
1. JIN01R01 から1レコード READAT END → WRK-R01EOF='1'
#### 主処理(2000MAJSOR
1. WRK-ERR-FLG に '0' を初期化
2. カナ文字チェック(2010CHKANASOR)呼出
3. エラー未設定時のみ桁数チェック(2020CHKSIZSOR)呼出
4. エラー未設定時のみ補助コードチェック(2030CHKSUBSOR)呼出
5. エラーフラグ ON → 2200WRTERRSOR / OFF → 2100WRTOKSOR へ振分
#### カナ文字チェック(2010CHKANASOR
1. IF KANA-SEI IS NOT ALPHABETIC-UPPER → エラー(ALPHABETIC-UPPER 予約語)
2. IF KANA-MEI IS NOT ALPHABETIC-UPPER → エラー
3. エラー時は ERR-CODE に 'K002' を設定
#### 桁数チェック(2020CHKSIZSOR
1. KANA-SEI の20桁超過をチェック(FUNCTION LENGTH
2. 超過時はエラーフラグ ON + エラーコード設定
#### 補助コードチェック(2030CHKSUBSOR
1. SUB-CODE が有効値(VALUES '0001' '0002' '0003' 等)かチェック
2. 範囲外はエラーフラグ ON
#### 正常出力(2100WRTOKSOR
1. JIN01W01 へレコード WRITE
#### エラー出力(2200WRTERRSOR
1. ADD 1 TO CUN-W02OUT END-ADD
2. VALID-ERROR-REC にエラー情報設定
3. JIN01W02 へ WRITE
#### 終了処理(3000STPSOR
1. 統計表示
2. JIN01R01 / JIN01W01 / JIN01W02 を CLOSE
3. 終了メッセージ OUTPUT4000MSGOUTSOR
#### メッセージ出力(4000MSGOUTSOR
1. CALL SUB02MSG でメッセージ出力
#### エラー処理(9999ABDSOR
1. CALL SUB03ENDABEND
## カバレッジ対象キーワード
| 予約語/記号 | 区分 | 使用箇所 |
|:-----------|:----:|:---------|
| PROGRAM-ID IS INITIAL | 予約語(95) | IDENTIFICATION DIVISION |
| RETURN-CODE | 予約語(145) | 0000MAJCOLSOR |
| ALPHABETIC-UPPER | 予約語(7) | 2010CHKANASOR |
| END-ADD | 予約語(55) | 2200WRTERRSOR |
| VALUES | 予約語(183) | JIN01KNS では未使用。JIN05UPD の EXEC SQL VALUES 句は SQL コンテキストのため、COBOL 予約語 VALUES のカバー対象外。カバレッジ統計は ×) |
| PIC N | PICTURE記号 | KANJI-NAME定義 |
| ZZZZ9 | PICTURE記号 | 自プログラムでは使用なし(JIN02SKLのAGG-COUNT-EDITでカバー) |