JSでのテーブル内フィールドへの値の入力と計算フィールドについて

こんにちは。カスタマイズ中に壁に当たってしまったので、ご助力をお願いしたく投稿します。

今回、JSでテーブル内フィールドに値を入力するカスタマイズを作ろうとしているのですが、入力自体は上手くいっているものの、値の反映後に計算フィールドがうまく動作しない問題に直面しています。

全体の流れとしては
1.レコード作成・編集画面に配置したボタンを押すことで他アプリからAPIで複数のレコードを取得
2.取得したレコードから情報を抜き出し、1つのレコードにつきテーブル1行を使って値を入力
3.最後にkintone.app.record.setで値を反映
となっております。

これが済んだ後、計算フィールドが自動計算をしてくれないのです。手動でどこかのフィールドの値を書き換えるなどすれば自動計算をしてくれますが、できればボタンを押した時点でそこまでやってもらいたいのです。

なにか方法はありますでしょうか?自分で検索してもうまく見つけられず…
何卒よろしくお願いします。

実行したコード(ボタン押下時の処理部分のみ抜粋)

const get = async function () {
        // 現在のレコードの情報を取得
        const recordDate = kintone.app.record.get();
        console.log(recordDate);

        // 記録年と記録月が両方入力されてるかをチェック。されてれば処理を進める。
        if (recordDate.record.記録年.value != "" && recordDate.record.記録月.value != "") {
            const appId = 90; // 月別工事台帳のID
            const query = '台帳集計用キー="' + recordDate.record.工事台帳取得用キー.value + '"';
            const body = {
                app: appId,
                query: query
            }

            // 月別工事台帳からレコードを取得
            const ledger = await kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body)
            console.log(ledger);

            // レコードが取得できた場合、テーブルに値をセットする
            if (ledger.records.length > 0) {
                const table = recordDate.record.テーブル;
                console.log(table);

                // テーブルを初期化
                table.value = []; 
                
                for (let i = 0; i < ledger.records.length; i++) {
                    // テーブルにデータを格納するための変数
                    let tableIn = {
                        value: {
                            "工事番号": { type: 'SINGLE_LINE_TEXT', value: ledger.records[i].社内工事番号.value },
                            "工事名": { type: 'SINGLE_LINE_TEXT', value: ledger.records[i].工事名_台帳.value },
                            "元請": { type: 'SINGLE_LINE_TEXT', value: ledger.records[i].発注先.value },
                            "工期開始": { type: 'DATE', value: ledger.records[i].工期_開始日.value },
                            "工期終了": { type: 'DATE', value: ledger.records[i].工期_終了日.value },
                            "受注額": { type: 'NUMBER', value: ledger.records[i].受注額.value },
                            "材料費": { type: 'NUMBER', value: ledger.records[i].材料費累計.value },
                            "労務費": { type: 'NUMBER', value: ledger.records[i].労務費累計.value },
                            "機械損料": { type: 'NUMBER', value: ledger.records[i].機械損料累計.value },
                            "外注費": { type: 'NUMBER', value: ledger.records[i].外注費累計.value },
                            "経費": { type: 'NUMBER', value: ledger.records[i].経費累計.value },
                            "合計": { type: 'CALC', value: "100" },
                            "出来高": { type: 'NUMBER', value: "" },
                            "差額": { type: 'CALC', value: "" },
                            "出来高残金": { type: 'CALC', value: "" }
                        }
                    }
                    table.value.push(tableIn);
                }
                kintone.app.record.set(recordDate);
            }
            else {
                alert('記録年と記録月を入力してからレコード取得ボタンを押してください。');
            }
        }
    }

自己解決しました。以下のようなコードを書き加え、一度値をセットした後に0.5秒の間を持たせて関係ないフィールドに別途値をセットしなおすことで、安定して反映後の値を利用して自動計算を起動することができました。

setTimeout(() => {
                    if (recordDate.record.自動計算起動用.value == 0) {
                        console.log("自動計算起動用の値が未定義または0です。1に設定します。");
                        recordDate.record.自動計算起動用.value = 1;
                    }
                    else {
                        console.log("自動計算起動用の値が1です。0に設定します。");
                        recordDate.record.自動計算起動用.value = 0;
                    }
                    kintone.app.record.set(recordDate);
                },500)
「いいね!」 2

この現象について、私も何度も見たことがありました。
はじめはJSの処理が悪いのかと思って色々調査しましたが、どうやらそうでもないようなので、いつの間にか放置していました・・。(JSでフィールドの値を変更した後にそのまま保存すると、計算フィールドの再計算が入るようで、計算フィールドの値は正しく表示されるようになります。)

ただ、動き的にはJSで設定後に計算フィールドの値も即変わってほしいところなので、このような方法があると参考になりました。
ありがとうございます。