トーク

ユーザー画像
2021/10/08 14:42

【ヘルプ】関連レコード一覧の集計が更新されない
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に送る方法があれば、教えていただきたいです。


この投稿を共有する
閉じる
URLをコピー URLをコピー
5件のコメント (新着順)
ユーザー画像
ユーザー画像
yama
2021/10/09 11:00

キンコミで聞くよりサイボウズディベロッパーズネットワークで聞いたほうがいい質問かなーと思いました。あちらもjsに詳しい皆さんがシュバッと回答してくださるので助かりますよ!
それはそれとして…私も実は同じ参考記事を使って関連レコード集計をしようとして壁にぶち当たりました。
社内のエンジニアに見てもらったところ、記事のサンプルでは「レコード編集画面表示後」「値の変更後」イベントなので、
レコードを登録する初回は良いとしても2回目以降に値を更新することはできないみたいですよ。
koichiさんのコメントに「app.record.detail.show を追加すれば「レコード詳細画面表示後」になるのでは」とありますが、どうやらapp.record.detail.show は効かないみたいです。

自動じゃないですけど、うちは「集計」ボタンをjsでヘッダに表示させるようにしましたよ。
で、押下時にリロード処理が走るようにして再集計できるようにすると。



ユーザー画像
ユーザー画像
Zono
2021/10/09 11:30

コメントありがとうございます。
私も当初Developers Networkに聞こうとも思ったのですが、「良いプラグインで手を抜く」ことも考えていたので、どちらの知見もお詳しい先輩達が集まっているこちらで聞きました!おかげさまで、知らないプラグインを教えてもらい、要望にかなり近づけております。
yamaさんも同じ壁に当たったことがあるのですね!app.record.detail.showの件はそうなんです…おそらくJSの都合上、入力可能状態にならないと値の書き換えができないと思われます。書き換えるならrecord.detail.showの時にPUTメソッドで書き換えないとダメだと思います。しかしそれだと、変更が無くてもレコード開く度にPUTリクエスト送る形になるので、健全ではないと思っております。
「集計」ボタンの件、検討してみます。「空更新」ではダメだったので、集計させた結果をPUTで更新しないといけなさそうです。プラグインでダメでしたら、JSで何とか頑張ります!

ありがとうございます!またよろしくお願いいたします。


ユーザー画像
ユーザー画像
藤田 隆
2021/10/09 09:38

関連レコード集計プラグインで対応できます。
https://qiita.com/rex0220/items/8cbe764670b0e6431a42

入出庫アプリ側にプラグインを設定すると、入出庫アプリにレコードが追加・更新・削除したタイミングで集計処理を実行します。
試用版もありますので、よろしければお試しください。

kintone 関連レコード集計プラグイン Ver.27 試用版
https://rex0220.stores.jp/items/5b52ddfb50bbc37b79000f13

「営業支援パック」のカスタマイズ例です。



ユーザー画像
ユーザー画像
Zono
2021/10/09 11:15

プラグインのご紹介、ありがとうございます!試用ができるとの事なので、一度検証してみます。
見た感じ、これならいけそうな気がします!検証結果はまた追ってコメントに追記していきますね。
引き続き、よろしくお願いいたします!


ユーザー画像
ユーザー画像
koichi
2021/10/08 22:32

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処理することができます。



ユーザー画像
ユーザー画像
Zono
2021/10/09 11:12

コメントありがとうございます!
なるほど、入出庫管理アプリのレコード追加の時にPUTで処理してしまうという事ですね。
入出庫管理アプリ側は色々いじっているようで、あまり触れられたくないようで、商品マスタ側で何とかしようとしてました。
手段の候補として、入出庫管理アプリに「メス」を入れることを検討します!ありがとうございます!


ユーザー画像
ユーザー画像
k-hata
2021/10/08 15:10

JSカスタマイズはあまり詳しくありませんが、イベントの設定が、
kintone.events.on(['app.record.edit.show','app.record.create.change.AAA2'], function(event) {
なので「レコード編集画面表示後」「レコード追加画面フィールド値変更」なので、今の動きになっていると思います。
「入出庫アプリに追加があったタイミング」は難しそうな気がします(他のアプリなので)。
app.record.detail.show を追加すれば「レコード詳細画面表示後」に動作するのではと思います。
JSに詳しい人、後はよろしくお願いします。



ユーザー画像
ユーザー画像
Zono
2021/10/08 17:24

ご返答ありがとうございます!
イベント設定での解決は既に試みましたが…ダメでした。
動きとしては、【APIで関連レコードの情報を拾ってくる】⇒【計算する】⇒【フィールドの値を書き換える】
だけなので、レコード情報としては「保存」をクリックするまで反映されないようです。
おっしゃる通り、「入出庫アプリに追加があったタイミング」は難しそうです。
APIで直接更新出来たらなと思い、「空更新」してみましたが、それもダメでした…。
改めて、コメントありがとうございました!


ユーザー画像
ユーザー画像
k-hata
2021/10/11 10:43

app.record.detail.show は効かないみたいですね。失礼しました。勉強になりました。


ユーザー画像
ユーザー画像
やまぐち
2021/10/08 15:03

TISさんのプラグインですが、こちらで解決できそうかなと思いましたのでご紹介します。

◆アプリ間レコード集計プラグイン
https://www.tis2010.jp/referencecalc/
集計値をフィールドに保持する必要がある場合。

◆関連レコード一覧フィールド集計プラグイン
https://www.tis2010.jp/referencesummary/
詳細画面で確認できればいいだけなら、こちらでもよさそうです。



ユーザー画像
ユーザー画像
Zono
2021/10/08 17:53

ありがとうございます!
早速検証させてもらいました!
◆アプリ間レコード集計プラグイン
 こういうイメージです!ただ、問題が2つありまして。
  ①「入出庫アプリに追加があったタイミング」ではない ので
  ⇒「一括アプリ間集計」ボタン配置: ②実行処理がとても遅い…

ですが、やりたい事にぐんと近づくことが出来ました。
ありがとうございます!


ユーザー画像
ユーザー画像
Zono
2021/10/08 18:39

補足:
致命的な問題がありました…
添付の画像なのですが、「一括アプリ間集計」ボタンで実行しようとすると出てくる警告です。
これにより、既存レコードの数値がボタンを押すだけ増えていきます。
処理済みの入出庫レコードにフラグを付けて、条件を与えればいいのかもしれませんが、現場の負担が増えるのと、抜け漏れが絶対に発生してしまうのでNGになります。

出来ることが近かっただけに残念です…でも、みなさん同じニーズがある事が分かり、良かったです。
他のプラグインで検証してみます!