如何存储 simple_salesforce 更新响应?

问题描述

我正在使用 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': []}
]