wenxit1218様お世話になっております。ご返信ありがとうございます。コードは新規で作り直してみることにしました。質問なのですが、
return Promise.all(responses[0].map(function(selfRecord) { ..... }).then(function(records) {
上記部分に下記内容を反映すれば更新処理ができると思います。
の箇所で、もともと.....の箇所にあった下記のコードは消してしまって問題ないのでしょうか?
//関連レコードのフィールドコードの変数を代入
return (new RelatedRecordsFieldManager(relatedRecordsCode)).getRecords(selfRecord).then(function(relatedRecords){
return {
id: selfRecord.レコード番号.value,
record: {
//「申請済商品数小計」のフィールドコードの変数を代入
[subtotal]: {
value: relatedRecords.reduce(function(sum, relatedRecord){
return sum + Number(relatedRecord.数量.value);
}, 0)
}
}
};
});
}));
ためしに、消した状態↓にしてみたところ、下から2行目でsyntax errorが表示され、また更新ボタンが表示されなくなってしまいました。
(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(){
// 5つの関連レコードのフィールドコードが入る配列
var relatedRecordsFieldCodeArray = [‘関連レコード一覧’,‘関連レコード一覧_2’,‘関連レコード一覧_3’,‘関連レコード一覧_4’,‘関連レコード一覧_5’]
return Promise.all(responses[0].map(function(selfRecord) {
return (new RelatedRecordsFieldManager(relatedRecordsFieldCodeArray[0])).getRecords(selfRecord).then(function(relatedRecords) {
return {
id:selfRecord.レコード番号.value,
record:
relatedRecordsFieldCodeArray.reduce(function(acc, elem) {
var subtotal = elem + ‘数値’;
var quantity = elem + ‘数量’;
acc[subtotal] = {
value: relatedRecords.reduce(function(sum, relatedRecord) {
return sum + Number(relatedRecord[quantity].value);
}, 0)
};
return acc;
}, {})
};
});
}));
}).then(function(records){
putRecords(kintone.app.getId(), records).then(function(){
alert(‘更新しました。’);
location.reload();
});
});
});
return event;
});
})();
もし間違っていれば教えていただけますでしょうか。
よろしくお願い致します。
mm