ボタン押下時に別アプリのサブテーブルの内容をコピーする

javascript初心者で初歩的な質問かもしれませんが、よろしくお願い致します。

下記のような動作をイメージしております。

【Aアプリ】

サブテーブルを含む内容

 

【Bアプリ】

(登録・変更処理時)

ルックアップでAアプリのサブテーブル以外の内容を取得。

ボタンを設置し、そのボタンが押下されたら、Aアプリのサブテーブルの内容をBアプリのサブテーブルへコピー。

ソースは下記のように書きましたが、うまく動作していません。

デバックで確認すると、

Aアプリからのサブテーブル内容取得、

Bアプリのサブテーブル内容設定

までは問題なく処理されているようですが、画面に反映されません。

どこがおかしいのかご教示頂ければと思います。

よろしくお願い致します。

 

--------------[ソース from]--------------

(function($) {
“use strict”;

var events = [‘app.record.create.show’,‘app.record.edit.show’]

kintone.events.on(events, function(event) {

var rec = event.record;
var params = {
app: 20,
id: (rec[“srec_no”][“value”]) * 1
};

// SPACE部分にボタンを設置
var btn_1 = document.createElement(‘button’);
btn_1.id = ‘btn_1’;
btn_1.innerHTML = ‘収支表明細データ取得’;
btn_1.onclick = function() {

rec[“Table”][“value”]=[];

kintone.api(
kintone.api.url(‘/k/v1/record’, true), // pathOrUrl
‘GET’, // method
params, // params
function(resp) { // 成功時のcallback
var srec = resp.record

for (var i = 0; i < srec[“Table”][“value”][“length”]; i++) {

var newRow = {
value: {
tbl_data_1: {
type: srec[“Table”][“value”][i][“value”][“tbl_data_1”][“type”],
value: srec[“Table”][“value”][i][“value”][“tbl_data_1”][“value”]
},
//商品名
tbl_data_2: {
type: srec[“Table”][“value”][i][“value”][“tbl_data_2”][“type”],
value: srec[“Table”][“value”][i][“value”][“tbl_data_2”][“value”]
},
//数量
tbl_data_3: {
type: srec[“Table”][“value”][i][“value”][“tbl_data_3”][“type”],
value: srec[“Table”][“value”][i][“value”][“tbl_data_3”][“value”]
},
//商品単価
tbl_data_4: {
type: srec[“Table”][“value”][i][“value”][“tbl_data_4”][“type”],
value: srec[“Table”][“value”][i][“value”][“tbl_data_4”][“value”]
},
//商品金額
tbl_data_5: {
type: ‘CALC’,
value: srec[“Table”][“value”][i][“value”][“tbl_data_5”][“value”]
}
}
}

rec[“Table”][“value”].push(newRow);

}
return(event);
});

}
kintone.app.record.getSpaceElement(‘btn_space’).appendChild(btn_1);
});
})();

--------------[ソース to  ]--------------

加藤さん

ボタンクリックの処理内で、return event; を行っても画面には反映されません。
kintone.app.record.get, kintone.app.record.set をペアで使ってください。
ボタンクリック時の最新情報を使いましょう。

 

//レコードの値を取得する
var record = kintone.app.record.get();

var srec = record['record'];
// レコード変更
...

//レコードに値をセットする
kintone.app.record.set(record)

 

rex0220 様

 

ありがとうございます!

教えて頂いた通り、get で情報取得後、編集し、set で値を設定することで画面に反映されました。

大変助かりました!