cybozu developer network

カテゴリー内の他の記事

全レコードの取得方法

はじめに

kintone-rest-api-clientを利用した、全レコードの取得方法をご紹介します (^^)

デモ環境

デモ環境で実際に動作を確認できます。
https://dev-demo.cybozu.com/k/76/

ログイン情報は cybozu developer network デモ環境 で確認してください。

kintone-rest-api-client

kintone-rest-api-clientは、 kintone REST API を JavaScriptで扱う際に必要な処理をまとめたライブラリです。getAllRecordsメソッドは全レコードを一括で取得します。1万件以上のレコードを一括で取得する場合でも、offset の制限値を考慮する必要がありません。
kintone-rest-api-clientの詳しい使い方についてはこちらのページを参照ください。

利用方法

Javascript / CSSでカスタマイズ のページで下記URLを追加します。
例)バージョン3.2.1の場合

https://js.cybozu.com/kintone-rest-api-client/3.2.1/KintoneRestAPIClient.min.js

Cybozu CDN で公開しているバージョンは、こちらのページでご確認ください。

mceclip0.png

 

ソースコード

アプリIDの指定

サンプルでは、現在開いているアプリのID(kintone.app.getId())を渡しています。

別のアプリを指定したい場合は例えば以下のようにアプリIDを指定できます。

クエリで検索条件の指定

検索条件は以下のように指定します。

最後に

全レコード取得には、レコード数に比例して時間がかかってしまいます。
レコード取得のパフォーマンス改善についてはこちらのページをご参照ください。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
菅原直樹

データが残ってしまうので、

通信クラスで初期化するときに

 

function KintoneRecordManager() {
this.appId = kintone.app.getId();
    this.records = [];
}

 

としないと、Arrayが初期化されずに全てpushされる形になります。

 

Avatar
cybozu Development team

菅原様

Arrayの初期化についてのご指摘ありがとうございます。ソースコードの32行目を修正いたしました。

Avatar
向井武士

1万件を越える場合、これも影響出ませんか?

Avatar
cybozu Development team

向井様

はい、本記事の最上部に記載のとおり、こちらは offset を利用したレコード一括取得をしているため、取得結果が1万件を超える場合、offset の上限値にかかります。

1万件を越える可能性がある場合は、以下の記事を参考ください。

offset の制限値を考慮したレコード一括取得について

 

2023年2月21日追記

当記事は kintone-rest-api-client を使ったコードに書き換えました。
そのため、1万件以上のレコードを一括で取得する場合でも、offset の制限値を考慮する必要がありません。

cybozu Development teamにより編集されました
Avatar
向井武士

cybozu Development team様

思いっ切りトップに書いてくださっていましたね。

大変失礼しました。

サインインしてコメントを残してください。