2011-09-01 3 views
4

우선, 나는 이것을 개발하는 사람이 아니지만 나는 SO 계정을 가진 사람입니다. SF 지식은 거의 존재하지 않습니다.Salesforce - 쿼리가 더 많이 존재할 때 500 개의 행만 반환합니다.

기본적으로 문제는 쿼리가 PHP 스크립트에서 500 행만 반환한다는 것입니다. 그러나 우리가 PHP 내에서 그 쿼리를 다른 것으로 대체 할 때, 그 쿼리는 1500 행 이상을 반환합니다. 첫 번째 쿼리에서 반환해야하는 500 개가 넘는 행이 있습니다. 데이터 탐색기를 사용하여 확인했습니다.

SELECT Id,WEBSITE_ExternalId__c,D_STANDARD_Age__c, 
.............. 
from Feedback__c 
ORDER BY CreatedDate ASC 

모든 단서 :

여기에 첫 번째 쿼리의 : 두 번째는 여기

SELECT Id,WEBSITE_ExternalId__c,Name, 
............. 
from Account 

그리고 무엇입니까? 이 정보가 충분하지 않을 수도 있지만 Salesforce에 대해 많이 알지 못해서 고맙습니다. 당신이 이것에 대답 할 필요가있는 것이 있다면, 물어 보아라. 나는 내가 할 수있는 것을 볼 것이다.

+0

쿼리는 서로 다른 두 테이블을 참조합니다. 그들은 같은 수의 행을 갖기로되어 있습니까? – Icarus

+0

데이터베이스에 'CAMEL_Case_ARE_NOT_good'라는 끔찍한 명명 규칙이 있습니다. – ajreal

+0

@ajreal : 클라이언트가 실제로 않습니다. 이것들은 우리에 의해 선택되지 않았습니다. 그런 식으로 답변을 다시 포맷 해 주셔서 감사합니다. –

답변

3

큰 결과를 얻으려면 쿼리 호출에 의해 결과가 일괄 적으로 처리되므로 다음 배치를 가져 오는 데 사용할 수있는 토큰과 함께 많은 행이 생성됩니다. 이것이 결과의 마지막 배치인지 여부를 나타내는 쿼리 결과에 done 플래그가 있습니다. done이 false 인 경우 queryMore를 호출하고 queryLocator를 전달해야합니다 (queryResult 구조에서도 반환 됨). query/queryMore의 docs/examples를 참조하십시오.

-1

설정> 개발> API에서 최신 WSDL을 사용하고 있는지 확인하고 PHP 설정에서 WSDL 캐시가 비활성화되어 있는지 확인하십시오 (https://help.salesforce.com/apex/HTViewSolution?id=786331&language=en).

또한 가이드에서 언급 한 것처럼 쿼리 개체의 기본값은 500 개입니다. 큰 호출에 queryMore()를 사용하는 것 외에도 일괄 처리 크기 설정에 대한 문서는 여기에서 http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_soql_changing_batch_size.htm을 참조하십시오.

관련 문제