JavaScriptでテーブルの行を追加する方法

アクション機能を用いてレコードのコピーを行なおうとしたところ、テーブルのコピーができませんでした。

そこで、コピー先の’app.record.create.show’, 'app.record.edit.show’のイベント時にレコードの取得(GET)APIを利用して、コピー元のテーブルをコピー先のテーブルにコピーする処理を実装し、1行であればコピーをすることができました。

しかし、コピー元のテーブルが複数になる可能性があるため、コピー先のテーブルの行を追加する処理が必要なのですがどのように実装したらよいでしょうか。

(空白の行を追加したいです。)

アクション時の処理のため、レコードIDを必要とする以下の更新処理は利用できない状況です。

https://developer.cybozu.io/hc/ja/articles/200752984-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B4%E6%96%B0%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E6%93%8D%E4%BD%9C%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF

 

sugi さん

アクション機能の場合は、 'app.record.create.show’イベントだけが対象だと思います。

新規レコードの場合、 テーブルに1行分の初期データがありますので、 複製して追加する方法があります。

フィールドコードは、 アプリに合わせてください。

 

(function() {
"use strict";
kintone.events.on("app.record.create.show", function(event) {
var record = event.record;
// 初期テーブル行を複製
var row = record['Table'].value[0].value;
var newRow = {};
var fcodes = Object.keys(row);
fcodes.forEach(function(fcode) {
newRow[fcode] = {
type: row[fcode].type,
value: row[fcode].value
}
});
record['Table'].value.push({ value: newRow });
return event;
});
})();