如何在Mule 4中配置Salesforce Bulk API v2 Upsert为仅更新?
Mule 4中Salesforce Bulk API v2 Upsert仅更新模式配置问题
我在Mule 4中使用Salesforce create-job-bulk-api-v2执行Upsert操作,根据Salesforce官方文档,可设置仅更新模式以阻止创建新记录。我尝试通过以下配置添加updateOnly请求头并设为true:
<salesforce:create-job-bulk-api-v2 objectType="Account" operation="upsert" doc:name="Create job bulk api v 2" doc:id="c43d3dc1-0f9f-416e-9c2d-9330a9861cb4" config-ref="Salesforce_Config" externalIdFieldName="External_Id_c"> <salesforce:headers > <salesforce:header key="updateOnly" value="true" /> </salesforce:headers> </salesforce:create-job-bulk-api-v2>
但仍会创建新的Contact记录,请问该如何正确配置?
解决方案
核心问题
你引用的是Salesforce REST API的Upsert接口文档,但Bulk API v2的Upsert操作不支持通过请求头设置updateOnly,该参数需要通过Job的操作选项进行配置。
正确配置方式
在create-job-bulk-api-v2组件中添加salesforce:operation-options子元素,并设置updateOnly="true",而非通过salesforce:headers传递。
修正后的配置示例
<salesforce:create-job-bulk-api-v2 objectType="Contact" operation="upsert" doc:name="Create job bulk api v 2" doc:id="c43d3dc1-0f9f-416e-9c2d-9330a9861cb4" config-ref="Salesforce_Config" externalIdFieldName="External_Id_c"> <salesforce:operation-options updateOnly="true" /> </salesforce:create-job-bulk-api-v2>
额外注意事项
- 确保你的Mule Salesforce Connector版本在4.15.0及以上,该版本才完整支持Bulk API v2的
updateOnly操作选项 - 若实际操作对象是Contact,需将
objectType从Account改为Contact,同时确认externalIdFieldName对应Contact对象的有效外部ID字段
内容的提问来源于stack exchange,提问作者Maryam
相关产品推荐
相关产品推荐

