[英]Faster way to delete Contact in Salesforce (Simple_Salesforce)
我在沙箱中工作,我需要经常删除数百行。 我目前正在使用simple_salesfroce
来实现它。 但是当我需要删除大量行时,我的脚本需要很长时间。
我的脚本:
from simple_salesforce import Salesforce
import pandas as pd
from tqdm import tqdm
username="#####"
password="#####"
security_token="######"
domain="test"
sf = Salesforce(username=username,password=password, security_token=security_token,domain=domain)
#### QUERY ####
results=sf.query_all("""
Select id,Name FROM Contact where CreatedById='########' and RecordTypeId = '#######'
""")
#print(results)
records = [dict(id=rec['Id'],
Name=rec['Name'])
for rec in results['records']]
df=pd.DataFrame(records)
for i in tqdm(df.id):
sf.Contact.delete(i)
print('Contacts deleted')
有更快的方法吗? 例如,删除 5000 行需要将近一个小时。 创建 dataframe 是秒的事情,只有删除过程需要时间。
您一次要循环删除 1 个联系人。 您在网络往返上浪费的时间比实际删除所花的时间还多。 此外,这将消耗大量 API 调用,在极端情况下 - 耗尽每日 API 调用的限制,尤其是在生产中。
看看能不能通过一个列表来进行删除操作?
或使用批量 api(但它是异步操作),它在自述文件末尾进行了描述: https://github.com/simple-salesforce/simple-salesforce#using-bulk
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.