サブシステム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:
+58
-43
@@ -5,13 +5,13 @@
|
||||
| 項目 | 内容 |
|
||||
|------|------|
|
||||
| プログラムID | JIN01KNS(人事→JINji, 01, カナKana確認Chekku→KNS) |
|
||||
| プログラムタイプ | 27(半角20桁/4桁チェック) |
|
||||
| 機能 | 人事取込データの氏名カナ(半角20桁以内・英大文字)および補助コード桁数のチェック |
|
||||
| プログラムタイプ | 27(半角20桁/補助コード有効値チェック) |
|
||||
| 機能 | 人事取込データの氏名カナ(半角20桁以内・英大文字)および補助コード有効値のチェック |
|
||||
| CALL方式 | メインプログラム(JCLからCALL) |
|
||||
| DBアクセス | なし |
|
||||
| 使用サブプログラム | SUB01DAT(日付), SUB02MSG(メッセージ), SUB03END(アベンド) |
|
||||
| INITIAL指定 | PROGRAM-ID IS INITIAL(INITIAL 予約語使用) |
|
||||
| RETURN-CODE | 正常終了時 MOVE ZERO TO RETURN-CODE(RETURN-CODE 予約語使用) |
|
||||
| RETURN-CODE | エラー時 MOVE 4 TO RETURN-CODE(RETURN-CODE 予約語使用) |
|
||||
|
||||
## ファイル一覧
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
| 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) | 補助コード | 4桁チェック対象 |
|
||||
| SUB-CODE | X(4) | 補助コード | 有効値チェック対象 |
|
||||
| BIRTH-DATE | X(8) | 生年月日 CCYYMMDD | — |
|
||||
| EMP-ID | X(8) | 社員番号 | — |
|
||||
| FILLER | X(060) | — | — |
|
||||
@@ -50,70 +50,85 @@
|
||||
|
||||
| 段落名 | 機能 |
|
||||
|:-------|:-----|
|
||||
| JIN01KNS-OPEN | ファイルOPEN |
|
||||
| JIN01KNS-READ | 1レコードREAD |
|
||||
| JIN01KNS-CHECK | カナチェック主処理 |
|
||||
| JIN01KNS-CHK-KANA | 半角カナ文字チェック(IS ALPHABETIC-UPPER) |
|
||||
| JIN01KNS-CHK-SIZE | 桁数チェック(20桁超過チェック) |
|
||||
| JIN01KNS-CHK-SUB | 補助コード桁数チェック(4桁) |
|
||||
| JIN01KNS-WRITE-OK | 正常データWRITE |
|
||||
| JIN01KNS-WRITE-ERR | エラーデータWRITE |
|
||||
| JIN01KNS-CLOSE | ファイルCLOSE + RETURN-CODE設定 |
|
||||
| 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) |
|
||||
|
||||
### 処理ロジック
|
||||
|
||||
#### 初期処理(JIN01KNS-OPEN)
|
||||
1. JIN01R01 / JIN01W01 / JIN01W02 を OPEN
|
||||
2. WS-READ-CNT, WS-ERR-CNT を INITIALIZE(数値=0, PIC X=SPACE)
|
||||
#### 初期処理(1000ITTSOR)
|
||||
1. 開始・コンパイル日時メッセージを SUB02MSG で出力(4000MSGOUTSOR 経由)
|
||||
2. WRKARA, CUNARA を INITIALIZE
|
||||
3. 運用日付取得(CALL SUB01DAT)。異常時は 4000MSGOUTSOR+9999ABDSOR
|
||||
4. JIN01R01 / JIN01W01 / JIN01W02 を OPEN
|
||||
5. 初回読込(PERFORM 1100R01INNSOR)
|
||||
|
||||
#### 主処理(JIN01KNS-READ → JIN01KNS-CHECK → JIN01KNS-READ)
|
||||
1. JIN01R01 から1レコード READ
|
||||
2. READ 成功 → JIN01KNS-CHECK へ
|
||||
3. READ 失敗(AT END)→ JIN01KNS-CLOSE へ
|
||||
#### 制御・メイン(0000MAJCOLSOR)
|
||||
1. PERFORM 1000ITTSOR(初期処理)
|
||||
2. PERFORM 2000MAJSOR UNTIL WRK-R01EOF-Y(読込EOFまでループ)
|
||||
3. PERFORM 3000STPSOR(終了処理)
|
||||
4. CUN-W02OUT > 0 → MOVE 4 TO RETURN-CODE(GOBACK直前)
|
||||
5. GOBACK
|
||||
|
||||
#### チェック処理(JIN01KNS-CHECK)
|
||||
1. ADD 1 TO WS-READ-CNT END-ADD(END-ADD 予約語)
|
||||
2. JIN01KNS-CHK-KANA 呼出
|
||||
3. JIN01KNS-CHK-SIZE 呼出
|
||||
4. JIN01KNS-CHK-SUB 呼出
|
||||
5. エラーフラグ OFF → JIN01KNS-WRITE-OK
|
||||
6. エラーフラグ ON → JIN01KNS-WRITE-ERR
|
||||
#### 読込処理(1100R01INNSOR)
|
||||
1. JIN01R01 から1レコード READ(AT END → WRK-R01EOF='1')
|
||||
|
||||
#### カナ文字チェック(JIN01KNS-CHK-KANA)
|
||||
#### 主処理(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. エラー時は WRK-ERR-CODE に 'K002' を MOVE(88-level VALUESは使用なし)
|
||||
3. エラー時は ERR-CODE に 'K002' を設定
|
||||
|
||||
#### 桁数チェック(JIN01KNS-CHK-SIZE)
|
||||
#### 桁数チェック(2020CHKSIZSOR)
|
||||
1. KANA-SEI の20桁超過をチェック(FUNCTION LENGTH)
|
||||
2. 超過時はエラーフラグ ON + エラーコード設定
|
||||
|
||||
#### 補助コードチェック(JIN01KNS-CHK-SUB)
|
||||
#### 補助コードチェック(2030CHKSUBSOR)
|
||||
1. SUB-CODE が有効値(VALUES '0001' '0002' '0003' 等)かチェック
|
||||
2. 範囲外はエラーフラグ ON
|
||||
|
||||
#### 正常出力(JIN01KNS-WRITE-OK)
|
||||
#### 正常出力(2100WRTOKSOR)
|
||||
1. JIN01W01 へレコード WRITE
|
||||
|
||||
#### エラー出力(JIN01KNS-WRITE-ERR)
|
||||
1. ADD 1 TO WS-ERR-CNT END-ADD
|
||||
#### エラー出力(2200WRTERRSOR)
|
||||
1. ADD 1 TO CUN-W02OUT END-ADD
|
||||
2. VALID-ERROR-REC にエラー情報設定
|
||||
3. JIN01W02 へ WRITE
|
||||
|
||||
#### 終了処理(JIN01KNS-CLOSE)
|
||||
1. JIN01R01 / JIN01W01 / JIN01W02 を CLOSE
|
||||
2. WS-ERR-CNT = 0 → MOVE ZERO TO RETURN-CODE
|
||||
3. WS-ERR-CNT > 0 → MOVE 4 TO RETURN-CODE
|
||||
4. GOBACK
|
||||
#### 終了処理(3000STPSOR)
|
||||
1. 統計表示
|
||||
2. JIN01R01 / JIN01W01 / JIN01W02 を CLOSE
|
||||
3. 終了メッセージ OUTPUT(4000MSGOUTSOR)
|
||||
|
||||
#### メッセージ出力(4000MSGOUTSOR)
|
||||
1. CALL SUB02MSG でメッセージ出力
|
||||
|
||||
#### エラー処理(9999ABDSOR)
|
||||
1. CALL SUB03END(ABEND)
|
||||
|
||||
## カバレッジ対象キーワード
|
||||
|
||||
| 予約語/記号 | 区分 | 使用箇所 |
|
||||
|:-----------|:----:|:---------|
|
||||
| PROGRAM-ID IS INITIAL | 予約語(95) | IDENTIFICATION DIVISION |
|
||||
| RETURN-CODE | 予約語(145) | JIN01KNS-CLOSE |
|
||||
| ALPHABETIC-UPPER | 予約語(7) | JIN01KNS-CHK-KANA |
|
||||
| END-ADD | 予約語(55) | JIN01KNS-CHECK |
|
||||
| VALUES | 予約語(183) | ERR-CODE 88-level(VALUE→VALUES表記) |
|
||||
| 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でカバー) |
|
||||
|
||||
Reference in New Issue
Block a user