はじめに
前回はRESTAPIを使用した複数のレコードの取得
を試しました。
今回は複数のレコードの更新
のサンプルになります。
手順
- アプリの設定は前回と同じとします。前回の記事と同じように
数値
フィールドを設定してください。 - 下記コードをコピペ保存してアプリ更新
- 一覧でボタンを押下して実行
説明
今回は数値が1
という値を持つレコード全てを取得し、数値を2
という値に書き換えるだけのサンプルです。
- putBodyにappと更新するrecordsを記述します
- recordsは,
{id:レコードのID, record:{フィールドコード:{value:値}}}
という各レコードの更新するデータの配列を入れてあげることで、各レコードの指定したフィールドの値を更新できます
処理として今回は、
- 取得してきたレコードをmapでレコード数分回っていき、全て2という値に書き換える
- putBodyのrecordsに
records.map
を使用するとreturnで返ってきた内容が配列で作成されます。シンプルに配列を作成するに使える関数です
コード
test.js
(() => {
"use strict";
// ボタン押下時に書きかえる
const testFunction = async () => {
const appId = kintone.app.getId();
const body = {
app: appId,
query:
'数値 = "1"',
};
const res = await kintone.api(
kintone.api.url("/k/v1/records.json", true),
"GET",
body
);
const records = res.records;
if(records.length === 0){
alert("recordsの取得ができませんでした。数値が1のレコードがありません")
return
}
// 取得したrecordsの数値の合計
records.map((record) => {
// 取得した対象のレコードを2という値に書き換える
record["数値"].value = 2;
});
// 書き換えたレコードをmapでまわしながら対象のフィールドだけ更新
const putBody = {
app: appId,
records: records.map((record) => {
return {
id: record["レコード番号"].value,
record: {
数値: {
value: record["数値"].value,
},
},
};
}),
};
console.log(putBody);
await kintone.api(
kintone.api.url("/k/v1/records.json", true),
"PUT",
putBody
);
// 画面の更新
location.reload();
};
// レコードの一覧画面で実行していきます
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ライフを
また参考は下記に貼っておきます。
参考