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

如何在Logic Apps中修改Salesforce消息的Id属性为小写id适配CosmosDB?

在Logic Apps中解决Salesforce Id转CosmosDB小写id的问题

有两种常用方法可以实现代码里[JsonProperty("id")]的等效效果,把Salesforce返回的大写Id映射成CosmosDB要求的小写id:

方法1:用Compose动作统一转换属性

添加一个Compose动作,通过表达式构造新的JSON对象,完成属性重命名并保留其他字段:

  • 如果属性不多,可以直接手动构造:
    {
      "id": @body('获取Salesforce记录')?['Id'],
      "AccountName": @body('获取Salesforce记录')?['Name'],
      "CreatedDate": @body('获取Salesforce记录')?['CreatedDate']
    }
    
  • 如果属性较多,用removeProperty和union批量处理,避免逐个编写:
    removeProperty(union(body('获取Salesforce记录'), createObject('id', body('获取Salesforce记录')?['Id'])), 'Id')
    
    这个表达式会先给原对象添加小写id属性,再删除大写的Id属性,自动保留其他所有字段。

方法2:直接在CosmosDB动作中构造Item

不需要额外的Compose动作,直接在CosmosDB的「创建项」或「更新项」动作的Item输入框里,构造包含小写id的JSON结构:

{
  "id": @body('获取Salesforce记录')?['Id'],
  // 这里添加其他需要存入CosmosDB的属性,比如:
  "Description": @body('获取Salesforce记录')?['Description'],
  "OwnerId": @body('获取Salesforce记录')?['OwnerId']
}

注意事项

  • 替换表达式里的body('获取Salesforce记录')为你实际的Salesforce动作名称,比如你的动作叫「Get Salesforce Data」,就改成body('Get Salesforce Data')?['Id']
  • 用?['字段名']的写法可以避免字段不存在时出现报错,提升流程稳定性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:25:19