Files
cobol-java-v3/detailed-design-docs/copybook-definition.md
T
hangshuo652 b94757d9df feat: V3系统评审问题修复
1. 场景价值与技术合理性修复:
   - 补充docs/SCENE_VALUE.md(业务背景、痛点分析、用户场景、竞品对比、价值量化)
   - 添加用户操作流程图(Mermaid)
   - 添加3个真实业务案例量化数据

2. 演示与文档修复:
   - 创建docs/API.md(完整API文档)
   - 创建docs/QUICKSTART.md(5分钟快速入门指南)

3. AI使用日志修复:
   - 更新AGENTS.md,添加强制自动执行的AI使用日志记录指令
   - 在_AI_USAGE_LOG.md末尾添加范式执行统计

4. 安全性修复:
   - 在agents/llm.py中添加输入过滤(防Prompt注入)
   - 添加输出验证、速率限制、详细日志

5. 架构设计修复:
   - 创建tools/registry.py工具注册表
   - 修改orchestrator.py和orchestrator_db.py使用注册表动态获取运行器

6. 开发范式修复:
   - 在_AI_USAGE_LOG.md末尾添加范式执行统计
2026-08-29 13:23:28 +08:00

327 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ファイル定義書
## 変更履歴
| No | 変更内容 | 担当者 | 変更日 | 承認者 | 備考 |
|----|---------|--------|--------|--------|------|
| 1 | 新規作成 | AI | 2026/06/15 | | COPY10部品を一括定義 |
---
# ZAN01REC — 加班申請レコード
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| OVT-VALID / OVT-CANCEL / OVT-SORTED / OVT-CSORT / OVT-VSORT / OVT-NODUP / OVT-CHECKED | ZAN01REC | PS | FB | 80 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 03 | 申請番号 | (A)APPL-ID | X(8) | 8 | | 1 | | | YYYYMMDD+SEQ |
| 2 | 03 | 社員番号 | (A)EMP-ID | 9(8) | 8 | | 9 | | | |
| 3 | 03 | 申請日 | (A)APPL-DATE | 9(8) | 8 | | 17 | | | YYYYMMDD |
| 4 | 03 | 開始時刻 | (A)START-TIME | 9(4) | 4 | | 25 | | | HHMM |
| 5 | 03 | 終了時刻 | (A)END-TIME | 9(4) | 4 | | 29 | | | HHMM |
| 6 | 03 | ステータス | (A)STATUS | X(1) | 1 | | 33 | | | 0:有効/1:確定/9:取消 |
| 7 | 03 | 残業種別 | (A)OVT-TYPE | X(1) | 1 | | 34 | | | W:平日/H:休日 |
| 8 | 03 | 予約 | (A)FILLER | X(46) | 46 | | 35 | | | |
### 使用プログラム
| プログラム | プレフィックス | 用途 | I/O |
|-----------|--------------|------|-----|
| ZAN01CHK | W01 | OVT-VALID出力(STATUS=0/1 | O |
| ZAN01CHK | W02 | OVT-CANCEL出力(STATUS=9 | O |
| ZAN02CHK | R01 | OVT-VSORT入力 | I |
| ZAN02CHK | W01 | OVT-NODUP出力 | O |
| ZAN03CHK | R01 | OVT-NODUP入力 | I |
| ZAN03CHK | W01 | OVT-CHECKED出力 | O |
| ZAN04MAT | R01 | OVT-SORTED入力(有効申請) | I |
| ZAN04MAT | R02 | OVT-CSORT入力(取消申請) | I |
---
# ZAN02REC — マッチング結果レコード
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| OVT-MATCHED | ZAN02REC | PS | FB | 80 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 03 | 申請番号 | (A)APPL-ID | X(8) | 8 | | 1 | | | |
| 2 | 03 | 社員番号 | (A)EMP-ID | 9(8) | 8 | | 9 | | | |
| 3 | 03 | 申請日 | (A)APPL-DATE | 9(8) | 8 | | 17 | | | YYYYMMDD |
| 4 | 03 | 開始時刻 | (A)START-TIME | 9(4) | 4 | | 25 | | | HHMM |
| 5 | 03 | 終了時刻 | (A)END-TIME | 9(4) | 4 | | 29 | | | HHMM |
| 6 | 03 | ステータス | (A)STATUS | X(1) | 1 | | 33 | | | |
| 7 | 03 | 残業種別 | (A)OVT-TYPE | X(1) | 1 | | 34 | | | W:平日/H:休日 |
| 8 | 03 | 処理番号 | (A)PROC-SEQ | 9(2) | 2 | | 35 | | | 01固定 |
| 9 | 03 | 予約 | (A)FILLER | X(44) | 44 | | 37 | | | |
### ZAN01RECとの差分
| 項目 | ZAN01REC | ZAN02REC |
|------|----------|----------|
| 追加 | — | PROC-SEQ9(2) |
| FILLER | X(46) | X(44) |
### 使用プログラム
| プログラム | プレフィックス | 用途 | I/O |
|-----------|--------------|------|-----|
| ZAN04MAT | W01 | OVT-MATCHED出力 | O |
---
# ZAN03REC — 集約結果レコード
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| OVT-AGGREGATED | ZAN03REC | PS | FB | 80 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 03 | 申請番号 | (A)APPL-ID | X(8) | 8 | | 1 | | | |
| 2 | 03 | 社員番号 | (A)EMP-ID | 9(8) | 8 | | 9 | | | |
| 3 | 03 | 申請日 | (A)APPL-DATE | 9(8) | 8 | | 17 | | | YYYYMMDD |
| 4 | 03 | 開始時刻 | (A)START-TIME | 9(4) | 4 | | 25 | | | HHMM |
| 5 | 03 | 終了時刻 | (A)END-TIME | 9(4) | 4 | | 29 | | | HHMM |
| 6 | 03 | 残業時間 | (A)OVT-HOURS | 9(4)V9(1) | 5 | | 33 | | | HH.h0.1h単位) |
| 7 | 03 | 残業種別 | (A)OVT-TYPE | X(1) | 1 | | 38 | | | W:平日/H:休日 |
| 8 | 03 | 予約 | (A)FILLER | X(42) | 42 | | 39 | | | |
### ZAN01RECとの差分
| 項目 | ZAN01REC | ZAN03REC |
|------|----------|----------|
| 削除 | STATUS | — |
| 追加 | — | OVT-HOURS9(4)V9(1) |
| FILLER | X(46) | X(42) |
### 使用プログラム
| プログラム | プレフィックス | 用途 | I/O | 備考 |
|-----------|--------------|------|-----|------|
| ZAN05CAL | (未定) | 集約結果出力 | O | 未実装 |
---
# ZAN04REC — DBCLEAN対象レコード
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| OVT-DBCLEAN | ZAN04REC | PS | FB | 80 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 03 | 申請番号 | (A)APPL-ID | X(8) | 8 | | 1 | | | DB削除対象申請番号 |
| 2 | 03 | 予約 | (A)FILLER | X(72) | 72 | | 9 | | | |
### 使用プログラム
| プログラム | プレフィックス | 用途 | I/O |
|-----------|--------------|------|-----|
| ZAN04MAT | W02 | OVT-DBCLEAN出力(APPL-IDのみ設定) | O |
---
# ZAN05REC — エラーログレコード
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| ERROR-LOG | ZAN05REC | PS | VB | 200 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 03 | エラーカテゴリ | (A)ERR-CATEGORY | 9(2) | 2 | | 1 | | | 01:項目CHK/02:重複/03:打刻不突合/03:取消監査 |
| 2 | 03 | エラー詳細 | (A)ERR-DETAIL | X(198) | 198 | | 3 | | | STRING編集値 |
### 使用プログラム
| プログラム | プレフィックス | エラーカテゴリ | I/O |
|-----------|--------------|---------------|-----|
| ZAN01CHK | W03 | 01(項目チェックエラー) | O |
| ZAN02CHK | W02 | 02(時間重複エラー) | O |
| ZAN03CHK | W02 | 03(打刻不突合エラー) | O |
| ZAN04MAT | W03 | 03(取消マッチ監査証跡) | O |
---
# ZANDATAC — SUB01DAT 運用日付取得用連絡領域
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| SUB01DAT連絡領域 | ZANDATAC | — | — | 10 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 01 | 運用日付パラメタ | D01UBSPAR | | | | 1 | | | CALL USING対象 |
| 2 | 03 | 復帰コード | D01FKICOD | S9(4) COMP | 2 | | 1 | | D01UBSPAR | 0000:正常 |
| 3 | 03 | 運用日付 | D01UBSUDATE | 9(8) | 8 | | 3 | | D01UBSPAR | YYYYMMDD |
### 使用プログラム
| プログラム | 呼出方法 | 備考 |
|-----------|---------|------|
| ZAN01CHK | CALL 'SUB01DAT' USING D01UBSPAR | 初期処理 |
| ZAN02CHK | CALL 'SUB01DAT' USING D01UBSPAR | 初期処理 |
| ZAN04MAT | CALL 'SUB01DAT' USING D01UBSPAR | 初期処理 |
※ ZAN03CHKはFUNCTION CURRENT-DATEを使用し本COPY未使用
---
# ZANMSGAC — SUB02MSG メッセージ出力用連絡領域
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| SUB02MSG連絡領域 | ZANMSGAC | — | — | 303 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 01 | メッセージパラメタ | M00MHOPAR | | | | 1 | | | CALL USING対象 |
| 2 | 03 | メッセージ番号 | M00MSGCOD | 9(3) | 3 | | 1 | | M00MHOPAR | |
| 3 | 03 | パラメータ1 | M00UMKDATS22-01 | X(30) | 30 | | 4 | | M00MHOPAR | |
| 4 | 03 | パラメータ2 | M00UMKDATS22-02 | X(30) | 30 | | 34 | | M00MHOPAR | |
| 5 | 03 | パラメータ3 | M00UMKDATS22-03 | X(30) | 30 | | 64 | | M00MHOPAR | |
| 6 | 03 | パラメータ4 | M00UMKDATS22-04 | X(30) | 30 | | 94 | | M00MHOPAR | |
| 7 | 03 | パラメータ5 | M00UMKDATS22-05 | X(30) | 30 | | 124 | | M00MHOPAR | |
| 8 | 03 | パラメータ6 | M00UMKDATS22-06 | X(30) | 30 | | 154 | | M00MHOPAR | |
| 9 | 03 | パラメータ7 | M00UMKDATS22-07 | X(30) | 30 | | 184 | | M00MHOPAR | |
| 10 | 03 | パラメータ8 | M00UMKDATS22-08 | X(30) | 30 | | 214 | | M00MHOPAR | |
| 11 | 03 | パラメータ9 | M00UMKDATS22-09 | X(30) | 30 | | 244 | | M00MHOPAR | |
| 12 | 03 | パラメータ10 | M00UMKDATS22-10 | X(30) | 30 | | 274 | | M00MHOPAR | |
### 使用プログラム
| プログラム | 呼出方法 | 備考 |
|-----------|---------|------|
| ZAN01CHK | CALL 'SUB02MSG' USING M00MHOPAR | |
| ZAN02CHK | CALL 'SUB02MSG' USING M00MHOPAR | |
| ZAN03CHK | CALL 'SUB02MSG' USING M00MHOPAR | |
| ZAN04MAT | CALL 'SUB02MSG' USING M00MHOPAR | |
---
# ZANENDAC — SUB03END ABEND処理用連絡領域
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| SUB03END連絡領域 | ZANENDAC | — | — | 3 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 01 | ABENDパラメタ | E01ABDPAR | | | | 1 | | | CALL USING対象 |
| 2 | 03 | ABENDコード | E01ABDCOD | 9(3) | 3 | | 1 | | E01ABDPAR | 999:汎用 |
### 使用プログラム
| プログラム | 呼出方法 |
|-----------|---------|
| ZAN01CHK | CALL 'SUB03END' USING E01ABDPAR |
| ZAN02CHK | CALL 'SUB03END' USING E01ABDPAR |
| ZAN03CHK | CALL 'SUB03END' USING E01ABDPAR |
| ZAN04MAT | CALL 'SUB03END' USING E01ABDPAR |
---
# ZANCHKAC — SUB04CHK 項目チェック用連絡領域
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| SUB04CHK連絡領域 | ZANCHKAC | — | — | 92 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 01 | 項目チェックパラメタ | C01CHKPAR | | | | 1 | | | CALL USING対象 |
| 2 | 03 | チェックタイプ | C01CHKTYP | X(8) | 8 | | 1 | | C01CHKPAR | DATE/TIME/NUM/EMPID |
| 3 | 03 | チェック対象データ | C01CHKDAT | X(80) | 80 | | 9 | | C01CHKPAR | |
| 4 | 03 | 復帰コード | C01CHKRRC | 9(4) | 4 | | 89 | | C01CHKPAR | 0000:正常/0001:日付/0002:時刻/0003:数字/0004:社員番号/9999:不明 |
### 使用プログラム
| プログラム | 呼出方法 | 備考 |
|-----------|---------|------|
| ZAN01CHK | CALL 'SUB04CHK' USING C01CHKPAR | 日付/時刻チェック |
---
# ZANTIMAC — SUB05TIM 時刻丸め用連絡領域
## Layout(レコードレイアウト)
### ファイル基本情報
| ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 |
|-----------|---------|------|-------------|-----------|
| SUB05TIM連絡領域 | ZANTIMAC | — | — | 14 |
### レコード定義
| No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 |
|----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------|
| 1 | 01 | 時刻丸めパラメタ | T01TIMPAR | | | | 1 | | | CALL USING対象 |
| 2 | 03 | 入力時間 | T01TIMHRS | 9(4)V9(1) | 5 | | 1 | | T01TIMPAR | HH.h |
| 3 | 03 | 出力時間 | T01TIMOUT | 9(4)V9(1) | 5 | | 6 | | T01TIMPAR | 丸め後 |
| 4 | 03 | 丸めモード | T01TIMRRC | 9(4) | 4 | | 11 | | T01TIMPAR | 0:0.5h切上/1:0.1h切上/2:0.1h切捨/3:四捨五入 |
### 使用プログラム
| プログラム | 呼出方法 | 備考 |
|-----------|---------|------|
| — | — | ZAN05CALで使用予定(未実装) |