问题描述
我正在使用 simple_salesforce
更新 Salesforce 中的记录
我想保留一个“日志”,记录成功更新的记录以及收到的任何错误消息。例如:成功更新的响应是“204”。如何将该响应保存到变量?
一旦我在变量中拥有该值,我就知道如何将其存储在日志表中。非常感谢您的帮助
sf.table.update(uniqueID,{fieldname: new_AccountID})
解决方法
希望我的问题是正确的,因为答案是 - 只需将结果分配给一个变量
from simple_salesforce import Salesforce,SalesforceResourceNotFound,SalesforceMalformedRequest
id = '0030e0000000001'
try:
update_result = salesforce.Contact.update(id,{'Phone': '+1234567890'})
# alternatively you can create log line just here
# update_result = f'{id} was successfully updated'
except SalesforceResourceNotFound:
update_result = f'record {id} not found'
except SalesforceMalformedRequest as ex:
print(ex)
print(update_result)
#$> 204 or 'record 0030e0000000001aaaaaaaaa not found' on exception when id is incorrect
尽管如果您要处理多条记录,则必须考虑使用 bulk api
contact_data = [
{'Id': '0030e0000000001','Phone': '11111111111','Custom_Field__c': 1000},{'Id': '0030e0000000002','Phone': '22222222222','Custom_Field__c': 2000}
]
update_results = salesforce.bulk.Contact.update(contact_data)
然后 update_results
看起来像那样
[
{'success': True,'created': False,'id': '0030e0000000001','errors': []},{'success': True,'id': '0030e0000000002','errors': []}
]