如何使用Node.js合并Salesforce平台中的SObject对象
Node.js 合并 Salesforce SObject 实现方案
JSForce 官方没有封装专门的 SObject 合并方法,但可以通过其提供的底层 API 调用能力直接对接 Salesforce 原生合并接口实现需求,以下是两种可行实现方式:
- 调用 Salesforce SOAP API 原生 merge 操作
JSForce 连接实例支持直接调用 SOAP 接口的 merge 方法,适配所有支持合并操作的 Salesforce 版本,示例代码如下:
const jsforce = require('jsforce'); // 初始化Salesforce连接,可替换为你自己的登录逻辑 const conn = new jsforce.Connection({ instanceUrl: '你的Salesforce实例地址', accessToken: '你的接口访问令牌' }); const mergeParams = { masterRecord: { type: 'Account', // 替换为实际需要合并的SObject对象API名称 Id: '保留的主记录ID' }, recordToMergeIds: ['待合并的从记录ID1', '待合并的从记录ID2'], // 单次最多支持2条从记录 mergeRelatedRecords: true // 可选:是否将从记录的关联子数据迁移到主记录,默认开启 }; // 执行合并操作 conn.soap.merge(mergeParams, (err, res) => { if (err) { console.error('合并操作失败:', err); return; } console.log('合并操作成功,返回结果:', res); });
- 调用 Salesforce REST API 合并端点
如果你使用的 Salesforce 接口版本大于等于 v58.0,也可以调用新增的REST合并接口,通过JSForce的通用request方法发起请求即可:
const mergeBody = { masterRecordId: '保留的主记录ID', recordIds: ['待合并的从记录ID1', '待合并的从记录ID2'], mergeRelatedRecords: true }; conn.request({ method: 'POST', url: `/services/data/v59.0/merge/Account`, // 末尾替换为实际SObject对象API名称,接口版本需>=58.0 body: JSON.stringify(mergeBody), headers: { 'Content-Type': 'application/json' } }, (err, res) => { if (err) { console.error('合并操作失败:', err); return; } console.log('合并操作成功,返回结果:', res); });
- 注意事项:
- 操作账号需要拥有对应SObject的编辑、删除权限,以及合并操作的系统权限
- 单次合并仅支持将最多2条从记录合并到1条主记录,所有参与合并的记录必须属于同一个SObject类型
- 主记录不能是已删除、已归档状态,从记录合并完成后默认进入回收站,可按需配置是否永久删除
内容的提问来源于stack exchange,提问作者Janakiram
相关产品推荐
相关产品推荐

