Salesforce.com批量API的Python接口。

salesforce-bulk-yplan的Python项目详细描述


用于访问异步salesforce.com批量的python客户机库 应用程序编程接口。

安装

pipinstallsalesforce-bulk-yplan

身份验证

要访问批量api,您需要向salesforce验证用户。 最简单的方法就是提供usernamepassword。这个库将使用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的基本顺序是:

  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")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=Serialconcurrency=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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android HttpClient cookies   如何使用Java在远程系统上运行SSH命令?   java从字符串数组中的字符串末尾删除“,”   在One plus 3t手机上,当应用程序被终止或从最近的应用程序中刷出时,java Android FCM推送通知不起作用   java如何使垂直滚动条始终位于jtable的末尾   在java中解析迄今为止“未知”的字符串   javascript在Java中获取Nashorn JsonObject   java windows 10和ubuntu可以使用相同的JDK吗?   java在不同的文件中记录不同的日志。但所有日志都放在同一个文件中   具有特定jdk的java Gradle构建项目   xml Java web服务生成错误响应   javascript Jaggery文件更改不显示   java输出二进制搜索树数组   将BufferedReader解析为JSON对象时,java在位置处意外标记文件结尾