# はじめに
前回は1件のレコードの取得と値の更新
を行いました。
今回は複数のレコードの取得
をRESTAPIで行います。
手順
-
数値
というフィールドコードを設置 - 数件、
数値
に値を入れてください。今回のサンプル使用の際、3つレコード作成しそれぞれ1,2,4と設定していただくといいです - 下記コードをコピペ保存してアプリ設定で更新
- 一覧を開きボタンを押して確認してください
下記のように1以上3以下の数値が入力されているレコードを取得して、数値を合計して表示する単純なサンプルとなります。
画像ですとレコードが3つあり、取得されるのが1と2が入っているレコードのみ。その合計値3をアラートで表示してます。
queryの補足
この辺りは最下部の参考をご確認いただきたいですが、
-
数値 >= "1"
となっていますが、クエリを描く際はフィールコード = "値"
という風に値の部分をダブルクォーテーションで囲んであげてください -
order by フィールドコード asc
で昇順。descにすると降順になります -
limit 数字
で取得件数です。現在2024年2月時点では最大500件まで取得できます。それ以上取得したい場合は別の方法で取得はできます -
offset 0
で取得位置を変えられます。該当するレコードが3件あって、2番目から取得したい場合offset 1
を指定してあげてください。特殊な場合に使用するので基本指定しなくても
fieldsの補足
指定しないで省略可です.フィールドが多すぎて、特定のフィールドの値だけ取得したい時に指定してあげてください。
コード
test.js
(() => {
'use strict';
// ボタン押下時に書きかえる
const testFunction = async () =>{
const appId = kintone.app.getId();
// 数値が1以上で3以下が入っているレコードをレコード番号昇順で最大100個。
// 取得する位置(offset)は最初の位置から
const body = {
app: appId,
query: '数値 >= "1" and 数値 <= "3" order by レコード番号 asc limit 100 offset 0',
fields: ['レコード番号', '数値']
};
const res = await kintone.api(kintone.api.url('/k/v1/records.json', true), 'GET', body);
const records = res.records
// 合計値をいれる変数
let total = 0
// 取得したrecordsの数値の合計
records.map(record =>{
// kintoneの値は文字で帰ってくるのでNumberやpaserIntで数値にしてあげてください。
total += Number(record["数値"].value)
})
alert(`合計は${total}だよ`);
}
// レコードの一覧画面で実行していきます
kintone.events.on('app.record.index.show', (event) => {
// ボタンの設置と作成
const button = document.createElement("button")
button.innerText = "実行"
button.addEventListener("click",testFunction)
// kintoneに表示する要素(位置)を取得して、ボタンを設置。
const el = kintone.app.getHeaderMenuSpaceElement()
el.appendChild(button)
// 必ずeventを返してあげる
return event
});
})();
おわりに
RESTAPIを使って複数のレコードを取得
してみました。kintoneの使用頻度も高く、特定の条件に揃ったレコードを取得集計でき、これを使うだけで社内でスーパーヒーロ-になれる可能性もなくはないかも知れません
bodyに設定したパラメータ周りは詳しく公式ドキュメントにもわかりやすく書いてありますので参考ご確認ください。
それでは
楽しいkintoneライフを
参考