別アプリから取得したレコードから、ステータスごとの件数をカウントし、フィールドに表示したいです。
console.logで確認すると、レコードの取得〜件数カウントまでは正しく動いています。
'作業中’ステータスの値を「確定人数」フィールドに値を入れて表示させたいのですが、うまくいきません。
なお、'作業中’ステータスの値は正しく計算されていて、スペースフィールドに表示はできています。
いろいろ調べてみると、
kintone.api()が非同期のため、レコードにセットする前にイベントが終わっている
のかな、と思っていますが、解決できずにいます。
どうしたらよいでしょうか?
const events = ['app.record.detail.show'];
kintone.events.on(events, (event) => {
const clientCode = event.record['依頼コード'].value;
const relatedAppId = kintone.app.getRelatedRecordsTargetAppId('オファー履歴');
const query = `依頼コード="${clientCode}"`;
const params = {
'app' : relatedAppId,
'query' : query
};
let statusCounts = {};
// オファー管理アプリからレコードを取得
kintone.api('/k/v1/records', 'GET', params, (resp) => {
statusCounts = countStatus(resp.records);
const obj = kintone.app.record.get();
obj.record.確定人数.value = (statusCounts['作業中'] || 0);
kintone.app.record.set(obj);
}, (error) => {
console.error('Error:', error);
});
return event;
});