Как запросить более 5000 записей в приложении Flex Salesforce? - PullRequest
0 голосов
/ 14 января 2011

Я столкнулся с проблемой, когда Salesforce будет возвращать только 1000 записей в мое приложение Flex из запроса. Я хотел бы получить больше, чем это (например, 5000-10000). Возможно ли это?

Вот что я пробовал (приложение - приложение F3WebApplication)
примечание: этот код работает, мне просто нужно, чтобы он возвращал больше результатов:

app.wrapper.query(query, 
        new mx.rpc.Responder(
            function(rows:ArrayCollection):void {
                if(user_list != null){
                    filteredList = addOwnerData(rows);
                    filteredList = PutChildrenWithParents(filteredList);
                } else {
                    filteredList = PutChildrenWithParents(rows);
                }

                my_accounts_raw = new ArrayCollection(filteredList.toArray());
                refreshSearchData(filteredList);
            },
            function():void{_status = "apex error!";}
        )
    );   
}

Я также попробовал app.connection.Query, чтобы затем использовать queryMore, но не могу заставить его работать вообще.
Есть идеи?

Ответы [ 2 ]

1 голос
/ 17 января 2011

соединение имеет доступ к query и queryMore, и обратный вызов получает queryResult вместо arrayCollection. Логика выглядит примерно так:

<code>
app.connection.query("SELECT Id, Name from ETC__c", new SfdcAsyncResponder(getResult,showError));</p>

<p>public function getResult(results:QueryResult):void {
  if(!results.done) {app.connection.queryMore(results.queryLocator,new SfdcAsyncResponder(getResult,showError));}
  / ... /
}

Обратите внимание, что если вы не используете функциональность оболочки, вам, вероятно, потребуется вручную координировать автономные данные (если это AIR).

НТН

1 голос
/ 14 января 2011

query / queryMore - это путь, вам понадобится значение queryLocator из первого результата запроса, чтобы вызвать queryMore.

...