お世話になります。
詳細画面にボタンを設置し、ボタンが押された時に、サブテーブルに行を追加したいのですが、revisionは更新されるものの、テーブルに行が追加されません。
既存のテーブルに追加したいテーブル内容をpushしているのですが、push後のデータをみると、既存のテーブルレコードには”id”がついています。
この"id"を取り除かないとテーブルに反映されないのでしょうか?
処理は以下のようにしています。
サブテーブル名:Taio
// レコード詳細画面が表示された時のイベント
kintone.events.on(‘app.record.detail.show’, function(event) {
var record = event.record;
// 任意のスペースフィールドにボタンを設置
var mySpaceFieldButton = document.createElement(‘button’);
mySpaceFieldButton.id = ‘my_space_field_button’;
mySpaceFieldButton.innerHTML = ‘履歴追加’;
mySpaceFieldButton.addEventListener(‘click’,function() {
var rec = kintone.app.record.get();
record = set_taio_list(rec);
// レコードを更新する
kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, {
app: kintone.app.getId(),
id: kintone.app.record.getId(),
record: record
}, function(resp) {
// 成功時は画面をリロード
location.reload(true);
});
})
kintone.app.record.getSpaceElement(‘my_space_field’).appendChild(mySpaceFieldButton);
});
// テーブル行を追加するために、先にある行をコピーして内容を変更pushする
function set_taio_list(rec) {
var record = rec.record;
var newRow = {};
var row ;
if(!record[‘Taio’].value[0]){
newRow[‘value’] = ‘’;
}else{
row = record[‘Taio’].value[0].value;
var fcodes = Object.keys(row);
fcodes.forEach(function(fcode) {
newRow[fcode] = {
type: row[fcode].type,
value: ‘’
}
});
}
newRow[‘taio_date’][‘value’] = moment().format(“YYYY-MM-DDTHH:mmZ”);
newRow[‘taio_kind’][‘value’] = “処理”;
newRow[‘taio_detail’][‘value’] = “詳細内容をかく”;
var user = kintone.getLoginUser();
newRow[‘taio_tanto’][‘value’] = user.code;
record[‘Taio’][‘value’].push({value: newRow });
return record.Taio;
}
レコードを更新するPUTに送られる recode の内容
{“type”:“SUBTABLE”,“value”:
[{“id”:“64”,“value”:
{“taio_date”:{“type”:“DATETIME”,“value”:“2017-09-28T06:53:00Z”},
“taio_detail”:{“type”:“MULTI_LINE_TEXT”,“value”:“作業開始”},
“taio_tanto”:{“type”:“SINGLE_LINE_TEXT”,“value”:“”},
“taio_kind”:{“type”:“SINGLE_LINE_TEXT”,“value”:“手動”}}},
{“id”:“65”,“value”:
{“taio_date”:{“type”:“DATETIME”,“value”:“2017-09-28T07:27:00Z”},
“taio_detail”:{“type”:“MULTI_LINE_TEXT”,“value”:“でふぉると”},
“taio_tanto”:{“type”:“SINGLE_LINE_TEXT”,“value”:”test1”},
”taio_kind”:{“type”:“SINGLE_LINE_TEXT”,“value”:“”}}},
{“value”:
{“taio_date”:{“type”:“DATETIME”,“value”:“2017-10-03T17:22+09:00”},
“taio_detail”:{“type”:“MULTI_LINE_TEXT”,“value”:“¥n申込時のメール”},
“taio_tanto”:{“type”:“SINGLE_LINE_TEXT”,“value”:”test2”},
”taio_kind”:{“type”:“SINGLE_LINE_TEXT”,“value”:“メール送信処理”}}
}]}
何がいけないのか、足りないのか、どなたか教えていただけないでしょうか。