https://developer.cybozu.io/hc/ja/community/posts/360017977863-レコードの一括更新
上記を参考に,一覧画面でレコードの一括更新をしています。
元コードの★部分を以下のように書き換えて,文字列フィールドの値の変更はできるのですが,チェックボックスをオンにする(オフにする)ことができません。
★return {
★id: record.レコード番号.value,
★record: {
★テスト: {
★value: "テスト"
★}
★}
どのように記述すればいいのでしょうか?
元コードは以下です。
(function() {
"use strict";
var getRecords = function(app, tmpRecords){
var limit = 500;
var tmpRecords = tmpRecords || [];
return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', {
app: app,
query: 'limit ' + limit +' offset ' + tmpRecords.length
}).then(function(response){
tmpRecords = tmpRecords.concat(response.records);
return response.records.length === limit ? getRecords(app, tmpRecords) : tmpRecords;
});
}
var putRecords = function(app, records){
var limit = 100;
return Promise.all(
records.reduce(function(recordsBlocks, record){
if(recordsBlocks[recordsBlocks.length - 1].length === limit){
recordsBlocks.push([record]);
}else{
recordsBlocks[recordsBlocks.length - 1].push(record);
}
return recordsBlocks;
}, [[]]).map(function(recordsBlock){
return kintone.api(kintone.api.url('/k/v1/records', true), 'PUT', {
app: app,
records: recordsBlock
});
})
);
}
kintone.events.on('app.record.index.show', function(event){
if(document.getElementById('updateButton') !== null) return;
var button = document.createElement('button');
button.innerHTML = '一括更新';
button.id = 'updateButton';
kintone.app.getHeaderMenuSpaceElement().appendChild(button);
button.addEventListener('click', function(){
getRecords(kintone.app.getId()).then(function(records){
putRecords(kintone.app.getId(), records.map(function(record){
★return {
★id: record.レコード番号.value,
★record: {
★残・有給のフィールドコード: {
★value: record.残・有給・copyのフィールドコード.value
★}
★}
};
})).then(function(){
alert('更新しました。');
location.reload();
});
});
});
return event;
});
})();