# KIN07DAI 使用資源一覧 ## プログラム概要 - **プログラムID**: KIN07DAI - **プログラム名**: 日別勤怠計算処理 - **処理概要**: WORK-DAY-FILE(出勤日カレンダー)を主駆動とし、社員番号+日付キーでKIN-LEAVE(打刻+休暇)と照合。4パターン(A/B/C/D)のEVALUATE分岐で休暇時間計算を実行し、DAILY-RECORD(200B)に出力する。 ## 使用ファイル | DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | 定義参照先 | |------|---------------|------|-------------|-----------|--------|-----------| | KIN07R01 | WORK-DAY-FILE | 順編成 | F (固定長) | 80B | KIN06REC | COPY句定義書.md | | KIN07R02 | KIN-LEAVE | 順編成 | F (固定長) | 160B | KIN03REC | COPY句定義書.md | | KIN07R03 | LEAVE-DAILY | 順編成 | F (固定長) | 80B | KIN02REC | COPY句定義書.md | | KIN07W01 | DAILY-RECORD | 順編成 | F (固定長) | 200B | KIN07REC | COPY句定義書.md | ## 使用COPY句 | COPY句 | 用途 | 使用箇所 | |--------|------|---------| | KIN06REC | R01入力レコード定義(WORK-DAY-REC) | FILE SECTION | | KIN03REC | R02入力レコード定義(KIN-LEAVE-REC) | FILE SECTION | | KIN02REC | R03入力レコード定義(LEAVE-DAILY-REC) | FILE SECTION | | KIN07REC | W01出力レコード定義(DAILY-REC) | FILE SECTION | | ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | | ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | | ZANTIMAC | 丸めサブPGM連絡領域 | WORKING-STORAGE | ## 使用サブプログラム | サブPGM | 役割 | CALL箇所 | |---------|------|---------| | SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | | SUB03END | ABEND処理 | 9999ABDSOR | | SUB05TIM | 休暇時間丸め(0.1h切上) | 6100PATTERNASOR / 6300PATTERNSOR | ## 使用DB2テーブル なし(ファイル処理のみ) ## 処理フロー 1. 初期処理(開始メッセージ→OPEN→R01/R02/R03初回読込) 2. メインループ:R01(主駆動)を基準にEVALUATEで4パターン分岐 - PATTERN-A (1): R01+R02+R03全てあり → 打刻+休暇時間計算 - PATTERN-B (2): R01+R02あり、R03なし → 打刻のみ(休暇=0) - PATTERN-C (3): R01+R03あり、R02なし → 休暇時間計算(打刻=0000) - PATTERN-D (4): R01のみ → 未申請欠勤=8.0h 3. 各パターン内でMULTIPLY/SUBTRACT/COMPUTE併用による時間計算、CALL SUB05TIM丸め 4. 終了処理(CLOSE→件数出力→終了メッセージ) ## 使用構文(特記事項) | 構文 | 使用箇所 | 備考 | |------|---------|------| | EVALUATE | 5000PROCESS | 4パターン分岐(GO TO DEPENDING ONから変更) | | MULTIPLY | 6100PATTERNASOR/6300PATTERNSOR | 時間→分変換 | | SUBTRACT | 6100PATTERNASOR/6300PATTERNSOR | ランチ時間除外 | | DIVIDE | 6100PATTERNASOR/6300PATTERNSOR | 分→時間変換 | | COMPUTE | 6100PATTERNASOR/6300PATTERNSOR | 休暇時間端数処理 | | CALL SUB05TIM | 6100PATTERNASOR/6300PATTERNSOR | 0.1h単位切上丸め |