Salesforce.com批量API的Python接口。
salesforce-bulk-yplan的Python项目详细描述
用于访问异步salesforce.com批量的python客户机库 应用程序编程接口。
安装
pipinstallsalesforce-bulk-yplan
身份验证
要访问批量api,您需要向salesforce验证用户。 最简单的方法就是提供username和 password。这个库将使用salesforce-oauth-request 运行Salesforce OAuth2 Web流的包(必须安装) 并返回一个访问令牌。
fromsalesforce_bulkimportSalesforceBulkbulk=SalesforceBulk(username=username,password=password)
或者,如果您运行有权访问会话ID和实例URL 您可以直接使用:
fromurlparseimporturlparsefromsalesforce_bulkimportSalesforceBulkbulk=SalesforceBulk(sessionId=sessionId,host=urlparse(instance_url).hostname)
操作
驱动批量api的基本顺序是:
- 创建新工单
- 向作业中添加一个或多个批次
- 等待每一批完成
- 关闭作业
批量查询
SalesforceBulk.create_query_job(object_name,contentType='CSV',concurrency=None)
示例
job=bulk.create_query_job("Contact",contentType='CSV')batch=bulk.query(job,"select Id,LastName from Contact")whilenotbulk.is_batch_done(job,batch):sleep(10)bulk.close_job(job)>>>forrowinbulk.get_batch_result_iter(job,batch,parse_csv=True):...printrow#row is a dict
批量插入、更新、删除
所有批量上载操作的工作原理相同。当你 创建作业。然后提交一个或多个指定 包含要插入/更新/删除的列的记录。删除时应 只提交每个记录的ID。
为了提高效率,您应该使用post_bulk_batch方法 每一批数据。(注意,批处理最多可以记录10000个记录) 大小为1GB。)将生成器或迭代器传递给此函数 它将通过post将数据流传送到salesforce。有关发送CSV的帮助 格式化数据可以使用Salesforce_Bulk.csvdictsadapter类。 它接受返回字典的迭代器并返回迭代器 它生成csv数据。
完整示例:
fromsalesforce_bulkimportCsvDictsAdapterjob=bulk.create_insert_job("Account",contentType='CSV')accounts=[dict(Name="Account%d"%idx)foridxinxrange(5)]csv_iter=CsvDictsAdapter(iter(accounts))batch=bulk.post_bulk_batch(job,csv_iter)bulk.wait_for_batch(job,batch)bulk.close_job(job)print"Done. Accounts uploaded."
并发模式
创建作业时,请传递concurrency=Serial或 concurrency=Parallel设置作业的并发模式。
历史记录
1.2.1(2016-07-15)
- 删除salesforce-oauth-request-yplan作为setup.py中的硬要求(以更接近于原始要求)
1.2.0(2016-07-14)
- 带回了HISTORY.rst。
- python2和python3的兼容性。
- 分叉的salesforce-bulk-yplan包
- 从现在开始依赖于salesforce-oauth-request-yplan。