全レコードの取得方法

目次

はじめに

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

デモ環境

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

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

kintone-rest-api-client

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

利用方法

「JavaScript / CSSでカスタマイズ」のページで、次の画像を参考にkintone-rest-api-clientのURLを追加します。

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

今回は3.2.1のバージョンを使います。
Cybozu CDNで公開しているバージョンは、 Cybozu CDNで確認してください。

ソースコード

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*
 * 全レコードを取得するサンプルプログラム
 * Copyright (c) 2016 Cybozu
 *
 * Licensed under the MIT License
 * https://opensource.org/license/mit/
 */

(() => {
  'use strict';

  // レコード一覧画面表示イベント
  kintone.events.on('app.record.index.show', async (event) => {
    // kintone-rest-api-clientを使う準備
    const client = new KintoneRestAPIClient();
    // kintone-rest-api-clientのgetAllRecordsを使って全レコードを取得する
    const res = await client.record.getAllRecords({app: kintone.app.getId()});
    // コンソールに全レコードを表示する
    console.log(res);

    // 最後にreturn event; をお忘れなく
    return event;
  });

})();

アプリIDの指定

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

16
17
// kintone-rest-api-clientのgetAllRecordsを使って全レコードを取得する
const res = await client.record.getAllRecords({app: kintone.app.getId()});

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

16
17
// kintone-rest-api-clientのgetAllRecordsを使って全レコードを取得する
const res = await client.record.getAllRecords({app: 100}); // 他のアプリIDを指定

クエリで検索条件の指定

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

16
17
// kintone-rest-api-clientのgetAllRecordsを使って全レコードを取得する
const res = await client.record.getAllRecords({app: kintone.app.getId(), condition: '数値 > 100'}); // 検索条件を指定

おわりに

全レコード取得には、レコード数に比例して時間がかかってしまいます。
レコード取得のパフォーマンス改善については、 構築運用Tipsを参照してください。