繁体   English   中英

更快地删除 Salesforce 中的联系人 (Simple_Salesforce)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM