Subsystem B cleanup: dead code removal, sort-key fix, ZAN04MAT/ZAN05CAL/ZAN06UPD updates, resource lists added

This commit is contained in:
qiuqiuqiu
2026-06-19 12:39:49 +08:00
parent a74a5aaa04
commit 164451dda5
19 changed files with 353 additions and 67 deletions
+3 -5
View File
@@ -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回目)
+2 -2
View File
@@ -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.差分計算
+14 -10
View File
@@ -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