0

使用我正在运行的 salesforce 的 PHP 库:

SELECT ... FROM Account LIMIT 100

但 LIMIT 始终以 25 条记录为上限。我正在选择许多字段(60 个字段)。这是一个具体的限制吗?

骨架代码:

$client = new SforceEnterpriseClient();
$client->createConnection("EnterpriseSandboxWSDL.xml");
$client->login(USERNAME, PASSWORD.SECURITY_TOKEN);

$query = "SELECT ... FROM Account LIMIT 100";
$response = $client->query($query);

foreach ($response->records as $record) {
   // ... there's only 25 records
}
4

4 回答 4

0

我不使用 Salesforce 的 PHP 库。但我可以假设在做之前

SELECT ... FROM Account LIMIT 100

已经执行了更多的选择查询。如果您不对它们进行编码,那么 PHP 库可能会为您编写代码;-)

于 2012-10-11T07:41:20.593 回答
0

这是我的检查清单

1) 确保您有超过 25 条记录

2)在你的第一个循环之后做 queryMore 检查是否有更多的记录

3) 确保 batchSize 没有设置为 25

于 2012-10-20T12:04:12.583 回答
0

为避免州长限制,最好将所有记录添加到列表中,然后对列表中的记录执行您需要执行的所有操作。完成后,只需使用以下命令更新数据库: update listName;

于 2015-03-09T15:50:36.753 回答
0

Salesforce soap API查询方法将只返回有限数量的行。其返回值可能低于您定义的限制有几个原因。

  1. QueryOptions标头 batchSize已设置为 25。如果是这种情况,您可以尝试调整它。如果没有明确设置,您可以尝试将其设置为更大的值。
  2. When the SOQL statement selects a number of large fields (such as two or more custom fields of type long text) then Salesforce may return fewer records than defined in the batchSize. The reduction in batch size also occurs when dealing with base64 encoded fields, such as the Attachment.Body. If this is the case they you can just use queryMore with the QueryLocator from the first response.

In both cases, check the done and size properties of the done and size properties of the QueryResult to determine if you need to use queryMore and the total number of rows that match the SOQL query.

于 2012-10-12T19:01:58.277 回答