お世話になります。
表題の通りPromiseを使用した時のreturnが上手くいかず困っています、、、
下記ご教授頂きますよう宜しくお願いします。
■背景・実現したいこと
レコード追加画面、レコード編集画面でカスタムボタンを押下時にテーブルの先頭に行を追加し、既存のサブテーブル情報は下にずらす。
■エラー情報
①まずカスタムボタン押下時に更新情報が表示画面に反映されません。
②しかしコンソールにはREST API更新成功の旨が表示され、行が追加されている事も確認できる
③保存ボタンを押すと「レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました。」が表示される。
■試したこと
return event 処理行うタイミングが正しくないと思ったので下記記載のコードのように(★マーク)何度かか書き換えましたがダメでした、、、
解決方法をご存じの方がいらっしゃいましたら是非ご教授ください。
宜しくお願い致します。
(function() {
"use strict";
kintone.events.on(["app.record.create.show", "app.record.edit.show"], function(event) {
function addRow(id) {
let body = {
'app': 60,
'id': id
};
return kintone.api(kintone.api.url('/k/v1/record.json', true), 'GET', body).then(function(resp) {
let tableData = resp.record.テーブル_0.value;
let tableId = [];
tableData.forEach(val=>{
tableId.push(val.id);
});
let idJson = '{"テーブル_0":{"value":[{"value":{"文字列 __複数行__ 0":{"value":"aaaaa"}}},';
tableId.forEach(val =>{
idJson += '{ "id": "'+val+'"},';
});
idJson = idJson.slice(0,-1);
idJson += ']}}';
console.log(idJson);
let body2 = {
'app': 60,
'id': id,
'record': JSON.parse(idJson)
}
return kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', body2);
}).then(function(resp2) {
console.log("sucsess");
// return event;/////////////////////////////////★
}, function(error) {
console.log(error);
});
}
let id = event.record.$id.value;
// 追加ボタンを設置
const addSpace = kintone.app.record.getSpaceElement('createBotton');
const addButton = document.createElement('button');
addButton.innerHTML = '1行目に追加';
addSpace.appendChild(addButton);
addButton.onclick = function(){addRow(id);};
// return event;/////////////////////////////////////★
});
})();