新規投稿
フォローする

レコード全件取得

N:N(複数対複数)の関連レコード一覧を自作するhttps://developer.cybozu.io/hc/ja/articles/360000528186-N-N-%E8%A4%87%E6%95%B0%E5%AF%BE%E8%A4%87%E6%95%B0-%E3%81%AE%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E3%82%92%E8%87%AA%E4%BD%9C%E3%81%99%E3%82%8B 

を参考に500件の関連レコードを一覧にするはできたのですが、

これを500件ではなく、全件取得するにはどのようにすれば良いのでしょうか?

'query': 'record_no in ("' + record.record_no.value + '") order by レコードID asc limit 500',を入れている場合、絞り込みした結果から500件でよろしいでしょうか?

500件取得してから絞り込むのでしょうか?

前者であればそうそう500件超えることがないので大丈夫なのですが・・・

(function() {
 'use strict';
 kintone.events.on(['app.record.detail.show', 'app.record.edit.show'], function(event) {
  var record = event.record;
  // 増殖バグ回避
  if (document.getElementById('duties_list') !== null) {
   return event;
  }
  // To HTML escape
  function escapeHtml(str) {
   return str
   .replace(/&/g, '&')
   .replace(/</g, '&lt;')
   .replace(/>/g, '&gt;')
   .replace(/"/g, '&quot;')
   .replace(/'/g, '&#39;');
  }
  // スペースを取得
  var subtableSpace = kintone.app.record.getSpaceElement('duties_list');
  // Rest API
  var params = {
   'app': 1597,
   'query': 'record_no in ("' + record.record_no.value + '") order by レコードID asc limit 500',
   'fields': ['$id','申請番号', '件名']
  };
  kintone.api('/k/v1/records', 'GET', params).then(function(resp) {
   // success:分掌別案件一覧を表示する
   var tableRecords = resp.records;
   var dutiesTable = '<table class="kintoneplugin-table">';
   dutiesTable += '<thead>';
   dutiesTable += '<tr>';
   dutiesTable += '<th class="kintoneplugin-table-th" style="width: 250px;">';
   dutiesTable += '<span class="title">';
   dutiesTable += '申請番号';
   dutiesTable += '</span>';
   dutiesTable += '</th>';
   dutiesTable += '<th class="kintoneplugin-table-th" style="width: 250px;">';
   dutiesTable += '<span class="title">';
   dutiesTable += '件名';
   dutiesTable += '</span>';
   dutiesTable += '</th>';
   dutiesTable += '</tr>';
   dutiesTable += '</thead>';
   dutiesTable += '<tbody>';
   for (var i = 0; i < tableRecords.length; i++) {
    dutiesTable += '<tr>';
    dutiesTable += '<td>';
    dutiesTable += '<div class="kintoneplugin-table-td-control">';
    dutiesTable += '<a href="/k/1597/show#record=' + escapeHtml(tableRecords[i].$id.value);
    dutiesTable += '" target="_blank">';
    dutiesTable += escapeHtml(tableRecords[i].申請番号.value);
    dutiesTable += '</a>';
    dutiesTable += '</div>';
    dutiesTable += '</td>';
    dutiesTable += '<td>';
    dutiesTable += '<div class="kintoneplugin-table-td-control">';
    dutiesTable += escapeHtml(tableRecords[i].件名.value);
    dutiesTable += '</div>';
    dutiesTable += '</td>';
    dutiesTable += '</tr>';
   }
   dutiesTable += '</tbody>';
   dutiesTable += '</table>';
   subtableSpace.innerHTML = dutiesTable;
   }, function(error) {
    // error:エラーの場合はメッセージを表示する
    var errmsg = 'レコード取得時にエラーが発生しました。';
    // レスポンスにエラーメッセージが含まれる場合はメッセージを表示する
    if (typeof error.message !== 'undefined') {
     errmsg += '\n' + error.message;
    }
    subtableSpace.appendChild(document.createTextNode(errmsg));
  });
  return event;
 });
})();

 

0

2件のコメント

Avatar
江田篤史

shima様

お世話になっております.
cstapの江田と申します.

kintone REST APIで一度に取得できる,レコード数は500件までとなります.
https://developer.cybozu.io/hc/ja/articles/202331474#step2

500件以上のレコードを取得する場合は,複数回に分けてリクエストする必要があります.

ナレッジノートで,500件以上の関連レコードを取得する方法を紹介しているので,よろしければご覧ください.
https://developer.cybozu.io/hc/ja/community/posts/360017851006

0
Avatar
shima

江田様

お世話になります。

ご回答ありがとうございます。

queryを利用しているため、しばらくは500件は大丈夫だと思いますが、

近い将来500件以上得する必要があることから

頂いた情報をもとにプログラムの修正を行います。

ご回答有難うございました。

0
ログインしてコメントを残してください。