こちらの投稿を参考に、レコード一覧画面に設置したボタンを押すと、kintoneAPIを使用してレコードの編集を行う処理を書いています。
レコード一覧画面に表示されているレコードすべてに対し、フィールドコード「stamp」のフィールド(ラジオボタン)を「未確認」から「確認済み」に変更するような処理を想定しています。
以下ソース中のfor文が回り、レコード一覧のレコードを撫でていく処理までは正常に行えた(window.alertが出た)のですが、肝心のレコードの編集部分がうまくいきません。
通信内容の確認(参考ページ)を行ってみると「records」の中身が空っぽのままリクエストが飛んでいるように見えます。
下記のソースについて間違い箇所や抜けなど、見て頂けますと幸いです。
よろしくお願いいたします。
kintone.events.on(["app.record.index.show"], (event) => {
let records = event.records;
let recNum = records.length;
let appId = kintone.app.getId();
let recs;
let body = {
app: appId,
records: []
};
//ボタン増殖をふせぐ
if (document.getElementById('my_index_button') !== null) {
return;
}
const myIndexButton = document.createElement('button');
myIndexButton.id = 'my_index_button';
myIndexButton.innerText = '確認完了ボタン';
myIndexButton.onclick = () => {
const myHeaderSpace = kintone.app.getHeaderSpaceElement();
for (let i = 0; i < recNum; i++) {
recs = records[i].$id.value;
window.alert(i + "番目 id->" + recs);
body.records.push(
{
'id': Number(recs),
'record': {
'stamp': {
value: '確認済み',
}
},
}
)
}
};
//ボタンの配置
kintone.app.getHeaderMenuSpaceElement().appendChild(myIndexButton);
return kintone.api(kintone.api.url('/k/v1/records.json', true), 'PUT', body, function (resp) {
// success
console.log(resp);
}, function (error) {
// error
console.log(body);
console.log(error);
});
});