它解决什么问题
手上有一份全量明细,另有一份「需要重点核查的资产编号清单」。要从明细里挑出清单上的那些行 – 或者反过来剔除掉。
用 Joiner 也能做到,但 Joiner 会把参照表的列都接过来,输出多一堆用不上的字段,还可能因为参照表有重复导致行数暴涨。这个节点只做筛选,输出的列和输入完全一样。
两个输入端口的顺序有意义:上面是要筛的数据,下面是参照表。接反了结果完全不同。
基本信息
| 英文原名 | Reference Row Filter |
|---|---|
| 中文名称 | 参照行筛选(iModel 中文界面) |
| 输入端口 | 2 个。上:被筛的数据表;下:参照表 |
| 输出端口 | 1 个。另有 Reference Row Splitter,两个输出分别是命中的和没命中的 |
| 会改变列吗 | 不会。列结构和上端口输入完全一致 |
配置项逐条
-
数据表的比对列Data column
上端口那张表里,拿哪一列去和参照表比。
-
参照表的比对列Reference column
下端口那张表里的对应列。两边列名可以不同,但类型必须一致 – 类型不一致会一条都匹配不上,且不报错。
-
保留还是排除Include / Exclude rows from reference
参照表当白名单就选保留,当黑名单就选排除。这一项反了,输出会是空表或者全表 – 和 Row Filter 一样,出问题先查这里。
Reference Row Filter 配置对话框
数据表比对列上端口
资产编号
参照表比对列下端口
核查编号
列名不必相同,类型必须相同。类型不一致时一条都配不上,还不报错。
命中的行怎么处理
保留(白名单)排除(黑名单)
输出为空或等于全表,先查这一项。
和 Joiner 怎么选
你需要把参照表里的字段也带过来吗?
不需要
用 Reference Row Filter
只筛行。列结构不变,不会因为参照表有重复而行数暴涨,也不会出现重名列。
需要
用 Joiner
要把部门名称、负责人这些字段接到明细上,那就是关联,不是筛选。
三个常见坑
- 两个输入端口接反了。上面接了参照表、下面接了数据表,结果会是「参照表里存在于明细中的那些行」 – 可能也有几行,所以不容易一眼看出接反了。养成习惯:上面永远是要筛的那张大表。
- 比对列类型不一致,输出空表。和 Joiner 一样的老问题。看两边列名旁的类型图标。
- 参照表里的值有空格。清单常常是从别处复制粘贴来的,前后带空格。两边都过一遍去空格再比。

