2

我的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)
4

1 回答 1

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])
于 2014-03-06T05:46:44.370 回答