こんにちは。カスタマイズ中に壁に当たってしまったので、ご助力をお願いしたく投稿します。
今回、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('記録年と記録月を入力してからレコード取得ボタンを押してください。');
}
}
}