tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:【大量データ処理】JSforceとqueryMoreでレコードの一括表示

JavaScriptからSalesforce APIでクエリを実行した場合、一度に取得できるレコードは2000件までですが、queryMoreメソッドを利用することで続きのレコードを取得できます。

Salesforce Developers

本来はisDone()で次のレコードが存在するかを判定してqueryMore()を実行という流れですが、JSforceには自動的にqueryMoreするautoFetchのオプションあるみたいです。

f:id:tyoshikawa1106:20150330082330p:plain

JSforce queryMore (autoFetch)


これを利用することで簡単にレコードの一括表示を行うことができました。試しに12万件のレコードを表示してみたところ、時間は掛かりましたがタイムアウトにならずに表示できました。(AngularJSを使った検索画面で確認したので、他のやり方ならもう少し早く表示できるかもしれません。)

f:id:tyoshikawa1106:20150330022607p:plain


APIの使用制限の注意が必要ですが、Apexで厳しい場合はこの方法で対応できそうです。

デモ動画