SOQL上的SalesForce限制?

SOQL上的SalesForce限制?,salesforce,soql,Salesforce,Soql,使用我正在运行的salesforce的PHP库: SELECT ... FROM Account LIMIT 100 但上限总是在25个记录。我选择了许多字段(60个字段)。这是一个具体的限制吗 基本代码: $client = new SforceEnterpriseClient(); $client->createConnection("EnterpriseSandboxWSDL.xml"); $client->login(USERNAME, PASSWORD.SECURITY_

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

SELECT ... FROM Account LIMIT 100
但上限总是在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
}

我不为Salesforce使用PHP库。但我可以先假设一下

SELECT ... FROM Account LIMIT 100
还执行了一些select查询。若您不编写它们,那个么PHP库可能会为您编写;-)

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

  • 该值已设置为25。如果是这种情况,您可以尝试调整它。如果没有显式设置,可以尝试将其设置为更大的值
  • 当SOQL语句选择多个大字段(例如两个或多个long text类型的自定义字段)时,Salesforce返回的记录可能少于batchSize中定义的记录。处理base64编码字段(如Attachment.Body)时,批处理大小也会减少。如果是这种情况,您可以在第一个响应中使用QueryLocator
  • 在这两种情况下,请检查的“完成”和“大小”属性的“完成”和“大小”属性,以确定是否需要使用queryMore以及与SOQL查询匹配的行总数。

    这是我的检查列表

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

    2) 在第一次循环之后,执行queryMore检查是否有更多记录


    3) 确保batchSize未设置为25以避免调控器限制,最好将所有记录添加到列表中,然后对列表中的记录执行所有需要执行的操作。完成后,只需使用以下命令更新数据库:updatelistname

    我只是删除了字段的名称以缩短它。字段的名称已经从WSDL中手动提取出来,这是我在连接salesforce之后向salesforce进行的唯一查询。这无关紧要。你是如何知道25张唱片的?也许你只有25个?我不明白你在说什么。我有一个包含SOQL的字符串,它未经修改就发送到salesforce API,SOQL不会在任何地方生成。。。如果salesforce没有限制,为什么我只能收回25条记录?如果你说的是
    queryMore()
    风格的流媒体,那么不,它不能做到这一点。