はじめに

この記事では、一覧画面にボタンを設置し、ボタンを押したときに一覧の条件に一致する全レコードの関連レコードの合計値を集計するカスタマイズをご紹介します。


関連レコード一覧の集計は非常にご要望の多いカスタマイズで、これまでもいくつかの記事を公開しています。用途に合わせてご覧ください。


関連レコード一覧を集計する

はじめてのWebhookカスタマイズ : 関連レコードの集計

更新専用の一覧を使って関連レコードの集計を一括で行う方法 


この記事で紹介する手法は「リストから要素を取り出す」という「やること」を使用します。

リストから要素を取り出す」という「やること」は2022年5月26日にリリースされた新しい概念であるため、初めて使用される場合にはこちらの記事もご参照ください。


以下にカスタマイズ作成手順をご紹介しますが、カスタマイズ画像のみを確認したい方は一番最後に纏めて貼ってありますので、画面下部までスクロールしてご覧ください。


アプリ構成と実現する内容

kintone アプリストアにある「営業支援パック」を使用します。このうち、「顧客管理」アプリで関連レコードとして「案件管理」アプリを表示する設定がされているためこれを使用します。


今回は以下のように「顧客管理」アプリに予め作成されている「案件一覧」という関連レコードの設定内の「合計費用」というフィールドを集計します。集計結果を格納するため、「前案件合計金額」というフィールドを数値型で作成しておきます。


「案件一覧」の関連レコード設定は以下のように設定されています。

※こちらは「表示するレコードの条件」を顧客名に変更しています。

カスタマイズ作成

まずは一覧画面にボタンを設置します。



続いて、このボタンを押したときのアクションとして読み込み中画面の表示を設定します。この「読み込み中画面の表示」は無くても集計処理自体は可能ですが、処理時間が長くなった場合にユーザーが誤ってブラウザを閉じてしまうことなどを防ぐために入れることをおすすめします。



集計対象となるレコードを取得する処理です。今回は一覧の条件に合致するレコードに処理を行いたいので「一覧の条件でレコードを全件取得する」を使用しています。要件に応じて「クエリで条件を指定してレコードを取得する」などに変更いただくことも可能です。

30〜33 のアクションが繰り返しの処理を行う部分となります。

リストから要素を取り出す」と「リストから要素を取り出した時」を使用することにより、$29 の結果の数(= 29 のアクションで取得したレコードの件数分)だけ 31 ~ 33 の処理(やること「キーを指定してレコードを取得する」、「レコード中のフィールド合計値を計算する」、「レコードを更新する(キーの値を直接指定)」)が行われます。


34 のアクション(条件)にて、繰り返し処理の終了判定を行っています。追加条件で「アクションの結果が特定の値ならば」で 30番「リストから要素を取り出す」の実行結果が空になったら(すべての処理が終わったら)、34 が実行されることとなります。

ここでは、28 で表示した読み込み画面を終了します。


35,36 のアクションは設定しなくても集計処理自体は実現できますが、集計が完了したことをユーザーにわかりやすくするため、集計結果を表示されている画面に反映するために設定しています。


アクショングラフ

今回のカスタマイズでは以下のようなアクショングラフとなります。33 番のアクションのあとに 30 番に戻り繰り返し処理が行われることがおわかりいただけるかと思います。

 

 

まとめ

以上の設定により、一覧画面で関連レコードの集計が可能となります。

このように「リストから要素を取り出す」を活用することで、複数のレコードに対する処理を一括で作成できるケースが多いため、是非お試しいただければと思います。

 

カスタマイズ画像まとめ