From 164451dda5480ef1bdb889a5ec4dc246787a09aa Mon Sep 17 00:00:00 2001 From: qiuqiuqiu Date: Fri, 19 Jun 2026 12:39:49 +0800 Subject: [PATCH] Subsystem B cleanup: dead code removal, sort-key fix, ZAN04MAT/ZAN05CAL/ZAN06UPD updates, resource lists added --- README.md | 3 +- bin/ZAN02CHK.exe | Bin 154560 -> 154048 bytes bin/ZAN03CHK.exe | Bin 152223 -> 156654 bytes bin/ZAN04MAT.exe | Bin 152162 -> 157352 bytes bin/ZAN05CAL.exe | Bin 157424 -> 157424 bytes ...統計管理システム_設計書(サブシステムB).md | 11 +-- src/ZAN02CHK.cbl | 5 +- src/ZAN03CHK.cbl | 23 ++---- src/ZAN04MAT.cbl | 22 +++--- src/ZAN05CAL.cbl | 8 +- 使用資源一覧/ZAN01CHK_使用資源一覧.md | 48 ++++++++++++ 使用資源一覧/ZAN02CHK_使用資源一覧.md | 45 +++++++++++ 使用資源一覧/ZAN03CHK_使用資源一覧.md | 49 ++++++++++++ 使用資源一覧/ZAN04MAT_使用資源一覧.md | 48 ++++++++++++ 使用資源一覧/ZAN05CAL_使用資源一覧.md | 50 ++++++++++++ 使用資源一覧/ZAN06UPD_使用資源一覧.md | 72 ++++++++++++++++++ 詳細設計書/詳細設計書_ZAN03CHK.md | 8 +- 詳細設計書/詳細設計書_ZAN05CAL.md | 4 +- 詳細設計書/詳細設計書_ZAN06UPD.md | 24 +++--- 19 files changed, 353 insertions(+), 67 deletions(-) create mode 100644 使用資源一覧/ZAN01CHK_使用資源一覧.md create mode 100644 使用資源一覧/ZAN02CHK_使用資源一覧.md create mode 100644 使用資源一覧/ZAN03CHK_使用資源一覧.md create mode 100644 使用資源一覧/ZAN04MAT_使用資源一覧.md create mode 100644 使用資源一覧/ZAN05CAL_使用資源一覧.md create mode 100644 使用資源一覧/ZAN06UPD_使用資源一覧.md diff --git a/README.md b/README.md index 3627d6f..917c449 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@ production/ ├── cpy/ # COPY書式ファイル(レコード定義・連絡領域) ├── bin/ # 実行ファイル(.exe)+サブプログラムDLL(.dll) ├── design/ # サブシステム全体設計書 -└── 詳細設計書/ # 詳細設計ドキュメント +├── 詳細設計書/ # 詳細設計ドキュメント +└── 使用資源一覧/ # 使用資源一覧(COPY・CALL・I/Oファイル・DBテーブル) ``` ## サブシステム構成 diff --git a/bin/ZAN02CHK.exe b/bin/ZAN02CHK.exe index 9e37c47db913bc2703416ad0debd4815c78721df..e5a41807f2cd622622d7c416aae99043af907749 100644 GIT binary patch delta 14273 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 delta 14243 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

;hSoZ2rIhQ!t81ArYvEsffrS7L_T1a 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 XXl2X8Mf45QQc^t{?b diff --git a/bin/ZAN04MAT.exe b/bin/ZAN04MAT.exe index a1da98d950b4ee535d5ddc9cb393973f8d8aef96..4d12394ced44a8e4baf1bb1417e1bb725fe6982c 100644 GIT binary patch delta 34743 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 IXX%6g4+ZSD?f?J) delta 30511 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

*7j~i%Cad=;N~auy?+d=o7(<|e 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 diff --git a/design/02_残業統計管理システム_設計書(サブシステムB).md b/design/02_残業統計管理システム_設計書(サブシステムB).md index caf332e..299846c 100644 --- a/design/02_残業統計管理システム_設計書(サブシステムB).md +++ b/design/02_残業統計管理システム_設計書(サブシステムB).md @@ -427,7 +427,7 @@ OVT-VSORT は既に社員番号+日付+開始時刻でソート済。順次READ | **入力ファイル** | OVT-NODUP(80B)/ PUNCH-SORTED(80B) | | **出力ファイル** | OVT-CHECKED(80B)/ ERROR-LOG(VB) | | **件数変化** | K件 → 通過P件 + エラー(K-P)件 | -| **使用共通関数** | SUB02MSG(メッセージ), SUB03END(ABEND) | +| **使用共通関数** | SUB02MSG(メッセージ) | **機能:** @@ -449,12 +449,7 @@ Aサブシステムと同一の休日定義に従う(HOLIDAY-FILEファイル ##### 休日ファイル初期化手順 -初期処理(1000ITTSOR相当)で以下の手順によりHOLIDAY-TABLEを構築する。 - -1. FUNCTION CURRENT-DATE で処理日を取得 -2. 処理日の年月から該当月の初日〜末日を算出 -3. 各日について曜日判定(土日またはHOLIDAY-FILE該当)を行い、 - 休日=該当月内の全祝日レコードをWORKING-STORAGEのHOLIDAY-TABLEに格納 +初期処理(1000ITTSOR)でHOLIDAY-FILEを全件READし、WORKING-STORAGEのHOLIDAY-TABLEに格納する。 ``` * 休日データ取得(ファイル読込み) @@ -492,7 +487,7 @@ END-SEARCH - HOLIDAY-FILE該当 → OVT-TYPE='H' - 該当なし → OVT-TYPE='W' -**MOVE** で OVT-TYPE を設定。**FUNCTION CURRENT-DATE** で処理日を取得し、曜日計算の補助に使用。 +**MOVE** で OVT-TYPE を設定。 全通過レコードは OVT-TYPE を付加して OVT-CHECKED に書出し。 diff --git a/src/ZAN02CHK.cbl b/src/ZAN02CHK.cbl index 6487d11..ac853aa 100644 --- a/src/ZAN02CHK.cbl +++ b/src/ZAN02CHK.cbl @@ -106,8 +106,6 @@ 05 WRK-PREV-STATUS PIC X(001). 05 WRK-PREV-OVT-TYPE PIC X(001). 05 WRK-PREV-FILLER PIC X(046). - *** 初回読込フラグ - 03 WRK-FIRST-FLG PIC X(001). * ***************************************************************** * サブプログラム連絡領域 * @@ -160,7 +158,6 @@ * *** ワークエリア初期化 INITIALIZE WRKARA. - MOVE '1' TO WRK-FIRST-FLG. * *** 運用日付取得 INITIALIZE D01UBSPAR. @@ -360,4 +357,4 @@ CALL 'SUB03END' USING E01ABDPAR. * 9999ABDSOR-EXT. - EXIT. + EXIT. \ No newline at end of file diff --git a/src/ZAN03CHK.cbl b/src/ZAN03CHK.cbl index 0982e1d..ed61835 100644 --- a/src/ZAN03CHK.cbl +++ b/src/ZAN03CHK.cbl @@ -99,12 +99,12 @@ 03 CNS-PRGIDX PIC X(008) VALUE 'ZAN03CHK'. 03 CNS-MSGSTR PIC 9(003) VALUE 001. 03 CNS-MSGFIN PIC 9(003) VALUE 002. - 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. 03 CNS-KN0002 PIC 9(001) VALUE 2. - 03 CNS-ABD999 PIC 9(003) VALUE 999. + 03 CNS-ERR-CAT03 PIC 9(002) VALUE 03. 03 CNS-OVT-W PIC X(001) VALUE 'W'. 03 CNS-OVT-H PIC X(001) VALUE 'H'. @@ -158,8 +158,7 @@ ***************************************************************** *** メッセージ編集出力SR用 COPY ZANMSGAC. - *** ABEND処理SR用 - COPY ZANENDAC. + * PROCEDURE DIVISION. ***************************************************************** @@ -203,8 +202,7 @@ *** ワークエリア初期化 INITIALIZE WRKARA. * - *** 現在日付取得(FUNCTION CURRENT-DATE) - MOVE FUNCTION CURRENT-DATE TO WRK-HOLIDAY-CNT. + * *** 入出力ファイルOPEN OPEN INPUT R01INNFIL @@ -465,15 +463,4 @@ * 4000MSGOUTSOR-EXT. EXIT. - ***************************************************************** - * サブモジュールNO:(9.9) * - * サブモジュール名: 異常終了処理 * - * 処理概要 : ABEND処理 * - ***************************************************************** - 9999ABDSOR SECTION. - * - MOVE CNS-ABD999 TO E01ABDCOD. - CALL 'SUB03END' USING E01ABDPAR. - * - 9999ABDSOR-EXT. - EXIT. + diff --git a/src/ZAN04MAT.cbl b/src/ZAN04MAT.cbl index 3914358..836b10f 100644 --- a/src/ZAN04MAT.cbl +++ b/src/ZAN04MAT.cbl @@ -119,9 +119,7 @@ ***************************************************************** * 作業領域 * ***************************************************************** - 01 WRKARA. - *** 運用日付 - 03 WRK-U06 PIC 9(008). + 01 WRKARA. *** マッチングキー 03 WRK-R01KEY PIC X(008). 03 WRK-R02KEY PIC X(008). @@ -182,16 +180,14 @@ *** 運用日付取得 INITIALIZE D01UBSPAR. CALL 'SUB01DAT' USING D01UBSPAR. - IF D01FKICOD = ZERO - MOVE D01UBSUDATE TO WRK-U06 - ELSE - INITIALIZE M00MHOPAR - MOVE CNS-MSGSUBEEK TO M00MSGCOD - MOVE 'SUB01DAT' TO M00UMKDATS22-01 - MOVE D01FKICOD TO M00UMKDATS22-02 - PERFORM 4000MSGOUTSOR - PERFORM 9999ABDSOR - END-IF. + IF D01FKICOD NOT = ZERO + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. * *** 入出力ファイルOPEN OPEN INPUT R01INNFIL diff --git a/src/ZAN05CAL.cbl b/src/ZAN05CAL.cbl index 5d4aa1a..94d3038 100644 --- a/src/ZAN05CAL.cbl +++ b/src/ZAN05CAL.cbl @@ -82,8 +82,6 @@ 01 WRKARA. *** 処理日付(ACCEPT FROM DATE用) 03 WRK-DATE-8 PIC 9(008). - *** 運用日付 - 03 WRK-U06 PIC 9(008). *** キーブレイク制御 03 WRK-R01KEY PIC X(008). 03 WRK-PREV-APPL-ID PIC X(008). @@ -181,9 +179,7 @@ *** 運用日付取得 INITIALIZE D01UBSPAR. CALL 'SUB01DAT' USING D01UBSPAR. - IF D01FKICOD = ZERO - MOVE D01UBSUDATE TO WRK-U06 - ELSE + IF D01FKICOD NOT = ZERO INITIALIZE M00MHOPAR MOVE CNS-MSGSUBEEK TO M00MSGCOD MOVE 'SUB01DAT' TO M00UMKDATS22-01 @@ -397,4 +393,4 @@ CALL 'SUB03END' USING E01ABDPAR. * 9999ABDSOR-EXT. - EXIT. \ No newline at end of file + EXIT. diff --git a/使用資源一覧/ZAN01CHK_使用資源一覧.md b/使用資源一覧/ZAN01CHK_使用資源一覧.md new file mode 100644 index 0000000..c7f5e45 --- /dev/null +++ b/使用資源一覧/ZAN01CHK_使用資源一覧.md @@ -0,0 +1,48 @@ +# ZAN01CHK 使用資源一覧 + +## プログラム概要 +- **プログラムID**: ZAN01CHK +- **プログラム名**: 残業申請振分処理 +- **処理概要**: CSV形式の残業申請ファイルを読み込み、ステータスによって適切に振り分ける。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| ZAN01R01 | 入力CSV | 順編成 | F (固定長) | 80B | なし(自前定義) | +| ZAN01W01 | OVT-APPLY | 順編成 | F (固定長) | 80B | ZAN01REC | +| ZAN01W02 | OVT-CANCEL | 順編成 | F (固定長) | 80B | ZAN01REC | +| ZAN01W03 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| ZAN01REC | レコード定義(W01/W02出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W03出力ファイル) | FILE SECTION | +| ZANDATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | +| ZANCHKAC | 項目チェックサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | +| SUB04CHK | 日付妥当性チェック | 2020VALIDATESOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→運用日付取得→OPEN→初回読込) +2. CSV分解(UNSTRING) +3. ステータス判定 + - ステータス'0'/'1'(有効)→ 項目チェック(SUB04CHK)→ W01出力 + - ステータス'9'(取消)→ W02出力 + - その他(エラー)→ W03出力 +4. 終了処理(CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/ZAN02CHK_使用資源一覧.md b/使用資源一覧/ZAN02CHK_使用資源一覧.md new file mode 100644 index 0000000..0cd1b7f --- /dev/null +++ b/使用資源一覧/ZAN02CHK_使用資源一覧.md @@ -0,0 +1,45 @@ +# ZAN02CHK 使用資源一覧 + +## プログラム概要 +- **プログラムID**: ZAN02CHK +- **プログラム名**: 時間帯重複チェック処理 +- **処理概要**: OVT-APPLYファイルの同一社員・同一日付内の開始時刻と終了時刻の重複をチェックする。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| ZAN02R01 | OVT-APPLY | 順編成 | F (固定長) | 80B | ZAN01REC | +| ZAN02W01 | OVT-NODUP | 順編成 | F (固定長) | 80B | ZAN01REC | +| ZAN02W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| ZAN01REC | レコード定義(R01入力/W01出力) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W02出力) | FILE SECTION | +| ZANDATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→運用日付取得→OPEN→初回読込) +2. 1件目をそのままW01出力+前レコード保持 +3. メイン処理:キー比較 + - 同一社員+同一日付 かつ 前終了時刻>現開始時刻 → 重複エラー(W02出力) + - 同一社員+同一日付 かつ 重複なし → W01出力+前レコード更新 + - キーブレイク → 前レコード更新+W01出力 +4. 終了処理(CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/ZAN03CHK_使用資源一覧.md b/使用資源一覧/ZAN03CHK_使用資源一覧.md new file mode 100644 index 0000000..d4b6461 --- /dev/null +++ b/使用資源一覧/ZAN03CHK_使用資源一覧.md @@ -0,0 +1,49 @@ +# ZAN03CHK 使用資源一覧 + +## プログラム概要 +- **プログラムID**: ZAN03CHK +- **プログラム名**: 打刻時間照合処理 +- **処理概要**: OVT-NODUPとPUNCH-SORTEDを突合し申請時間帯の照合を行う。申請時間帯が出勤〜退勤の範囲内かを確認する。申請日が休日かを判定しOVT-TYPEを付加する。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| ZAN03R01 | OVT-NODUP | 順編成 | F (固定長) | 80B | ZAN01REC | +| ZAN03R02 | PUNCH-SORTED | 順編成 | F (固定長) | 80B | なし(自前定義:20B+56B) | +| ZAN03R03 | HOLIDAY | 順編成 | F (固定長) | 80B | なし(自前定義:9B+71B) | +| ZAN03W01 | OVT-CHECKED | 順編成 | F (固定長) | 80B | ZAN01REC | +| ZAN03W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| ZAN01REC | レコード定義(R01入力/W01出力) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W02出力) | FILE SECTION | +| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→OPEN) +2. 休日ファイル(R03)全件読込→HOLIDAY-TABLE設定(OCCURS 1~366) +3. メイン処理:R01とR02のキー比較(社員番号+日付) + - R01 < R02 → 打刻データなしエラー(W02出力) + - R01 = R02 → 時間範囲チェック + - 申請時間帯が出勤〜退勤の範囲内 → OVT-TYPE設定(SEARCH ALL休日判定)→ W01出力 + - 範囲外 → エラー(W02出力) + - R01 > R02 → R02読み飛ばし +4. 終了処理(CLOSE→件数出力→終了メッセージ) + +## 備考 +- SUB01DAT不使用:日付取得不要のためFUNCTION CURRENT-DATEも使用しない +- R02FILLER = 56B(PUNCH-SORTEDのフォーマット:社員番号8B+日付8B+出勤4B+退勤4B+予備56B) \ No newline at end of file diff --git a/使用資源一覧/ZAN04MAT_使用資源一覧.md b/使用資源一覧/ZAN04MAT_使用資源一覧.md new file mode 100644 index 0000000..93c8f6d --- /dev/null +++ b/使用資源一覧/ZAN04MAT_使用資源一覧.md @@ -0,0 +1,48 @@ +# ZAN04MAT 使用資源一覧 + +## プログラム概要 +- **プログラムID**: ZAN04MAT +- **プログラム名**: 取消マッチング処理 +- **処理概要**: OVT-SORTED(有効申請)とOVT-CSORT(取消申請)を申請番号で1:1マッチングし、結果を振り分ける。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| ZAN04R01 | OVT-SORTED | 順編成 | F (固定長) | 80B | ZAN01REC | +| ZAN04R02 | OVT-CSORT | 順編成 | F (固定長) | 80B | ZAN01REC | +| ZAN04W01 | OVT-MATCHED | 順編成 | F (固定長) | 80B | ZAN02REC | +| ZAN04W02 | OVT-DBCLEAN | 順編成 | F (固定長) | 80B | ZAN04REC | +| ZAN04W03 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| ZAN01REC | レコード定義(R01/R02入力ファイル) | FILE SECTION | +| ZAN02REC | OVT-MATCHEDレコード定義(W01出力) | FILE SECTION | +| ZAN04REC | OVT-DBCLEANレコード定義(W02出力) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W03出力) | FILE SECTION | +| ZANDATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→運用日付取得→OPEN→R01/R02初回読込) +2. メイン処理:マッチング(申請番号APPL-IDで1:1突合) + - R01キー = R02キー(マッチ) → 取消済み申請をERROR-LOG(W03)に出力 + - R01キー < R02キー(R01のみ) → 有効申請をOVT-MATCHED(W01)に出力(STRING編集でPROC-SEQ=01付加) + - R01キー > R02キー(R02のみ) → 取消申請をOVT-DBCLEAN(W02)に出力 +3. 終了処理(CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/ZAN05CAL_使用資源一覧.md b/使用資源一覧/ZAN05CAL_使用資源一覧.md new file mode 100644 index 0000000..1f00509 --- /dev/null +++ b/使用資源一覧/ZAN05CAL_使用資源一覧.md @@ -0,0 +1,50 @@ +# ZAN05CAL 使用資源一覧 + +## プログラム概要 +- **プログラムID**: ZAN05CAL +- **プログラム名**: 残業時間集計処理 +- **処理概要**: OVT-SORTED2(申請番号+処理番号昇順)をキーブレイク集計し、同一APPL-ID内の全明細の加班時間を積算してOVT-SUMMARYに1レコード出力。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| ZAN05R01 | OVT-SORTED2 | 順編成 | F (固定長) | 80B | ZAN02REC | +| ZAN05W01 | OVT-SUMMARY | 順編成 | F (固定長) | 80B | ZAN03REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| ZAN02REC | OVT-MATCHEDレコード定義(R01入力) | FILE SECTION | +| ZAN03REC | OVT-SUMMARYレコード定義(W01出力) | FILE SECTION | +| ZANDATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | +| ZANTIMAC | 時刻丸めサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | +| SUB05TIM | 時刻丸め(0.1h単位切捨) | 2100OUTSOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→ACCEPT FROM DATE→運用日付取得→OPEN→初回読込) +2. キーブレイク集計ループ + - キー変わり(APPL-ID) → 前グループ集計出力+累積リセット+新グループ開始 + - 同一グループ → 現レコード時間差分をWRK-ACCUM-MINに積算+最新レコード上書き保持 + - EOF → 最終グループを出力 +3. 集計出力処理(2100OUTSOR) + - DIVIDE REMAINDERで時→分変換 + - COMPUTE ROUNDED ON SIZE ERROR + - SUB05TIM呼出(0.1h単位切捨て丸め) + - OVT-SUMMARY出力(グループ先頭START・最新END・積算OVT-HOURS) +4. 終了処理(CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/ZAN06UPD_使用資源一覧.md b/使用資源一覧/ZAN06UPD_使用資源一覧.md new file mode 100644 index 0000000..00fe3c5 --- /dev/null +++ b/使用資源一覧/ZAN06UPD_使用資源一覧.md @@ -0,0 +1,72 @@ +# ZAN06UPD 使用資源一覧 + +## プログラム概要 +- **プログラムID**: ZAN06UPD +- **プログラム名**: 残業統計DB更新処理 +- **処理概要**: OVT-SUMMARYの各レコードをDBにINSERT/UPSERTし、OVT-DBCLEANの各レコードについて該当申請を取消状態に更新する。DB2テーブル操作を含む全サブシステムB唯一のDB更新プログラム。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| ZAN06R01 | OVT-SUMMARY | 順編成 | F (固定長) | 80B | ZAN03REC | +| ZAN06R02 | OVT-DBCLEAN | 順編成 | F (固定長) | 80B | ZAN04REC | +| ZAN06W01 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| ZAN03REC | OVT-SUMMARYレコード定義(R01入力) | FILE SECTION | +| ZAN04REC | OVT-DBCLEANレコード定義(R02入力) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W01出力) | FILE SECTION | +| ZANDATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +| テーブル名 | 操作種別 | 説明 | +|------------|---------|------| +| OVT_APPLICATIONS | INSERT / UPDATE | 申請データ登録・更新(取消) | +| OVT_MONTHLY | SELECT / INSERT / UPDATE | 月次集計テーブル(加算・減算) | + +## 実行SQL一覧 + +| SQL種別 | 内容 | 該当箇所 | +|---------|------|---------| +| CONNECT TO | DB接続(data\OVERTIME.DB) | 1000ITTSOR | +| INSERT INTO ... OVT_APPLICATIONS | 申請データ新規登録 | 2100SUMMARYSOR | +| UPDATE ... OVT_APPLICATIONS | 重複時更新(STATUS) | 2100SUMMARYSOR | +| SELECT ... OVT_MONTHLY | 月次集計存在確認 | 2110MONTHLYUPSOR | +| UPDATE ... OVT_MONTHLY (+加算) | 月次集計加算 | 2110MONTHLYUPSOR | +| INSERT INTO ... OVT_MONTHLY | 月次集計新規作成 | 2110MONTHLYUPSOR | +| SELECT ... OVT_APPLICATIONS | 取消データ取得 | 2200DBCLEANSOR | +| UPDATE ... OVT_APPLICATIONS (取消) | 申請ステータス取消 | 2200DBCLEANSOR | +| UPDATE ... OVT_MONTHLY (-減算) | 月次集計減算(リトライ3回) | 2210MONTHLYSUBSOR | +| COMMIT WORK | 50件毎/最終コミット | 2300COMMITDBX | +| ROLLBACK WORK | DBエラー時ロールバック | 9100DBERRSOR | + +## 処理フロー +1. 初期処理(開始メッセージ→運用日付取得→OPEN→DB CONNECT→R01/R02初回読込) +2. フェーズ1(OVT-SUMMARY処理): + - SQLホスト変数設定(年月抽出・時刻変換・時間→分変換) + - OVT_APPLICATIONSにINSERT + - 成功 → INSERTカウンタ+1 + - 重複エラー(SQLCODE≠0) → UPDATE(STATUS更新) + - OVT_MONTHLY UPSERT(存在確認SELECT→UPDATE/INSERT) + - 50件毎にCOMMIT +3. フェーズ2(OVT-DBCLEAN処理): + - OVT_APPLICATIONSから既存データSELECT + - 該当なし(孤立取消) → ERROR-LOG出力+ABEND(999) + - OVT_APPLICATIONSステータス更新('9'=取消) + - OVT_MONTHLY減算(3回リトライ付きUPDATE) +4. 終了処理(最終COMMIT→CLOSE→件数出力→終了メッセージ) diff --git a/詳細設計書/詳細設計書_ZAN03CHK.md b/詳細設計書/詳細設計書_ZAN03CHK.md index a86d1a2..5394433 100644 --- a/詳細設計書/詳細設計書_ZAN03CHK.md +++ b/詳細設計書/詳細設計書_ZAN03CHK.md @@ -45,9 +45,9 @@ | NO | 機能 | プログラムID | 使用COPY名 | |----|------|-------------|-----------| | 1 | メッセージ編集出力SUB | SUB02MSG | ZANMSGAC | -| 2 | ABEND処理SUB | SUB03END | ZANENDAC | +| 2 | ABEND処理SUB | SUB03END | ZANENDAC |※ コード上では未使用(PERFORM元なし)| -※ ZAN03CHKはFUNCTION CURRENT-DATEを使用し、SUB01DATは使用しない。 +※ ZAN03CHKはSUB01DATを使用しない。日付取得は不要のためFUNCTION CURRENT-DATEも使用しない。 --- @@ -64,9 +64,7 @@ PARM1:コンパイル日時 PARM2:'COMPILED' 1-3.ワークエリアの初期化 - 1-4.日付取得(FUNCTION CURRENT-DATE) - FUNCTION CURRENT-DATEにより現在日付を取得する。 - 1-5.使用ファイルのオープン + 1-4.使用ファイルのオープン 1-6.HOLIDAY-FILEを全件読込しHOLIDAY-TABLEに設定する。(1300HOLIDAYSOR) 1-7.R01を読み込む。(1100R01INNSOR)(1回目) 1-8.R02を読み込む。(1200R02INNSOR)(1回目) diff --git a/詳細設計書/詳細設計書_ZAN05CAL.md b/詳細設計書/詳細設計書_ZAN05CAL.md index 20b7efe..a604f9c 100644 --- a/詳細設計書/詳細設計書_ZAN05CAL.md +++ b/詳細設計書/詳細設計書_ZAN05CAL.md @@ -101,8 +101,8 @@ 3.積算処理(2200ACCUMSOR) 3-1.現レコードの時刻→分変換 - DIVIDE WRK-KEY-START BY 100 GIVING WRK-START-HOUR REMAINDER WRK-START-MIN - DIVIDE WRK-KEY-END BY 100 GIVING WRK-END-HOUR REMAINDER WRK-END-MIN + DIVIDE R01START-TIME BY 100 GIVING WRK-START-HOUR REMAINDER WRK-START-MIN + DIVIDE R01END-TIME BY 100 GIVING WRK-END-HOUR REMAINDER WRK-END-MIN COMPUTE WRK-START-TOTAL = WRK-START-HOUR * 60 + WRK-START-MIN COMPUTE WRK-END-TOTAL = WRK-END-HOUR * 60 + WRK-END-MIN 3-2.差分計算 diff --git a/詳細設計書/詳細設計書_ZAN06UPD.md b/詳細設計書/詳細設計書_ZAN06UPD.md index 133755f..21f98e5 100644 --- a/詳細設計書/詳細設計書_ZAN06UPD.md +++ b/詳細設計書/詳細設計書_ZAN06UPD.md @@ -141,16 +141,20 @@ UPDATED-AT = CURRENT TIMESTAMP WHERE APPL-ID = :WRK-SQL-APPL-ID 2-2-4.YEAR-MONTH抽出:APPL-DATE(1:6) - 2-2-5.OVT-MONTHLYから減算(2210MONTHLYSUBSOR) - 【EXEC SQL UPDATE(減算)+COBOL SUBTRACT検証】 - UPDATE OVT-MONTHLY SET - OVT-HOURS = OVT-HOURS - :WRK-SQL-OVT-HOURS, - OVT-COUNT = OVT-COUNT - 1, - UPDATED-AT = CURRENT TIMESTAMP - WHERE EMP-ID = :WRK-SQL-EMP-ID - AND YEAR-MONTH = :WRK-SQL-YEAR-MONTH - AND OVT-TYPE = :WRK-SQL-OVT-TYPE - SQLCODE異常時は9100DBERRSORへ + 2-2-5.OVT-MONTHLYから減算(2210MONTHLYSUBSOR) + 【EXEC SQL UPDATE(減算)+COBOL SUBTRACT検証】 + UPDATE OVT-MONTHLY SET + OVT-HOURS = OVT-HOURS - :WRK-SQL-OVT-HOURS, + OVT-COUNT = OVT-COUNT - 1, + UPDATED-AT = CURRENT TIMESTAMP + WHERE EMP-ID = :WRK-SQL-EMP-ID + AND YEAR-MONTH = :WRK-SQL-YEAR-MONTH + AND OVT-TYPE = :WRK-SQL-OVT-TYPE + リトライ制御:PERFORM TEST AFTER VARYING(最大3回) + SQLCODE≠0時はROLLBACKしてリトライ + 全リトライ消費後もSQLCODE≠0の場合、 + ERROR-LOG(カテゴリ=21)に出力し9999ABDSORで異常終了する + (9100DBERRSORは通らない) 2-2-6.CUN-COMMITが閾値以上の場合、COMMIT実行(2300COMMITDBX) 3.OVT-MONTHLY UPSERT処理(2110MONTHLYUPSOR)