Files
cobol-tna-system/詳細設計書/詳細設計書_SUB04CHK.md
qiuqiuqiu b3e800e601 feat: サブシステムB 残業統計管理 初回production反映
- 全6プログラム(ZAN01CHK~ZAN06UPD)ソース・実行ファイル
- 5サブプログラム(SUB01DAT~SUB05TIM)ソース・DLL
- 10 COPY書式ファイル
- 詳細設計書12ファイル
- サブシステムB全体設計書
- bin/配下の実行ファイル资産
2026-06-17 23:20:53 +08:00

3.7 KiB
Raw Permalink Blame History

詳細設計書

基本情報

# 項目 内容
1 システム名 残業統計管理システム
2 プログラムID SUB04CHK
3 プログラム名 項目チェックサブ
4 PGMタイプ サブ
5 PGMパターン 項目チェック
6 機能概要 チェックタイプに応じてデータ妥当性を検証する。

※PGMタイプ:メイン、サブ ※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新

使用方法

  CALL 'SUB04CHK' USING  C01CHKPAR

入出力パラメータ

COPY句 ZANCHKAC
NO 入出力区分 名称 属性 桁数 説明
1 I C01CHKTYP X(8) 8 チェックタイプ(DATE/TIME/NUM/EMPID)
2 I C01CHKDAT X(80) 80 チェック対象データ
3 O C01CHKRRC 9(4) 4 復帰コード(0000:正常,0001:日付不正,0002:時刻不正,0003:数字不正)

リターンコード一覧

NO コード 説明
1 0000 正常終了(チェックOK)
2 0001 日付不正(DATE指定時、月01〜12/日01〜31範囲外)
3 0002 時刻不正(TIME指定時、時00〜23/分00〜59範囲外)
4 0003 数字不正(NUM指定時、非数字文字を含む)
5 0004 社員番号不正(EMPID指定時、8桁以外または空欄)
6 9999 チェックタイプ不明

処理詳細

1.制御処理(0000MAINSOR
  1-1.C01CHKTYPにより分岐する。
    1-1-1.C01CHKTYP = 'DATE' の場合
      1000CHKDATEへ。
    1-1-2.C01CHKTYP = 'TIME' の場合
      2000CHKTIMEへ。
    1-1-3.C01CHKTYP = 'NUM' の場合
      3000CHKNUMへ。
    1-1-4.C01CHKTYP = 'EMPID' の場合
      4000CHKEMPへ。
    1-1-5.その他の場合
      C01CHKRRC = 9999 を設定し、1-2へ。
  1-2.復帰(GOBACK)。

2.日付チェック(1000CHKDATE
  2-1.C01CHKDATから年月日を抽出する。
    YYYY = C01CHKDAT(1:4)
    MM   = C01CHKDAT(5:2)
    DD   = C01CHKDAT(7:2)
  2-2.月チェック(MM)
    2-2-1.MM < 1 OR MM > 12
      → C01CHKRRC = 0001 を設定し、2-5へ。
  2-3.日チェック(DD)
    2-3-1.DD < 1 OR DD > 31
      → C01CHKRRC = 0001 を設定し、2-5へ。
  2-4.正常の場合
    C01CHKRRC = 0000 を設定する。
  2-5.復帰(0000MAINSOR-EXTへ)。

3.時刻チェック(2000CHKTIME
  3-1.C01CHKDATから時分を抽出する。
    HH = C01CHKDAT(1:2)
    MM = C01CHKDAT(3:2)
  3-2.時チェック(HH)
    3-2-1.HH > 23
      → C01CHKRRC = 0002 を設定し、3-5へ。
  3-3.分チェック(MM)
    3-3-1.MM > 59
      → C01CHKRRC = 0002 を設定し、3-5へ。
  3-4.正常の場合
    C01CHKRRC = 0000 を設定する。
  3-5.復帰(0000MAINSOR-EXTへ)。

4.数字チェック(3000CHKNUM
  4-1.C01CHKDATにSPACEより前の文字があるかチェックする。
    INSPECT C01CHKDAT TALLYING WRK-NN FOR
            CHARACTERS BEFORE INITIAL SPACE.
  4-2.WRK-NN > 0 の場合
    C01CHKRRC = 0003 を設定し、4-4へ。
  4-3.正常の場合
    C01CHKRRC = 0000 を設定する。
  4-4.復帰(0000MAINSOR-EXTへ)。

5.社員番号チェック(4000CHKEMP)
  5-1.桁数チェック(8桁以内)
    C01CHKDAT(9:72)にSPACES以外がある場合
      C01CHKRRC = 0004 を設定し、5-4へ。
  5-2.空欄チェック
    INSPECT C01CHKDAT(1:8) TALLYING WRK-NN FOR
            CHARACTERS BEFORE INITIAL SPACE.
    WRK-NN > 0 の場合
      C01CHKRRC = 0004 を設定し、5-4へ。
  5-3.正常の場合
    C01CHKRRC = 0000 を設定する。
  5-4.復帰(0000MAINSOR-EXTへ)。