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

6.2 KiB
Raw Permalink Blame History

詳細設計書

基本情報

# 項目 内容
1 システム名 残業統計管理システム
2 プログラムID ZAN04MAT
3 プログラム名 取消マッチング処理
4 PGMタイプ メイン
5 PGMパターン マッチング(1:1)
6 機能概要 OVT-SORTED(有効申請)とOVT-CSORT(取消申請)を申請番号(APPL-ID)で1:1マッチングし、結果を振り分ける。
7 申請番号一致(取消済):監査証跡としてERROR-LOGに記録
8 申請のみ(取消なし):OVT-MATCHEDに出力(処理番号=1
9 取消のみ(既DB登録済):OVT-DBCLEANに出力(DB削除用)

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

前提条件

NO 対象ファイル 条件
1 ファイルR01OVT-SORTED 申請番号(APPL-ID)で昇順ソート済、重複なし
2 ファイルR02OVT-CSORT 申請番号(APPL-ID)で昇順ソート済、重複なし

使用ファイル一覧

NO 使用ファイル/DB名 識別子 DD名 I/O COPY群 形式 ブロック レコード長 媒体 備考
1 OVT-SORTED R01 ZAN04R01 I ZAN01REC FB 80 PS 有効申請(APPL-ID昇順)
2 OVT-CSORT R02 ZAN04R02 I ZAN01REC FB 80 PS 取消申請(APPL-ID昇順)
3 OVT-MATCHED W01 ZAN04W01 O ZAN02REC FB 80 PS マッチング結果(処理番号付)
4 OVT-DBCLEAN W02 ZAN04W02 O ZAN04REC FB 80 PS DB削除用(APPL-IDのみ)
5 ERROR-LOG W03 ZAN04W03 O ZAN05REC VB 200 PS 監査証跡(取消マッチ記録)

キー項目一覧

NO ファイル名 ソート条件(キー項目) キー条件(マッチング/キーブレイク)
1 ファイルR01 APPL-ID(重複NG APPL-ID
2 ファイルR02 APPL-ID(重複NG APPL-ID

使用モジュール一覧

NO 機能 プログラムID 使用COPY名
1 運用日付取得SUB SUB01DAT ZANDATAC
2 メッセージ編集出力SUB SUB02MSG ZANMSGAC
3 ABEND処理SUB SUB03END ZANENDAC

処理詳細

1.初期処理(1000ITTSOR
  1-1.開始メッセージ出力
    【メッセージ編集】
    メッセージ番号:1(開始メッセージ)
  1-2.コンパイル日時出力
    【メッセージ編集】
    メッセージ番号:33(コンパイル日時)
    PARM1:コンパイル日時
    PARM2'COMPILED'
  1-3.ワークエリアの初期化
  1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。
    復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。
    【メッセージ編集】
    メッセージ番号:5(サブエラー)
    PARM1'SUB01DAT'
    PARM2:復帰コード
    【ABEND処理SUB】
    ABENDコード:999
  1-5.使用ファイルのオープン
  1-6.R01を読み込む。(1100R01INNSOR)(1回目)
  1-7.R02を読み込む。(1200R02INNSOR)(1回目)

2.主処理(2000MAJSOR)(R01、R02を全て読み終えるまで下記を繰り返す)
  2-1.マッチの場合(R01.APPL-ID = R02.APPL-ID
    取消済みの申請のため、OVT-MATCHEDには出力しない。
    監査証跡としてERROR-LOGにマッチ情報を出力する。(2100MATCHSOR)
    【STRING編集】
    ERR-CATEGORY = 04
    ERR-DETAIL = 'CANCEL-MATCH: ' + 申請番号 + 社員番号 + 申請日 + 開始時刻 + 終了時刻
    R01を読み込む。(1100R01INNSOR)(2件目以降)
    R02を読み込む。(1200R02INNSOR)(2件目以降)
  2-2.R01のみの場合(R01.APPL-ID < R02.APPL-ID
    R01をOVT-MATCHEDにSTRING編集して出力する。(2200R01OUTSOR)
    【STRING編集】
    W01 = 申請番号 + 社員番号 + 申請日 + 開始時刻 + 終了時刻 + ステータス + OVT-TYPE + 処理番号(01)
    R01を読み込む。(1100R01INNSOR)(2件目以降)
  2-3.R02のみの場合(R01.APPL-ID > R02.APPL-ID
    R02をOVT-DBCLEANに出力する。(2300R02OUTSOR)
    W02.APPL-ID = R02.APPL-ID
    R02を読み込む。(1200R02INNSOR)(2件目以降)

3.終了処理(3000STPSOR)
  3-1.入出力ファイルのクローズ
  3-2.入出力件数出力メッセージ出力
    【入力メッセージ編集】
    メッセージ番号:6(入力件数メッセージ)
    PARM1:当該入力ファイルのDD名
    PARM2:当該入力ファイルの件数
    【出力メッセージ編集】
    メッセージ番号:7(出力件数メッセージ)
    PARM1:当該出力ファイルのDD名
    PARM2:当該出力ファイルの件数
  3-3.終了メッセージ出力
    【メッセージ編集】
    メッセージ番号:2(終了メッセージ)

出力レコード定義

出力ファイル1W01/OVT-MATCHED

No 項目名 設定元 備考
1 APPL-ID R01.APPL-ID
2 EMP-ID R01.EMP-ID
3 APPL-DATE R01.APPL-DATE
4 START-TIME R01.START-TIME
5 END-TIME R01.END-TIME
6 STATUS R01.STATUS
7 OVT-TYPE R01.OVT-TYPE
8 PROC-SEQ 01固定 同一申請番号グループ内連番
9 FILLER 初期値

出力ファイル2W02/OVT-DBCLEAN

No 項目名 設定元 備考
1 APPL-ID R02.APPL-ID DB削除対象申請番号
2 FILLER 初期値

出力ファイル3W03/ERROR-LOG

No 項目名 設定元 備考
1 ERR-CATEGORY 04で固定 取消マッチ監査証跡
2 ERR-DETAIL STRINGで編集 CANCEL-MATCH: + 申請番号 + 社員番号 + 申請日 + 開始時刻 + 終了時刻