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

5.8 KiB
Raw Permalink Blame History

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でカバー)