跳转到主要内容

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的基本顺序是

  1. 创建一个新作业

  2. 将一个或多个批次添加到作业中

  3. 等待每个批次完成

  4. 关闭作业

批量查询

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=Serialconcurrency=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 (14.9 kB 查看哈希值)

上传时间 源代码

支持者