DataWeave实现两结果集员工ID匹配时将status置为true
DataWeave 两结果集匹配更新status实现方案
核心处理逻辑
处理流程分为两步:
- 提前提取
resultSet1中所有员工ID,生成独立的ID匹配集合,避免嵌套遍历提升处理性能 - 遍历
resultSet2的每一条记录,判断当前记录ID是否在匹配集合中:匹配则status设为true,不匹配则保留默认值false
完整实现代码
%dw 2.0 output application/json // 提取resultSet1内所有有效员工ID var validEmpIds = resultSet1.id --- resultSet2 map (emp) -> { id: emp.id, status: emp.id in validEmpIds }
结果验证
传入题目给出的示例输入,运行上述代码将输出完全符合预期的结果:
[ { "id": "12334", "status": true }, { "id": "11521", "status": false }, { "id": "13357", "status": true } ]
补充说明:如果
resultSet2中除了id、status外还有其他需要保留的字段,可以直接把map内的映射逻辑替换为emp update { case .status -> emp.id in validEmpIds },无需逐一字段手动映射。
内容的提问来源于stack exchange,提问作者deepuKumar
相关产品推荐
相关产品推荐

