You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 13:54:51