Files
cobol-java-v3/benchmark-programs/docs/DATA-FLOW.md
T
NB-076 94400d50d4 feat: add benchmark-programs — 58 telecom COBOL test programs
作为子目录纳入系统,与核心测试管道协同

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-25 09:53:21 +08:00

138 lines
10 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.
# 电信请求书系统 — 数据流
## 端到端批处理流程
### 月次请求书发行流程
```
外部系统(BSS/OCS)
▼ CSV格式CDR
┌─────────────────────────────────────────────────────────────┐
│ 1. CDR取込 │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 15-csv-fb-nolf │ │ 21-csv-fb-lf │ │
│ │ 无LF CSV→固定长 │ │ 含LF CSV→固定长 │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ ▼ │
│ 2. CDR前処理 │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 29 ascii-ebcdic │ │ 35 MERGE │ │
│ │ 编码转换(主机) │ │ 多源CDR合并 │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ ▼ │
│ 3. CDR校验 & 排序 │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 13 字段校验 │ │ 31 重複检测 │ │
│ │ 27 电话号码格式 │ │ 30 状态变化检测 │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ ▼ │
│ 4. CDR排序 │
│ ┌──────────────────────────────────────────────────┐ │
│ │ 34 SORT CDR按客户/时间排序 │ │
│ └──────────────────────┬───────────────────────────┘ │
│ ▼ │
│ 5. 合同匹配 & 计费 │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 02 合同↔CDR(1:N) │ │ 03 线路汇集(N:1)│ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ ▼ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 24 资费表检索 │ │ 25 计费子程序 │ │
│ │ (SEARCH ALL) │ │ (CALL d×rate) │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ ▼ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 05 IF条件判定 │ │ 06 EVALUATE套餐 │ │
│ │ (料金阈值分支) │ │ (套餐类型判定) │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ ▼ │
│ 6. 费用汇总 │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 07 加入者月汇总 │ │ 08 套餐统计 │ │
│ │ (key切 ADD累加) │ │ (COUNT/MIN/MAX) │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ 32/33 混合处理(1:N+key切) │ │
│ └──────────────────────┬───────────────────────────┘ │
│ ▼ │
│ 7. 请求书生成 & 输出 │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 04 请求书编辑 │ │ 10/11/12 分割 │ │
│ │ (报表/HEADING) │ │ (50/25/100分割) │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ ▼ │
│ 8. 事后处理 │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 01 请求书对账 │ │ 09/23/26 DB更新 │ │
│ │ (1:1 Invoice↔Pay)│ │ (客户DB更新检索) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ 9. 辅助 │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 14 在线照会 │ │ 28 SYSIN参数 │ │
│ │ (CICS模拟) │ │ (批量参数设定) │ │
│ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────┘
请求书文件(印刷/PDF/Web)
```
## 文件间关联
以下程序直接读取前段程序的输出文件:
| 程序 | 输入来源 | 说明 |
|------|---------|------|
| 34-sort | ← 15-csv-fb-nolf 或 21-csv-fb-lf | CDR排序需要先取込 |
| 02-matching-1-N | ← 34-sort | 合同匹配需要已排序CDR |
| 07-keybreak-summary | ← 02-matching-1-N | 汇总需要已匹配的合同↔CDR |
| 04-edit-getput | ← 07-keybreak-summary | 请求书输出需要汇总数据 |
| 10-divide-50 | ← 04-edit-getput | 分割需要已生成的请求书 |
| 16-matching-2stage-1-1 | ← 01-matching-1-1 中间文件 | 二级对账 |
| 17-matching-2stage-N-1 | ← 03-matching-N-1 中间文件 | 二级聚合 |
| 22-matching-2stage-MN | ← 18~20 中间文件 | 二级套餐匹配 |
| 32-mix-1N-samekeybreak | ← 02-matching-1-N 输出 | 混合匹配+key切 |
| 33-mix-1N-diffkeybreak | ← 02-matching-1-N 输出 | 混合匹配+key切 |
## 数据示例
### CDR 数据 (CSV)
```
CDR0000001,8613800138001,8613900999001,20250601083000,000000120,01
CDR0000002,8613800138001,8613700777001,20250601084500,000000045,01
CDR0000003,8613900999001,8613800138001,20250601090000,000000300,02
```
### 请求书数据
```
INV2025001 CUST000001 202506 000050000 0
INV2025002 CUST000002 202506 000120000 1
INV2025003 CUST000003 202506 000030000 2
```
### 合同数据
```
CTR000001 CUST000001 P01 20240101 20261231
CTR000002 CUST000002 P02 20240601 20261231
CTR000003 CUST000003 P03 20250101 20261231
```