# 詳細設計書 ## 基本情報 | # | 項目 | 内容 | |---|------|------| | 1 | システム名 | サンプルシステム | | 2 | プログラムID | SAN01MAT | | 3 | プログラム名 | XXXXXX処理 | | 4 | PGMパターン | マッチング(1:1) | | 5 | 機能概要 | マッチング(1:1)を行う。 | | 6 | | マッチの場合、ファイルW01を出力する。 | | 7 | | ファイルR01のみの場合ファイルW02を出力する。 | | 8 | | ファイルR02のみの場合ファイルW03を出力する。 | ※PGMパターン:マッチング(1:1、1:N、M:N)、レイアウト編集のみ(GETPUT)、項目チェック、振り分け、キーブレイク、キーブレイク(集計、集約)、DB更新 ### 前提条件 | NO | 対象ファイル | 条件 | |----|-------------|------| | 1 | ファイルR01 | キー項目A001>A002>A003で昇順でソート | | 2 | ファイルR02 | キー項目A001>A002>A003で昇順でソート | ### 使用ファイル一覧 | NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | |----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| | 1 | ファイルR01 | R01 | SAN01R01 | I | BBBBBFC | FB | | 120 | PS | | | 2 | ファイルR02 | R02 | SAN01R02 | I | BBBBBFC | FB | | 120 | PS | | | 3 | ファイルW01 | W01 | SAN01W01 | O | BBBBBFC | FB | | 120 | PS | | | 4 | ファイルW02 | W02 | SAN01W02 | O | BBBBBFC | FB | | 120 | PS | | | 5 | ファイルW03 | W03 | SAN01W03 | O | BBBBBFC | FB | | 120 | PS | | ### キー項目一覧 | NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | |----|-----------|---------------------|-------------------------------------------| | 1 | ファイルR01 | A001>A002>A003(重複NG) | A001>A002>A003 | | 2 | ファイルR02 | A001>A002>A003(重複NG) | A001>A002>A003 | ### 使用モジュール一覧 | NO | 機能 | プログラムID | 使用COPY名 | |----|------|-------------|-----------| | 1 | 入力件数表示/シーケンスチェック処理SUB | CHK01SRP | S01MSGAC | | 2 | 運用日取得SUB | DAT01S0 | D01010AC | | 3 | メッセージ編集出力処理SUB | MSG0SRP | MSG000AC | | 4 | ABEND処理SUB | END01TO | MSG000AC | --- ## 処理詳細 ``` 1.初期処理(1000ITTSOR) 1-1.開始メッセージ出力 【メッセージ編集】 メッセージ番号:1(開始メッセージ) 1-2.コンパイル日時出力 【メッセージ編集】 メッセージ番号:33(コンパイル日時) PARM1:コンパイル日時 PARM2:'COMPILED' 1-3.ワークエリアの初期化 1-4.運用日取得SUB(DAT01S0)により運用日を取得する。 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 【メッセージ編集】 メッセージ番号:5(サブエラー) PARM1:'DAT01SO' PARM2:復帰コード 【ABEND処理SUB】 ABENDコード:999 1-5.使用ファイルのオーブン 1-6.R01を読み込む。(1100R01INNSOR)(1回目) 1-7.R02を読み込む。(1200R02INNSOR)(1回目) 2.主処理(2000MAJSOR)(R01、R02を全て読み終えるまで下記を繰り返す) 2-1.マッチの場合 2-1-1.R01をW01にそのまま出力する。(2100W010UTSOR) *出力編集(W01)を参照 2-1-2.R01を読み込む。(1100R01INNSOR)(2件目以降) 2-1-3.R02を読み込む。(1200R02INNSOR)(2件目以降) 2-2.R01のみの場合 2-2-1.R01をW02にそのまま出力する。(2200W020UTSOR) *出力編集(W02)を参照 2-2-2.R01を読み込む。(1100R01INNSOR)(2件目以降) 2-3.R02のみの場合 2-3-1.R02をW03にそのまま出力する。(2300W030UTSOR) *出力編集(W03)を参照 2-3-2.R02を読み込む。(1200R02INNSOR)(2件目以降) 3.終了処理(3000STPSOR) 3-1.入出力ファイルのクローズ 3-2.入出力件数出力メッセージ出力 【入力メッセージ編集】 メッセージ番号:6(入力件数メッセージ) PARM1:当該入力ファイルのDD名 PARM2:当該入力ファイルの件数 【出力メッセージ編集】 メッセージ番号:7(出力件数メッセージ) PARM1:当該出力ファイルのDD名 PARM2:当該出力ファイルの件数 3-3.終了メッセージ出力 【メッセージ編集】 メッセージ番号:2(終了メッセージ) ``` --- ## 出力レコード定義 ### 出力ファイル1(W01) | No | 項目名 | 設定元 | 備考 | |----|--------|--------|------| | 1 | A001 | R01.同項目を設定 | | | 2 | A002 | R01.同項目を設定 | | | 3 | A003 | R01.同項目を設定 | | | 4 | … | | | | 5 | A020 | R01.同項目を設定 | | ### 出力ファイル2(W02) | No | 項目名 | 設定元 | 備考 | |----|--------|--------|------| | 1 | A001 | R01.同項目を設定 | | | 2 | A002 | R01.同項目を設定 | | | 3 | A003 | R01.同項目を設定 | | | 4 | … | | | | 5 | A020 | R01.同項目を設定 | | ### 出力ファイル3(W03) | No | 項目名 | 設定元 | 備考 | |----|--------|--------|------| | 1 | A001 | R02.同項目を設定 | | | 2 | A002 | R02.同項目を設定 | | | 3 | A003 | R02.同項目を設定 | | | 4 | … | | | | 5 | A020 | R02.同項目を設定 | |