詳細設計書
基本情報
| # |
項目 |
内容 |
| 1 |
システム名 |
勤怠休暇管理システム |
| 2 |
プログラムID |
KIN05MAT |
| 3 |
プログラム名 |
打刻休暇照合処理 |
| 4 |
PGMタイプ |
メイン |
| 5 |
PGMパターン |
マッチング(1:N) |
| 6 |
機能概要 |
EDITED-PUNCH(打刻側、R01)とLEAVE-DAILY(休暇側、R02)を社員番号+日付キーで照合し、KIN-LEAVE(160B)に出力する。R01側が主駆動で、1件の打刻に対してN件の休暇レコードが存在しうる(1:N)。 |
| 7 |
|
マッチング制御はEVALUATE TRUEで3分岐:R01key<R02key(打刻のみ)、R01key=R02key(マッチ)、R01key>R02key(休暇のみスキップ)。 |
| 8 |
|
マッチ時は休暇種別優先順位(01>02>03>04)で最適な1件を選定し、KIN-LEAVEに出力する。 |
前提条件
| NO |
対象ファイル |
条件 |
| 1 |
KIN04W01(R01) |
社員番号+日付で昇順ソート済み(JCL SORT KINJ022) |
| 2 |
KIN02W01(R02) |
社員番号+日付で昇順ソート済み(KIN03EXP出力保証) |
使用ファイル一覧
| NO |
使用ファイル/DB名 |
識別子 |
DD名 |
I/O |
COPY群 |
形式 |
ブロック |
レコード長 |
媒体 |
備考 |
| 1 |
EDITED-PUNCH |
R01 |
KIN04W01 |
I |
KIN04REC |
FB |
|
80 |
PS |
打刻側、主駆動 |
| 2 |
LEAVE-DAILY |
R02 |
KIN02W01 |
I |
KIN02REC |
FB |
|
80 |
PS |
休暇側、N件あり |
| 3 |
KIN-LEAVE |
W01 |
KIN05W01 |
O |
KIN03REC |
FB |
|
160 |
PS |
照合結果 |
ファイルステータス
| ファイル |
DD名 |
ファイルステータス項目 |
| EDITED-PUNCH(R01) |
KIN04W01 |
WS-R01-STATUS |
| LEAVE-DAILY(R02) |
KIN02W01 |
WS-R02-STATUS |
| KIN-LEAVE(W01) |
KIN05W01 |
WS-W01-STATUS |
キー項目一覧
| NO |
ファイル名 |
ソート条件(キー項目) |
キー条件(マッチング/キーブレイク) |
| 1 |
EDITED-PUNCH |
社員番号(1-8B)+日付(9-16B) |
主キー(R01) |
| 2 |
LEAVE-DAILY |
社員番号(1-8B)+日付(9-16B) |
従キー(R02)、N件あり |
使用モジュール一覧
| NO |
機能 |
プログラムID |
使用COPY名 |
| 1 |
メッセージ編集出力SUB |
SUB02MSG |
ZANMSGAC |
| 2 |
ABEND処理SUB |
SUB03END |
ZANENDAC |
処理詳細
出力レコード定義
出力ファイル(W01/KIN-LEAVE) KIN03REC 160B FB
| No |
項目名 |
設定元 |
備考 |
| 1 |
EMP-ID |
R01EMP-ID |
打刻情報(1-80BはEDITED-PUNCHと同一) |
| 2 |
WORK-DATE |
R01WORK-DATE |
|
| 3 |
STR-TIME |
R01STR-TIME |
|
| 4 |
END-TIME |
R01END-TIME |
|
| 5 |
DEPT-ID |
R01DEPT-ID |
|
| 6 |
TERMINAL |
R01TERMINAL |
|
| 7-13 |
休暇情報 |
マッチ結果 |
81-160B |
| 7 |
LEAVE-TYPE |
選定結果 |
'01'〜'04' or '99' |
| 8 |
LEAVE-STR-TIME |
選定したR02START-TIME |
|
| 9 |
LEAVE-END-TIME |
選定したR02END-TIME |
|
| 10 |
LEAVE-HOURS |
ZERO |
KIN07DAIで後に計算 |
| 11 |
APPLICATION-ID |
選定したR02APPL-ID |
該当なしはZERO |