initRow実行時にコンソールのエラーにkintone.app.record.get()できないよと出てると思うので、initRowにイベントのrecordを渡して、処理終わったら返してあげてください。
(() => {
'use strict';
kintone.events.on(
[
'app.record.create.show',
'app.record.edit.show',
], function (event) {
const subTotals = {};
const tableRecords = event.record.テーブル.value;
// テーブル内の各レコードを商品名ごとに集計する
for (let i = 0; i < tableRecords.length; i++) {
const productName = tableRecords[i].value['商品名'].value;
if (!subTotals[productName]) {
subTotals[productName] = 0;
}
subTotals[productName] += parseFloat(tableRecords[i].value['数量'].value);
}
// 集計結果を新しいテーブルレコードにセットする
const table2Records = [];
for (const productName in subTotals) {
if (Object.prototype.hasOwnProperty.call(subTotals, productName)) {
const record = {
value: {
'品名': {
value: productName,
type: 'SINGLE_LINE_TEXT',
},
'合計数量': {
value: subTotals[productName],
type: 'NUMBER',
},
},
};
table2Records.push(record);
}
}
console.log(table2Records)
// コピー先テーブルを初期化
event.record = initRow("テーブル2", event.record);
// 新しいテーブルレコードを更新する
event.record.テーブル2.value = [...event.record.テーブル2.value, ...table2Records]
return event;
});
})();
// テーブル初期化関数-イベントのレコードを渡す
function initRow(table_name,record) {
for(let i = record[table_name].value.length; i >= 0; i--){
record[table_name].value.splice(i, 1);
}
return record
}