お世話になります。
特定の条件で検索できるようにしたく、ご相談させていただきます。
【実現したいこと】
関連レコードに1件もレコードを持っていないレコードを、一覧画面の絞り込み検索で検索できるようにしたい
商品の在庫管理としてkintoneを使用しております。
商品が購入されている場合は関連レコードに1件のレコードが入っており、未購入の場合は参照するレコードが無いということで関連レコードは0件になっています。
まだ購入されていない商品がどれくらいあるか検索できるようにしたく、関連レコードが0件のレコードを一覧画面の絞り込み検索で検索できればと考えております。
【試したこと】
詳細画面に集計フィールド(数値フィールド)を設定し、レコード数が集計に反映されるよう以下のコードを実装
関連レコードのフィールドコード:販売情報
関連レコードにレコードが表示される条件:アプリA(関連レコードが設置されているアプリ)の製番フィールドとアプリB(顧客管理をしているアプリ)の顧客製番フィールドが一致した場合
(function() {
'use strict';
const events = [
'app.record.detail.show'
];
kintone.events.on(events, function(event) {
const appId = kintone.app.getRelatedRecordsTargetAppId('販売情報');
const query = '顧客製番="' + event.record['製番'].value + '"';
const paramGET = {
'app' : appId,
'query' : query,
'totalCount' : true
};
kintone.api(kintone.api.url('/k/v1/records/cursor', true), 'PUT', paramGET, function(resp) {
kintone.app.record.getFieldElement('集計').innerText = resp.totalCount; //表示する値の書き換え
});
});
})();
上記ですと、一覧画面の状態では詳細画面内の集計フィールドには値が入っていないためか、絞り込み検索で集計を0で絞ってもヒットしませんでした。(詳細画面を表示したときのアクションのため当たり前ではありますが…)
const events = [
'app.record.detail.show'
];
こちらにapp.record.index.showを追加する方法も試しましたが、一覧画面では値の取り方が違うためかエラーになってしまいました。(Uncaught TypeError: Cannot read property ‘製番’ of undefined)
一覧画面での書き方の場合、レコード情報を一度全部取得してくる必要があるのかと考えましたが、書き方がいまいちわからず反映させることができませんでした。
↓以下参照サイト↓
【関連レコードの情報の有無を取得したい】
今後CSVデータで新たにレコードを追加させる予定もあるため、常に最新のレコードの集計値を検索できるようにしたいと考えております。
プログラミング初心者のためコードの理解もしっかりできておらず申し訳ないのですが、どのようにすると良いかご教示いただけると幸いです。
また、上記以外で他に良いやり方がありましたら、お知恵をいただけると幸いです。
長文失礼いたしました。
どうぞよろしくお願い申し上げます。