在尝试通过启用pk_chunking = True在salesforce中读取accounts表时,获得的错误为
作业的salesforce_bulk.salesforce_bulk.BulkBatchFailed:批7511M00000KiqGsQAJ无失败:无
我查看了salesforce监视,pk_chunking创建了11个批,除上面的情况外,所有批都有结果,它们的请求类似于
select Id from Account where Id >='' and Id<'' " 下面是我写的代码:
table_names = ['Account','table1']
bulk = connect_sfdc_bulk('prod')
for x in table_names:
job = bulk.create_query_job(x, contentType='CSV', pk_chunking=True)
batch = bulk.query(job, "select Id from %s" % x)
print(bulk.get_batch_list(job))
print('batch status: ' , bulk.is_batch_done)
while not bulk.is_batch_done(batch):
time.sleep(6)
for result in bulk.get_all_results_for_query_batch(batch):
result = unicodecsv.DictReader(result, encoding='utf-8')
# print(result)
bulk.close_job(job)请推荐如何修复此错误,并并行读取salesforce中的大型表。
发布于 2019-12-26 13:05:48
我面临着同样的错误,我是如何解决的就是在get_all_results_for_query_batch中添加“作业”参数(批处理,作业)。
所以代码会是这样的
table_names = ['Account','table1']
bulk = connect_sfdc_bulk('prod')
for x in table_names:
job = bulk.create_query_job(x, contentType='CSV', pk_chunking=True)
batch = bulk.query(job, "select Id from %s" % x)
print(bulk.get_batch_list(job))
print('batch status: ' , bulk.is_batch_done)
while not bulk.is_batch_done(batch):
time.sleep(6)
for result in bulk.get_all_results_for_query_batch(batch,job):
result = unicodecsv.DictReader(result, encoding='utf-8')
# print(result)
bulk.close_job(job)https://stackoverflow.com/questions/56486296
复制相似问题