# マッチング(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) | 匹配 | ## 数据生成步骤 1. 从前提条件解析匹配键字段(如 A001>A002>A003) 2. 从COPYBOOK获取各字段的PIC定义 3. 生成键值:键值以 a001/b001/c001 格式递增,保证升序排列 4. 非键字段的数据生成:根据字段名关键词生成符合实际的数据,同时尽量保证每条相邻的数据的相同项目不一致。 5. 按各组规则组装records数组 6. 组号从1开始连续编号 ## 输出 每个组输出一个json文件:`{プログラムID}_g{groupId}.json`