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

Mule 2.0中如何提取键值对并存储至Object Store V2

处理Object Store v2批量存储员工键值对的问题

问题背景

需求是遍历输入Payload,将所有EMPNAME作为键、EMPID作为值存储到Object Store v2中。当前使用的DataWeave代码生成对象数组,无法直接批量存入Object Store,需调整代码并明确后续操作步骤。

输入Payload

{
    "application": "salesforce",
    "payload": [
        {
            "EMPLASTNAME": "Jane",
            "EMPFIRSTNAME": "Adams",
            "EMPEMAIL": "Adams456@isasnap.com",
            "EMPID": 12345,
            "EMPNAME": "e76543"
        },
        {
            "EMPLASTNAME": "Stella",
            "EMPFIRSTNAME": "Benedict",
            "EMPEMAIL": "Benedict564@isasnap.com",
            "EMPID": 67896,
            "EMPNAME": "e34896"
        },
        {
            "EMPLASTNAME": "Cooper",
            "EMPFIRSTNAME": "Jake",
            "EMPEMAIL": "Cooper133@isasnap.com",
            "EMPID": 98765,
            "EMPNAME": "e11356"
        }
    ]
}

原DataWeave代码及输出

原代码:

%dw 2.0
output application/json
---
((payload.payload map {
($.EMPNAME): $.EMPID
}))

输出结果(对象数组,不适用于批量存储):

[
  {
    "e76543": 12345
  },
  {
    "e34896": 67896
  },
  {
    "e11356": 98765
  }
]

第一步:修正DataWeave代码生成单对象键值对

将数组中的多个对象合并为单个对象,方便后续批量操作:

%dw 2.0
output application/json
---
payload.payload reduce ((item, accumulator = {}) -> accumulator ++ {(item.EMPNAME): item.EMPID})

修正后的输出(包含所有键值对的单个对象):

{
  "e76543": 12345,
  "e34896": 67896,
  "e11356": 98765
}

第二步:存入变量并批量更新Object Store v2

方式一:先存变量再批量存储

  1. 设置变量:添加Set Variable组件,变量名设为empIdMap,值引用上述DataWeave的输出结果(即payload)。
  2. 批量存入Object Store:使用Object Store v2组件的Put All操作,在Entries字段中填写vars.empIdMap,即可一次性将所有键值对存入Object Store。

方式二:直接在Object Store组件中使用DataWeave

无需额外变量,直接在Object Store v2的Put All操作的Entries字段中写入以下DataWeave表达式:

payload.payload reduce ((item, accumulator = {}) -> accumulator ++ {(item.EMPNAME): item.EMPID})

注意事项

  • 确保Object Store v2实例已正确配置,且允许存储对应类型的键值(比如键名长度、值的类型匹配等)。
  • Put All操作会默认覆盖Object Store中已存在的同名键,若需避免覆盖,可提前添加键存在性检查逻辑。

内容的提问来源于stack exchange,提问作者Sunny85

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:17:42