学习目标
- 描述异步请求与同步请求的不同之处。
- 在Workbench中使用REST Explorer创建批量作业。
- 通过向作业添加数据将数据导入到您的Salesforce组织。
- 监控工作的进展。
- 得到一份工作的结果。
批量API和异步请求
将数据导入您的组织
创建一个批量作业
- 登录到您的Trailhead DE组织并导航到Workbench。
- 对于环境,请选择 Production. 对于API版本,请选择可用的最高编号。确保您选择 I agree to the terms of service.
- 点击 Login with Salesforce.
- 在顶部菜单中,选择 .
- 我们正在使用/ services / data,这是与REST API相同的端点。批量API使用与REST API使用的框架相同的框架,这意味着批量API支持许多相同的功能,例如OAuth认证。
- 与SOAP API类似,API版本号不包含v前缀。
- /jobs/ingest 表示我们正在访问创建批量API作业的资源。
{
"operation" : "insert",
"object" : "Account",
"contentType" : "CSV",
"lineEnding" : "CRLF"
}
您的REST资源管理器看起来像这样。

点击 Execute 并签出响应。

答复包括各种有关工作的属性,其中大部分现在对我们没有用处,因为我们还没有添加数据。虽然我们要注意一些属性。查看作业ID(id)并将其复制到文本文件中。我们用它来将数据添加到作业中,并检查作业的状态。还要检查州属性。创建作业时,立即将其设置为打开状态。这意味着它已经准备好开始接收数据。最后,看看contentUrl属性。该属性显示我们用来加载作业数据的URL。
将数据添加到作业
在Workbench中创建一个新的请求。将URI文本框中的文本替换为以下内容: /services/data/XX.0/jobs/ingest/jobID/batches. 用您复制的作业ID替换jobID。对于HTTP方法,请选择PUT。
"Name"
"Sample Bulk API Account 1"
"Sample Bulk API Account 2"
"Sample Bulk API Account 3"
"Sample Bulk API Account 4"
单击 Headers 并将Content-Type更改为 text/csv. 你的请求看起来像这样。

点击 Execute.
响应仅包含状态码201(已创建),表示Salesforce已成功接收作业数据。
关闭工作
{
"state" : "UploadComplete"
}
检查作业的状态
在API中,我们使用 /jobs/ingest/jobID 资源来监视作业。将URI文本框中的文本替换为以下内容: /services/data/XX.0/jobs/ingest/jobID, 并使用通常的替换。对于HTTP方法,请选择GET。
点击 Execute. 你看到这样的东西。

如果您的状态仍然是UploadComplete而不是JobComplete,则Salesforce仍在处理该作业。别担心,它会在几分钟内处理完毕。同时,当你回来的时候,去对待一杯美酒,再次尝试同样的要求。如果你很幸运,你的工作已经完成,继续取回工作结果,或者随时都可以休息一下。
获得工作结果
一旦作业处于JobComplete状态(或失败状态),我们就可以以成功和失败的处理记录的形式获取结果信息。 我们先看看成功处理的记录。在Workbench的REST资源管理器中,将URI文本框中的文本替换为以下内容:/services/data/XX.0/jobs/ingest/jobID/successfulResults, 并使用通常的替换。对于HTTP方法,请选择GET。
点击 Execute. 你看到这样的东西。

/services/data/XX.0/jobs/ingest/jobID/failedResults, 并使用通常的替换。对于HTTP方法,请选择GET。
点击 Execute. 结果看起来像这样。

Salesforce提供一个CSV,其中包含处理期间遇到错误的记录列表以及记录标识和错误消息。在这种情况下,所有记录都成功插入,所以记录列表是空的。整齐的工作,队长!