案件の進捗を管理するアプリで、案件ごとに進捗状況を登録しています。
これを、法人マスタとして使っているアプリで集計し
進行中の案件があるかどうかを法人マスタ上で表示したく
関連レコードの値をフィールド値として集計する下記のコードを作成しました。
'app.record.detail.show’の条件付けもしているのですが
レコードの詳細画面を開いてもフィールド値が更新されず
編集画面を開いたときだけ更新されます。
レコード詳細画面を開いたときには
最新の状態で表示をしたいのですが、
コードに誤りがあるのかどうにもわかりかねたため
ご意見等いただければ幸いでございます。
(() => {
'use strict';
const events = [
'app.record.detail.show',
'app.record.edit.show',
];
kintone.events.on(events, (event) => {
const clientRecordId = event.recordId;
const relatedAppId = kintone.app.getRelatedRecordsTargetAppId('案件管理の関連レコード');
const query = '法人コード="' + event.record['法人コード'].value + '"';
// const query = `"${clientRecordId}"=請求書ID`; //レコードIDを使用する場合
const outputFields = ['進行中フラグ'];
const appUrl = kintone.api.url('/k/v1/records');
const params = {
'app': relatedAppId,
'query': query,
'fields': outputFields
};
kintone.api(appUrl, 'GET', params, (resp) => {
let amount = 0;
for (let i = 0; i < resp.records.length; i++) {
//amount += parseFloat(resp.records[i].金額.value);
amount += parseFloat(resp.records[i].進行中フラグ.value) ? parseFloat(resp.records[i].進行中フラグ.value) : 0;
}
event.record['進行中の有無'].value = amount;
kintone.app.record.set(event);
return event;
});
});
})();