我的beatbox与SFDC开发者帐户配合得很好。我正在推动Salesforce创建自定义对象,但它一次更新一个。有没有办法一次推送200个更改来限制我正在进行的api调用量?
我运行的脚本下载了一批潜在客户,然后通过new_Alert()处理它们,然后逐个上传它们,这样我很快就达到了api限制。
下面是我正在运行的两个脚本,我已经删除了大部分“工作”,使其更容易阅读。
def new_Alert(id1,login,pw):
svc = beatbox.Client()
svc.login(login, pw)
object_dict = {
'type': 'new_Alert',
'Lead__c': str(id1) }
results = svc.create(object_dict)
print results
def pushAlerts(login,pw):
sf = beatbox._tPartnerNS
svc = beatbox.Client()
svc.login(login, pw)
qr = svc.query("select Id, OwnerId from Lead")
for rec in qr[sf.records:]:
type = rec[0]
id1 = rec[1]
owner = rec[2]
new_Alert(type,id1,login)
while (str(qr[sf.done]) == 'false'):
qr = svc.queryMore(str(qr[sf.queryLocator]))
for rec in qr[sf.records:]:
type = rec[0]
id1 = rec[1]
new_Alert(type,id1,login)
答案 0 :(得分:1)
create
函数可以列出最多200条记录(字典),只需累积它们并在收集200条后发送批处理。
这是一次创建2个帐户记录并检查结果的示例。
def create(self):
a = { 'type': 'Account',
'Name': 'New Account',
'Website': 'http://www.pocketsoap.com/' }
b = { 'type' : 'Account',
'Name' : 'Another account',
'Website' : 'https://github.com/superfell/Beatbox' }
sr = svc.create([a,b])
self.printresult(sr[0])
self.printresult(sr[1])
def printresult(self, sr):
if str(sr[sf.success]) == 'true':
print "id " + str(sr[sf.id])
else:
print "error " + str(sr[sf.errors][sf.statusCode]) + ":" + str(sr[sf.errors][sf.message])