Python接口访问Salesforce.com批量API。
项目描述
Python客户端库,用于访问异步Salesforce.com批量API。
安装
pip install salesforce-bulk-yplan
身份验证
要访问批量API,您需要将用户身份验证到Salesforce。最简单的方法是提供用户名和密码。此库将使用salesforce-oauth-request包(您必须安装)来运行Salesforce OAUTH2 Web流程并返回访问令牌。
from salesforce_bulk import SalesforceBulk
bulk = SalesforceBulk(username=username,password=password)
如果您有访问会话ID和实例URL的权限,也可以直接使用这些信息。
from urlparse import urlparse
from salesforce_bulk import SalesforceBulk
bulk = 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")
while not bulk.is_batch_done(job, batch):
sleep(10)
bulk.close_job(job)
>>>
for row in bulk.get_batch_result_iter(job, batch, parse_csv=True):
... print row #row is a dict
批量插入、更新、删除
所有批量上传操作的工作方式相同。您在创建作业时设置操作。然后提交一个或多个指定要插入/更新/删除的记录的文档。在删除时,您应只提交每个记录的ID。
为了提高效率,您应使用post_bulk_batch方法来提交每个数据批次。(注意,批次可以包含最多10,000条记录,大小为1GB。)您将生成器或迭代器传递到该函数中,它将通过POST将数据流式传输到Salesforce。如果您需要发送CSV格式化数据的帮助,可以使用salesforce_bulk.CsvDictsAdapter类。它返回字典的迭代器,并返回产生CSV数据的迭代器。
完整示例
from salesforce_bulk import CsvDictsAdapter
job = bulk.create_insert_job("Account", contentType='CSV')
accounts = [dict(Name="Account%d" % idx) for idx in xrange(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)
在 setup.py 中删除 salesforce-oauth-request-yplan 作为硬性要求(以更接近原始版本)。
1.2.0 (2016-07-14)
恢复 HISTORY.rst。
Python2 和 Python3 兼容性。
复制 salesforce-bulk-yplan 包。
从现在起依赖 salesforce-oauth-request-yplan。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
salesforce-bulk-yplan-1.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 27b46a0b824df42272631efb2f4c547673d5672258b92395de7c0e4e820f9e36 |
|
MD5 | cfb7939c78d4344cdaa763da711ff67d |
|
BLAKE2b-256 | caf740ffbefd4093ec7358612bb5ba88c546e9153086221d34b874d863ec0225 |