Mule 4 DataWeave条件逻辑开发求助:动态必填字段校验与状态添加
Mule 4 DataWeave 实现动态必填字段校验并添加状态字段
需求说明
根据动态配置的必填字段(初始配置为D6V_Cod,D6V,DYR_Cod,DYR),在响应中添加status字段:
- 若请求中任意必填字段的值为
null,则status设为"Certified-Retry" - 若所有必填字段的值均存在(非
null),则status设为"Certified"
输入示例
{ "vin": "1234", "D6H": null, "D6H_Cod": null, "D6K": null, "D6K_Cod": null, "D6V": null, "D6V_Cod": null, "DCP": null, "DCP_Cod": null, "DI2": null, "DI2_Cod": null, "DJY": null, "DJY_Cod": null, "DXD": "04", "DXD_Cod": "CD", "DYD": null, "DYD_Cod": null, "DYR": null, "DYR_Cod": null, "DRC": null, "DRC_Cod": null, "DO9": null, "DO9_Cod": null }
预期结果
{ "vin": "1234", "D6H": null, "D6H_Cod": null, "D6K": null, "D6K_Cod": null, "D6V": null, "D6V_Cod": null, "DCP": null, "DCP_Cod": null, "DI2": null, "DI2_Cod": null, "DJY": null, "DJY_Cod": null, "DXD": "04", "DXD_Cod": "CD", "DYD": null, "DYD_Cod": null, "DYR": null, "DYR_Cod": null, "DRC": null, "DRC_Cod": null, "DO9": null, "DO9_Cod": null, "status": "Certified-Retry" }
DataWeave 代码实现
%dw 2.0 output application/json // 动态配置的必填字段,实际项目可替换为Mule配置属性(如${required.fields}) var requiredFields = ["D6V_Cod", "D6V", "DYR_Cod", "DYR"] // 检查是否存在必填字段值为null的情况 var hasNullRequiredField = requiredFields any (fieldName -> payload[fieldName] == null) --- // 合并原始payload与status字段 payload ++ { status: if (hasNullRequiredField) "Certified-Retry" else "Certified" }
代码说明
- 动态配置支持:
requiredFields变量可直接替换为Mule的配置属性(如${required.fields}),实现无需修改代码即可调整必填字段列表 - 空值校验:使用
any操作符遍历必填字段,快速判断是否存在值为null的字段 - 结果合并:通过
++操作符将原始请求数据与生成的status字段合并,返回完整响应
内容的提问来源于stack exchange,提问作者Devendra
相关产品推荐
相关产品推荐

