KYU programs for payroll calculation: KYU01CVT - CSV conversion KYU02REG - attendance registration KYU03AGG - aggregation KYU04CAL - salary calculation KYU05DED - deduction calculation KYU06UPD - DB update KYU07DIV - division/pay-slip KYU08PRI - print output KYU09MRG - merge output Includes: - Source programs (9 .cbl) - Compiled executables (9 .exe) - Detailed design docs (9 + sign-off) - Basic design doc (subsystem C overview) - Resource lists (9) - DDL schema (schema_kyu.sql) - COPY book (KYU99REC.cpy) - Coverage statistics update - DB definition update (STATUS values) - Overall system design document
14 KiB
14 KiB
DB定義書
変更履歴
| No | 変更内容 | 担当者 | 変更日 | 承認者 | 備考 |
|---|---|---|---|---|---|
| 1 | 新規作成(全8テーブル) | AI | 2026/06/23 | サブシステムA(6) + B(2) | |
| 2 | SALARYDB 4テーブル追加 | AI | 2026/07/08 | サブシステムC(給与計算) |
EMP_MASTER — 社員マスタ
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 勤怠休暇管理DB | EMP_MASTER | — | PK: EMP_ID |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 社員番号 | EMP_ID | CHAR | 8 | 8 | NOT NULL | ✓ | ||||||
| 2 | 部署ID | DEPT_ID | CHAR | 4 | 4 | NOT NULL | |||||||
| 3 | 氏名 | EMP_NAME | VARCHAR | 50 | 50 | NOT NULL | |||||||
| 4 | ステータス | STATUS | CHAR | 1 | 1 | NOT NULL | '1'=在籍, '9'=退職 |
備考
- サブシステムA: 参照のみ(SELECT)
- サブシステムB: 使用しない
LEAVE_RECORDS — 休暇申請記録
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 勤怠休暇管理DB | LEAVE_RECORDS | — | PK: APPLICATION_ID |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 申請番号 | APPLICATION_ID | INTEGER | 10 | 4 | NOT NULL | ✓ | 自動採番 | |||||
| 2 | 社員番号 | EMP_ID | CHAR | 8 | 8 | NOT NULL | |||||||
| 3 | 休暇種別 | LEAVE_TYPE | CHAR | 2 | 2 | NOT NULL | 01/02/03/04 | ||||||
| 4 | 開始日 | START_DATE | CHAR | 8 | 8 | NOT NULL | YYYYMMDD | ||||||
| 5 | 開始時刻 | START_TIME | CHAR | 4 | 4 | NOT NULL | HHMM | ||||||
| 6 | 終了日 | END_DATE | CHAR | 8 | 8 | NOT NULL | YYYYMMDD | ||||||
| 7 | 終了時刻 | END_TIME | CHAR | 4 | 4 | NOT NULL | HHMM | ||||||
| 8 | ステータス | STATUS | CHAR | 1 | 1 | NOT NULL | '1'=有効, '9'=取消 |
備考
- KIN02UPDがINSERT/DELETEを実行
- KIN03EXPがSELECT(日付展開用)
- 取消はDELETE FROM で物理削除
HOLIDAY_CALENDAR — 休日カレンダー
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 勤怠休暇管理DB | HOLIDAY_CALENDAR | — | PK: HOLIDAY_DATE |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 休日日付 | HOLIDAY_DATE | CHAR | 8 | 8 | NOT NULL | ✓ | YYYYMMDD | |||||
| 2 | 説明 | DESCRIPTION | VARCHAR | 50 | 50 | NULL許可 | NULL | 例:「建国記念の日」 |
備考
- 土日は曜日判定で処理するため、このテーブルには祝日のみ格納
- KIN03EXP, KIN06CLDがSELECTで参照
SICK_LEAVE_RATE — 病欠控除率
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 勤怠休暇管理DB | SICK_LEAVE_RATE | — | PK: LEAVE_TYPE |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 休暇種別 | LEAVE_TYPE | CHAR | 2 | 2 | NOT NULL | ✓ | '04'固定 | |||||
| 2 | 控除率 | DEDUCTION_RATE | DECIMAL | 3 | 2 | 3 | NOT NULL | 例:0.50(50%控除) |
備考
- 全社員共通の設定値
- 現時点では参照プログラム未実装(設計上定義)
DAILY_RECORDS — 日別勤怠記録
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 勤怠休暇管理DB | DAILY_RECORDS | — | PK: (EMP_ID, TARGET_DATE) |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 社員番号 | EMP_ID | CHAR | 8 | 8 | NOT NULL | ✓ | ||||||
| 2 | 対象日 | TARGET_DATE | CHAR | 8 | 8 | NOT NULL | ✓ | YYYYMMDD | |||||
| 3 | 出勤時刻 | TIME_IN | CHAR | 4 | 4 | NOT NULL | HHMM, '0000'=打刻なし | ||||||
| 4 | 退勤時刻 | TIME_OUT | CHAR | 4 | 4 | NOT NULL | HHMM, '0000'=打刻なし | ||||||
| 5 | 年休時間 | ANNUAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | 0.1h単位 | |||||
| 6 | 事假時間 | PERSONAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | 0.1h単位 | |||||
| 7 | 因公特批假時間 | OFFICIAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | 0.1h単位 | |||||
| 8 | 病欠時間 | SICK_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | 0.1h単位 | |||||
| 9 | 未申請欠勤時間 | UNAPPROVED_ABSENT_H | DECIMAL | 6 | 1 | 5 | NOT NULL | 0.1h単位 | |||||
| 10 | 更新日時 | UPDATED_AT | TIMESTAMP | — | 10 | NOT NULL | DEFAULT CURRENT_TIMESTAMP |
備考
- KIN08DBUがKIN07DAIの出力ファイルからINSERT
- 1社員1日=1レコード。出勤日のみ存在。
MONTHLY_ABSENCE — 月次統計
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 勤怠休暇管理DB | MONTHLY_ABSENCE | — | PK: (EMP_ID, YEAR_MONTH) |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 社員番号 | EMP_ID | CHAR | 8 | 8 | NOT NULL | ✓ | ||||||
| 2 | 対象年月 | YEAR_MONTH | CHAR | 6 | 6 | NOT NULL | ✓ | YYYYMM | |||||
| 3 | 年休合計 | ANNUAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | ||||||
| 4 | 事假合計 | PERSONAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | ||||||
| 5 | 因公特批假合計 | OFFICIAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | ||||||
| 6 | 病欠合計 | SICK_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | ||||||
| 7 | 未申請欠勤合計 | UNAPPROVED_ABSENT_H | DECIMAL | 6 | 1 | 5 | NOT NULL | ||||||
| 8 | 更新日時 | UPDATED_AT | TIMESTAMP | — | 10 | NOT NULL | DEFAULT CURRENT_TIMESTAMP |
備考
- KIN08DBUが月次集計後にUPSERT(MERGE)
- サブシステムC(給与計算)への連携元
OVT_APPLICATIONS — 個別加班申請テーブル
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 残業統計管理DB | OVT_APPLICATIONS | — | PK: APPL_ID |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 申請番号 | APPL_ID | CHAR | 8 | 8 | NOT NULL | ✓ | YYYYMMDD+SEQ | |||||
| 2 | 社員番号 | EMP_ID | CHAR | 8 | 8 | NOT NULL | |||||||
| 3 | 申請日 | APPL_DATE | CHAR | 8 | 8 | NOT NULL | YYYYMMDD | ||||||
| 4 | 残業種別 | OVT_TYPE | CHAR | 1 | 1 | NOT NULL | W=平日, H=休日 | ||||||
| 5 | 開始時刻 | START_TIME | CHAR | 4 | 4 | NOT NULL | HHMM | ||||||
| 6 | 終了時刻 | END_TIME | CHAR | 4 | 4 | NOT NULL | HHMM | ||||||
| 7 | 加班時間 | OVT_HOURS | DECIMAL | 4 | 1 | 4 | NOT NULL | 0.1h単位 | |||||
| 8 | ステータス | STATUS | CHAR | 1 | 1 | NOT NULL | 0=有効, 9=取消 | ||||||
| 9 | 更新日時 | UPDATED_AT | TIMESTAMP | — | 10 | NOT NULL |
備考
- ZAN06UPDがINSERT/UPDATEを実行
- STATUS=9で取消(物理削除はしない)
OVT_MONTHLY — 月次集計テーブル
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 残業統計管理DB | OVT_MONTHLY | — | PK: (EMP_ID, YEAR_MONTH, OVT_TYPE) |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 社員番号 | EMP_ID | CHAR | 8 | 8 | NOT NULL | ✓ | ||||||
| 2 | 対象年月 | YEAR_MONTH | CHAR | 6 | 6 | NOT NULL | ✓ | YYYYMM | |||||
| 3 | 残業種別 | OVT_TYPE | CHAR | 1 | 1 | NOT NULL | ✓ | W=平日, H=休日 | |||||
| 4 | 加班時間合計 | OVT_HOURS | DECIMAL | 6 | 1 | 5 | NOT NULL | ||||||
| 5 | 加班回数 | OVT_COUNT | INTEGER | 10 | 4 | NOT NULL | |||||||
| 6 | 更新日時 | UPDATED_AT | TIMESTAMP | — | 10 | NOT NULL |
備考
- ZAN06UPDが月次集計結果をUPSERT
EMP-MASTER(SALARYDB) — 社員マスタ(給与計算用)
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 給与計算DB | EMP-MASTER | KYU01REC | PK: EMP-ID |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 社員番号 | EMP-ID | CHAR | 8 | 8 | NOT NULL | ✓ | ||||||
| 2 | 氏名 | EMP-NAME | VARCHAR | 40 | 40 | NOT NULL | |||||||
| 3 | 部署コード | DEPT-CODE | CHAR | 2 | 2 | NOT NULL | |||||||
| 4 | 地域コード | REGION-CODE | CHAR | 2 | 2 | NOT NULL | |||||||
| 5 | 職種コード | CATEGORY-CODE | CHAR | 3 | 3 | NOT NULL | |||||||
| 6 | 基本給 | BASE-SALARY | DECIMAL | 9 | 0 | 5 | NOT NULL | ||||||
| 7 | 時給 | HOURLY-RATE | DECIMAL | 7 | 0 | 4 | NOT NULL | ||||||
| 8 | 扶養人数 | DEPENDENT-COUNT | SMALLINT | — | 2 | NOT NULL | |||||||
| 9 | ステータス | STATUS | CHAR | 1 | 1 | NOT NULL | '0'=在籍, '9'=退職 | ||||||
| 10 | 更新日時 | UPDATED-AT | TIMESTAMP | — | 10 | NOT NULL | CURRENT TIMESTAMP |
備考
- KYU02REGがINSERT/UPSERTを実行
- KYU04CALがSELECTで参照
TAX-TABLE(SALARYDB) — 所得税率テーブル
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 給与計算DB | TAX-TABLE | — | PK: (TAX-FROM, TAX-TO) |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 課税下限 | TAX-FROM | DECIMAL | 9 | 0 | 5 | NOT NULL | ✓ | |||||
| 2 | 課税上限 | TAX-TO | DECIMAL | 9 | 0 | 5 | NOT NULL | ✓ | |||||
| 3 | 税率 | TAX-RATE | DECIMAL | 5 | 4 | 3 | NOT NULL | ||||||
| 4 | 控除額 | DEDUCTION | DECIMAL | 9 | 0 | 5 | NOT NULL |
備考
- KYU05DEDがSELECT ... BETWEENで参照
- 課税所得に対する超過累進税率
INSURANCE-TABLE(SALARYDB) — 社会保険料率テーブル
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 給与計算DB | INSURANCE-TABLE | — | PK: (INS-INCOME-FROM, INS-INCOME-TO) |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 所得下限 | INS-INCOME-FROM | DECIMAL | 9 | 0 | 5 | NOT NULL | ✓ | |||||
| 2 | 所得上限 | INS-INCOME-TO | DECIMAL | 9 | 0 | 5 | NOT NULL | ✓ | |||||
| 3 | 健康保険料率 | INS-HEALTH-RATE | DECIMAL | 7 | 6 | 4 | NOT NULL | ||||||
| 4 | 厚生年金保険料率 | INS-PENSION-RATE | DECIMAL | 7 | 6 | 4 | NOT NULL | ||||||
| 5 | 更新日時 | UPDATED-AT | TIMESTAMP | — | 10 | NOT NULL | CURRENT TIMESTAMP |
備考
- KYU05DEDが内部テーブル(SEARCH ALL)に取込んで参照
- 被保険者負担分のみ
SALARY-RESULTS(SALARYDB) — 給与計算結果テーブル
Layout(テーブル定義)
DB基本情報
| DB名 | DB ID | COPY ID | INDEX |
|---|---|---|---|
| 給与計算DB | SALARY-RESULTS | — | PK: (EMP-ID, YEAR-MONTH) |
カラム定義
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 社員番号 | EMP-ID | CHAR | 8 | 8 | NOT NULL | ✓ | ||||||
| 2 | 対象年月 | YEAR-MONTH | CHAR | 6 | 6 | NOT NULL | ✓ | YYYYMM | |||||
| 3 | 総支給額 | GROSS-PAYMENT | DECIMAL | 9 | 0 | 5 | NOT NULL | ||||||
| 4 | 源泉所得税 | INCOME-TAX | DECIMAL | 9 | 0 | 5 | NOT NULL | ||||||
| 5 | 社会保険料 | INSURANCE | DECIMAL | 9 | 0 | 5 | NOT NULL | ||||||
| 6 | 住民税 | RESIDENT-TAX | DECIMAL | 9 | 0 | 5 | NOT NULL | ||||||
| 7 | 差引支給額 | NET-PAYMENT | DECIMAL | 9 | 0 | 5 | NOT NULL | ||||||
| 8 | 更新日時 | UPDATED-AT | TIMESTAMP | — | 10 | NOT NULL | CURRENT TIMESTAMP |
備考
- KYU06UPDがINSERT/UPSERTを実行