2.6 KiB
2.6 KiB
マッチング(1:1) 数据生成规则
概要
2个输入文件按指定键进行1:1匹配,输出匹配成功/仅R01/仅R02三种结果。
输入
- 前提条件:从详细设计书解析匹配键(A001>A002>A003...)
- 输入文件:2个(R01、R02)
- 键条件:键值唯一(重複NG),升序排序
生成的数据组
| 组 | 用途 | R01记录数 | R02记录数 | 说明 |
|---|---|---|---|---|
| 1 | 两端不匹配 | 4 | 4 | 第1条R01-only、最后1条R02-only、中间3条以上匹配 |
| 2 | 反向两端不匹配 | 4 | 4 | 第1条R02-only、最后1条R01-only、中间3条以上匹配 |
| 3 | 中间不匹配 | 5 | 5 | 首尾匹配、中间有R01-only和R02-only各1条 |
组1:两端不匹配
R01键:a001(R01-only) → a002 → a003 → a004 R02键:a002 → a003 → a004 → a005(R02-only)
records数组(按处理顺序):
| record序号 | 内容 | 说明 |
|---|---|---|
| 1 | R01(a001) | R01-only |
| 2 | R01(a002) + R02(a002) | 匹配 |
| 3 | R01(a003) + R02(a003) | 匹配 |
| 4 | R01(a004) + R02(a004) | 匹配 |
| 5 | R02(a005) | R02-only |
组1:需要注意当key为n个项目组合而成时,在R01的最后需要加上n条数据。 和R02(a005)的所有key相比,只有当前第n个key与R02(a005)的key不一致。保证key的比较没有问题。
组2:反向两端不匹配
R01键:a002 → a003 → a004 → a005(R01-only) R02键:a001(R02-only) → a002 → a003 → a004
records数组:
| record序号 | 内容 | 说明 |
|---|---|---|
| 1 | R02(a001) | R02-only |
| 2 | R01(a002) + R02(a002) | 匹配 |
| 3 | R01(a003) + R02(a003) | 匹配 |
| 4 | R01(a004) + R02(a004) | 匹配 |
| 5 | R01(a005) | R01-only |
组3:中间不匹配
R01键:a001 → a003(R01-only) → a004 → a005 R02键:a001 → a002(R02-only) → a003 → a005
records数组:
| record序号 | 内容 | 说明 |
|---|---|---|
| 1 | R01(a001) + R02(a001) | 匹配 |
| 2 | R01(a003) | R01-only |
| 3 | R01(a004) + R02(a003) | 匹配 |
| 4 | R02(a002) | R02-only |
| 5 | R01(a005) + R02(a005) | 匹配 |
数据生成步骤
- 从前提条件解析匹配键字段(如 A001>A002>A003)
- 从COPYBOOK获取各字段的PIC定义
- 生成键值:键值以 a001/b001/c001 格式递增,保证升序排列
- 非键字段的数据生成:根据字段名关键词生成符合实际的数据,同时尽量保证每条相邻的数据的相同项目不一致。
- 按各组规则组装records数组
- 组号从1开始连续编号
输出
每个组输出一个json文件:{プログラムID}_g{groupId}.json