Files
cobol-tna-system/使用資源一覧/ZAN06UPD_使用資源一覧.md

3.5 KiB
Raw Permalink Blame History

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. フェーズ1OVT-SUMMARY処理):
    • SQLホスト変数設定(年月抽出・時刻変換・時間→分変換)
    • OVT_APPLICATIONSにINSERT
      • 成功 → INSERTカウンタ+1
      • 重複エラー(SQLCODE≠0) → UPDATESTATUS更新)
    • OVT_MONTHLY UPSERT(存在確認SELECT→UPDATE/INSERT
    • 50件毎にCOMMIT
  3. フェーズ2OVT-DBCLEAN処理):
    • OVT_APPLICATIONSから既存データSELECT
    • 該当なし(孤立取消) → ERROR-LOG出力+ABEND(999)
    • OVT_APPLICATIONSステータス更新('9'=取消)
    • OVT_MONTHLY減算(3回リトライ付きUPDATE)
  4. 終了処理(最終COMMIT→CLOSE→件数出力→終了メッセージ)