【ヘルプ】関連レコード一覧の集計が更新されない
JSでカスタマイズしているので状況分かりにくいかもしれませんが、皆さまのアドバイスいただけると嬉しいです!
【状況】
画像をご確認ください。
「入出庫管理」アプリのレコードを持ってきて、「累計個数」という数値フィールドに計算させています。
これはJSでカスタマイズしており、下記のサイトの通りに実装しました。
https://fastsystem.funai.site/relatedrecords-sum/
【問題】
入出庫アプリのレコードを更新・追加しても、関連レコード一覧には確り行が追加されていますが、「累計個数」が変動しません!
画像のように、個数 20 - 15 で「5個」が正解なのに、20個のままです。
もちろん、レコードを編集しなおすと累計個数が再計算され、5個になります。わざわざ編集しないと再計算されないという事が問題になります。
【要望】
入出庫アプリに追加があったタイミングで計算してほしいです!
JSカスタマイズOK、プラグインOKです。
(ATTAZooで出来るか、ご存じの方いらっしゃったらご教示ください。)
参考にしたトークはこちらです。
https://kincom.cybozu.co.jp/chats/h6rtkyfbbqadznl8
(現場の負担を考えて、ファイルの書き出し・読み込みは避けたいです。)
(一括空更新ボタンも実装してみましたが、ダメでした。)
これがKintoneの限界なのであれば、最終手段としてRPAで実装する予定です。
分かりずらい箇所はご質問ください。皆さまのお知恵をお借りしたいです!よろしくお願いいたします!
追伸:累計個数の計算は、JSで計算してフィールドに入れている(KintoneのDBと無関係)ので、変更がある度にレコードの編集をしないと計算が走らず、数値が更新されない状態かと思います。関連レコード一覧の集計を自動でKintoneのDBに送る方法があれば、教えていただきたいです。
ミュートしたユーザーの投稿です。
投稿を表示キンコミで聞くよりサイボウズディベロッパーズネットワークで聞いたほうがいい質問かなーと思いました。あちらもjsに詳しい皆さんがシュバッと回答してくださるので助かりますよ!
それはそれとして…私も実は同じ参考記事を使って関連レコード集計をしようとして壁にぶち当たりました。
社内のエンジニアに見てもらったところ、記事のサンプルでは「レコード編集画面表示後」「値の変更後」イベントなので、
レコードを登録する初回は良いとしても2回目以降に値を更新することはできないみたいですよ。
koichiさんのコメントに「app.record.detail.show を追加すれば「レコード詳細画面表示後」になるのでは」とありますが、どうやらapp.record.detail.show は効かないみたいです。
自動じゃないですけど、うちは「集計」ボタンをjsでヘッダに表示させるようにしましたよ。
で、押下時にリロード処理が走るようにして再集計できるようにすると。
ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示関連レコード集計プラグインで対応できます。
https://qiita.com/rex0220/items/8cbe764670b0e6431a42
入出庫アプリ側にプラグインを設定すると、入出庫アプリにレコードが追加・更新・削除したタイミングで集計処理を実行します。
試用版もありますので、よろしければお試しください。
kintone 関連レコード集計プラグイン Ver.27 試用版
https://rex0220.stores.jp/items/5b52ddfb50bbc37b79000f13
「営業支援パック」のカスタマイズ例です。
ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示Zonoさん
こんにちは
関連レコードは商品IDのようなもので紐付けされてますか?
投稿画像のアプリが「商品マスタ」
関連レコードが「商品ID」の紐付けと仮定して、JSで下記処理はいかがでしょうか。
①入出庫管理アプリにレコード追加
例)商品ID:A01
レコード番号15・・・10/8:10個
↓
②入出庫管理アプリから商品ID(A01)が一致するレコードを取得(GET API)
レコード番号5・・・10/4:20個
レコード番号13・・・10/7:-15個
↓
③商品マスタアプリから商品ID(A01)のレコードを取得(GET API)
↓
④累計個数を計算し、商品マスタアプリの商品ID(A01)のレコードを更新(PUT API)
10+20-15 = 15個 → 商品ID:A01の累計個数を更新
商品マスタアプリにおいて、商品IDが必須かつ重複しない値であれば③の処理は不要です。
商品IDをUpdateKeyとしてPUT処理することができます。
ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示JSカスタマイズはあまり詳しくありませんが、イベントの設定が、
kintone.events.on(['app.record.edit.show','app.record.create.change.AAA2'], function(event) {
なので「レコード編集画面表示後」「レコード追加画面フィールド値変更」なので、今の動きになっていると思います。
「入出庫アプリに追加があったタイミング」は難しそうな気がします(他のアプリなので)。
app.record.detail.show を追加すれば「レコード詳細画面表示後」に動作するのではと思います。
JSに詳しい人、後はよろしくお願いします。
ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示TISさんのプラグインですが、こちらで解決できそうかなと思いましたのでご紹介します。
◆アプリ間レコード集計プラグイン
https://www.tis2010.jp/referencecalc/
集計値をフィールドに保持する必要がある場合。
◆関連レコード一覧フィールド集計プラグイン
https://www.tis2010.jp/referencesummary/
詳細画面で確認できればいいだけなら、こちらでもよさそうです。
ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示