詳細画面表示時に、フィールド値を変更(PUT)し、変更した値を表示させたい

詳細画面を表示した際に、フィールドをPUTして更新した後、画面上のフィールド値も、更新後の値を表示したいと思っています。

下記のソースですと、「TEST」フィールドへのPUTは成功しますが、画面上の「TEST」フィールド値は変更されません。

RELODEすると更新後の値が表示されます。

詳細画面表示時は、画面上のフィールド値に、強制的に別の値を表示する事はできないのでしょうか?

はまってます(´;ω;`)

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

 

(function() {
“use strict”;
kintone.events.on([‘app.record.detail.show’], function(event) {
var record = event.record;
var body = {
‘app’: kintone.app.getId(),
‘id’: record[‘$id’].value,
‘record’: {
‘TEST’: {
‘value’: ‘AAA’
}
}
};
kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, body, function(resp) {
var body = {
‘app’: kintone.app.getId(),
‘id’: record[‘$id’].value
};
kintone.api(‘/k/v1/records’, ‘GET’, body,(resp)=>{
let obj = kintone.app.record.get();
obj.record[‘TEST’].value = ‘AAA’;
kintone.app.record.set(obj);
});
return event;
}, function(error) {
console.log(error);
});
return event;
});
})();

詳細画面の表示時に、強制的に値をセットしたい場合には、PUTしてリロードしかないように思われます。

強制的に値をセット時には、自動リロードを組み込むとかはいかがでしょうか。

(function () {
    "use strict";

    kintone.events.on(['app.record.detail.show'], function (event) {
        // 値セット後のリロード時には、再度セットに行かない
        if (sessionStorage.getItem('record_updated') === '1') {
            sessionStorage.setItem('record_updated', '');
            return event;
        }

        var record = event.record;
        var body = {
            'app': kintone.app.getId(),
            'id': record['$id'].value,
            'record': {
                'TEST': {
                    'value': 'AAA'
                }
            }
        };

        return kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body, function (resp) {
            sessionStorage.setItem('record_updated', '1');
            location.reload();
            return event;
        }, function (error) {
            console.log(error);
            return event;
        });
    });

    // 新規登録完了、編集完了時の詳細画面では値をセットしない
    kintone.events.on(['app.record.create.submit.success', 'app.record.edit.submit.success'], function (event) {
        sessionStorage.setItem('record_updated', '1');
        return event;
    });
})();

お教え頂きありがとうございます。

成功いたしました。

app.record.create.submit.success というイベントは初めて見ました。

使えるイベントですね!

感謝です。