別のアプリから条件に合うレコード数を取得後自動更新させたい

いつもお世話になっております。

アプリAに登録したレコード数をアプリBで「担当件数」としてカウントしているようにしておりますが、今のところ、アプリBで新規でレコード追加したとき、アプリAの「担当件数」はカウントできてますが、今後の使用としては、アプリAにユーザーがどんどん登録していくので、アプリBの「担当件数」は編集画面で開いて保存を押さなくても自動でそのレコード数がカウントされるようにしたいですが、可能でしょうか?

前回も教えていただいてここまでできました。お手数ですが、ご教示頂ければ幸いです。よろしくお願い致します。

 

(function() {
“use strict”;
kintone.events.on([“app.record.edit.submit”, “app.record.create.submit”], function(event) {
var end, record, start, appId, staff;
appId = 508,
record = event.record;
start = record[“集計開始日”].value;
end = record[“集計終了日”].value;
staff = record[“担当者”].value;
return kintone.api(kintone.api.url(‘/k/v1/records’, true), “GET”, {
app: appId,
totalCount: true,
query: ‘日付 >= "’ + start + ‘" and 日付 <= "’ + end + ‘" and 担当者 = "’ + staff + ‘"’
}).then(function(res) {
record[“担当件数”].value = res.totalCount;
return event;
});
});
})();

goro さん

アプリAにレコード登録および担当者変更時に、アプリBの「担当件数」を更新してはいかがでしょうか?

ちょっと面倒なのは、アプリAの担当者が X から Y に変わった場合、アプリBの X, Y の2レコードを更新する必要があります。

また日付が変わって集計対象レコードが変わる場合も2レコードを更新する必要があります。

下記のような処理になると思います。

・アプリA 編集画面表示イベントで、変更前のレコード情報をセッションストレージに格納

・アプリA 追加の保存成功後イベント処理
担当者・日付に該当するアプリBのレコードを取得
集計開始日、集計終了日、担当者で、アプリAの対象レコード数を取得
アプリBの担当件数を更新

・アプリA 編集の保存成功後イベント処理
変更前のレコード情報をセッションストレージから取得
変更前後の担当者・日付に該当するアプリBのレコードを取得
変更前の集計開始日、集計終了日、担当者で、アプリAの対象レコード数を取得し、アプリBの担当件数を更新
変更後の集計開始日、集計終了日、担当者で、アプリAの対象レコード数を取得し、アプリBの担当件数を更新

 

要件によっては、日付を集計開始日、集計終了日の対象期間外に変更できないようなしくみも考えられます。

 

rex0220 様

いつもお世話になっております。

やるべき手順をご丁寧に教えていただき、本当にありがとうございます。

セッションストレージは初めて聞いたので、https://developer.cybozu.io/hc/ja/articles/115001441023 を参考にちょっと試してみます。