kintone 約1か月です。
質問させていただきます。
レコード内のテーブルの内容を更新した場合に
その値を含めて特定の複数のレコードの内容を計算して、
更新を実施したいと思っています。
元々の作りはざっくりですが以下のような処理にしていました。
(function() {
"use strict";
kintone.events.on(['app.record.create.submit','app.record.edit.submit','app.record.index.edit.submit'], function (event){
//ある商品データのレコード
var get_param = {
app: XX,
query : 省略
};
// query条件に合ったレコードを取得
return kintone.api('/k/v1/records', 'GET', get_param).then(function(resp) {
//レコード単位
for(var i = 0; i < record.length; i++){
//テーブル単位
for(var k = 0; k < table.length; k++){
//とあるフィールドのデータを計算
//例:作成日が今月の売上データの値を加算する
}
}
return resp;
}).then(function(result){
// 売上合計値を格納するためのレコードを別途用意していて
// そのレコードに更新をかける
var params = {
app: kintone.app.getId(),
id: thismonth_id, // 変更したいレコードID
record: {
'単価': {
value: value
}
}
};
return kintone.api(kintone.api.url('/k/v1/record'), 'PUT', params).then(function(resp) {
console.log(resp);
return resp;
}).catch(function(){
event.error = '例外発生。';
return event;
});
});
})();
しかしこの方法だと、値をかえて保存しても
もともと保存されているレコードデータを使って計算するので
2回保存しないといけないことが分かりました。
そこでevent.onで
'app.record.edit.change.を使ってみたのですが
Uncaught Error: app.record.edit.change.XX is not allowed to return "Thenable" object.
というエラーが発生してしまいます。
フィールドは「数値」を使っています。
何かお気づきの点がありましたらアドバイスよろしくお願いします。
また情報不足等ありましたらご指摘ください。