💡 このページでは、えんのした株式会社が初期構築や伴走サポートで実際に実装した、現場で役立つkintoneカスタマイズ事例をご紹介しています。

複数レコードかつテーブルを対象に任意の集計を実装

複数レコードかつテーブルを対象に任意の集計を実装
  カスタマイズ前の状況とやりたいこと

今回のご依頼元は営業会社の経理部署。

クライアントさんの環境ではkintoneの請求アプリには請求と入金を管理するテーブルが備わってます。
総請求額を分割回数によって均等に分割し、明細テーブルへ1行1回の支払い予定として出力されています。分割入金日が入力されれば入金済み扱い、というわけです。

ただ、テーブルに出力してしまった弊害と言いますが、kintoneでテーブルを対象として集計やら整形やら、とにかく何かをやるというのは結構難しい部類に入ります
特に複数レコードに対するテーブル集計はなかなかの知見が必要です、標準の集計やグラフ機能ではなかなか追いつきません。
やりたいことは割とさっぱりしているはずなのに、いざカスタマイズとなると重くのしかかるものです。

さて、そんな中、やりたいことは下記です。

当月の案件の入金状況を各レコードのテーブルからピックアップし、予算に対してどういう状況なのかを一発で知りたい


今回は一般的な予実管理とは違い、キャッシュフロー予算に対する状況を知りたいということで、営業予算とは異なります。
つまり一言で言えば、「月末時点で◯◯万円キャッシュを確保したい」ということでして、そのときその時で予算の数値が目まぐるしく変わります。

たとえば当初は月末までに800万のキャッシュインで良かったものが、突発的に100万円のキャッシュアウトが発生し他場合、予算は900万になります。
キャッシュ残高を一定水準で守りたい、というイメージですね。

ということで、他アプリで予算を管理して、、というほど手間をかけたくないというのもご要望の一つでした。
また、「達成するにはどうすりゃいいの?」を一目で確認できるとなお良いということです。


  カスタマイズ後の状況
さて、これをどう組み立てていくか、、、ですが、まず第一に敵はテーブルということ。行ごとに設定された支払い期日と入金状況を1行1レコードのように扱いながら集計をしなければいけません。予算に関しては目まぐるしく変わるので、都度都度ベタうちで良いでしょう。

大まかな方向性としては
①現時点の予算を入力
②入力した予算に対して当月期日の案件をカテゴライズして集計
③結果を表示

となりますが、厄介なのは②です。テーブル内のお支払い期日から今月のものをピックアップし、入金日があるかないかで入金状況を判定します。
全てプラグインでやろうとするならば、できないこともないですが割と遠回りになる上、どうしても"予算"の値をどこかしらに持たせておくことになります。なので今回は却下です。

こういった複雑怪奇なカスタマイズを綺麗に収める時のセオリーは

💡 カスタマインで堅実に実装
💡 JavaScriptで柔軟に実装

のどちらかになります。今回はテーブル1行1行が意味を持つので、カスタマインですとちょっと複雑で処理が重たいかな?ということでJavaScriptを採択しています。
また、JavaScriptの方が往々にして集計結果が見やすいという利点もあるので本件には最適です。

というわけで出来上がったのがこちら。

予算を入力
予算入力

結果を表示
結果を表示

今現在でいくら不足しているのか?
予定額が全て振り込まれたら結果はどうなるのか?
見込んでいる金額に対してあといくら分、未入金を追わなきゃいけないのか?(全部追ってくだださいね。笑)

このように様々な数値が出力できます。200レコードくらいが2秒ほどで集計可能です。


  実装費用目安
今回の実装費用は35000円でした。
JavaScriptでの構築は費用がかかるというイメージかと思いますが、今回のようなちょっとした集計機能であれば実はそんなことはありません。
どのアプリでも使いまわしたい昨日の場合はプラグインが最適ですが、汎用性の低いスポットカスタマイズの場合はJavaScriptがうってつけだったりします。



それではよきkintoneライフを!