使用Simple-salesforce批量插入Lookup字段遇类型错误的解决问询
解决simple-salesforce批量插入自定义对象Lookup字段的错误问题
错误原因
你遇到的FIELD_INTEGRITY_EXCEPTION错误,核心问题是Lookup字段Account_Name__c传入的值不符合要求:
Account_Name__c是指向Account对象的关联字段,必须传入有效的Account对象标准ID(Salesforce的ID为15位短格式或18位长格式)- 你传入的
a1j1234567长度不足,不是合法的Account ID,导致Salesforce判定类型不匹配。
解决步骤
1. 获取合法的Account ID
确保你要关联的Account存在,并且拿到它的15位或18位ID:
- 可在Salesforce界面查看Account详情,URL中的ID即为15位格式(例如
a1j0000000ABCDE) - 也可通过simple-salesforce查询获取:
# 查询指定条件的Account并获取ID accounts = sf.Account.query("SELECT Id FROM Account WHERE Name = '目标账户名称'") valid_account_id = accounts['records'][0]['Id']
2. 修正数据并执行批量插入
更新数据集,将Account_Name__c替换为合法的Account ID,再执行插入:
from simple_salesforce import Salesforce # 初始化Salesforce连接 sf = Salesforce( username='你的用户名', password='你的密码', security_token='你的安全令牌' ) # 修正后的批量插入数据 batch_data = [ { 'ID__c': '123456789', 'Date__c': '2022-12-21', 'Total_Transactions__c': 1, 'Amount__c': -492.81, 'Account_Name__c': valid_account_id # 替换为实际合法的Account ID } ] # 执行批量插入(替换为你的自定义对象API名称,比如Transaction__c) insert_result = sf.bulk.Transaction__c.insert(batch_data) print(insert_result)
关键说明
simple-salesforce完全支持自定义对象Lookup字段的批量插入操作,只要传入正确且有效的关联对象ID即可完成关联。你之前的问题仅源于传入的ID格式错误,而非库本身不支持该功能。
内容的提问来源于stack exchange,提问作者frequent user
相关产品推荐
相关产品推荐

