2
Help us understand the problem. What are the problem?

posted at

updated at

kintone 関連レコード集計プラグイン

kintone 関連レコード集計プラグインです。

関連レコードの数値合計、最新日時などをプラグイン設定するだけで集計できます。
子アプリを変更時に、親アプリに集計結果を自動反映します。

  • 追加・変更・削除時に、親アプリに自動集計
  • 数値等の集計機能(sum, max, min, count, c_uniq)
  • 文字列、日付等の集計機能(first, firsta, last, lasta)
  • テーブル項目の集計機能
  • 計算式の計算結果を集計可能
  • 親アプリに関連レコード表示が無くても、集計可能
  • 関連レコード集計を10セット/アプリまで設定可能
  • 既存レコードの集計機能
  • プラグイン設定のダウンロード&アップロード機能

※動作環境は、PC・スマホです。

※参考 関連レコード集計プラグインによるタイムカード月次集計

rex0220 storesで、販売中です。

※関連レコード集計プラグイン Ver.31 変更点
・プラグイン設定で、計算式に"<" がある場合に、計算式の一部が非表示になる不具合対応
・集計処理実行エラーの詳細メッセージ表示を追加
・集計元レコードの処理番号「$sno」を追加

関連レコード集計の設定例

kintone アプリストアの「営業支援パック」をカスタマイズした例です。

  • 顧客アプリに、案件アプリの集計と活動履歴の集計を行っています。

2018-07-20_18h48_00.png

  • 案件アプリに、活動履歴の集計を行っています。

2018-07-20_18h47_31.png

活動履歴を追加・変更した場合の自動集計

活動履歴アプリにレコード追加・変更した場合、顧客アプリ・案件アプリに自動集計されます。

2018-07-20_19h13_59.png

案件アプリを追加・変更した場合の自動集計

案件アプリのプラン費用・オプション費用を修正した場合、顧客アプリに自動反映されます。
※スマホで、変更を行った場合の例です。

2018-07-20_20h11_24.png

関連レコード集計プラグインの設定手順

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

集計先アプリに集計項目を追加

顧客アプリ・案件アプリに集計先項目を追加し、運用環境に反映します。

  • 顧客アプリの例

2018-07-20_20h59_32.png

集計先項目を入力不可

集計先項目をマニュアル入力されるとまずいので、kintone 項目入力不可プラグインで、集計先項目を入力不可に設定します。

2018-07-21_15h01_27.png

プラグインの追加

  • 「kintone システム管理 > プラグイン」で追加します。
  • 「アプリの設定 > プラグイン」で、アプリに追加します。

※今回の例では、案件アプリと営業履歴アプリにプラグイン設定を行います。

2018-07-20_21h08_00.png

プラグインの設定

案件アプリのプラグイン設定例

  • プラグイン有効
  • ステータス変更時のレコード更新:計算式にステータス利用時に有効
    • チェック時:ステータス変更イベント処理終了時に return event;
            JavaScript カスタマイズまたは他プラグインのレコード変更を反映する
            ステータス変更時、ユーザーにレコード更新権限が必要
    • 非チェック時(規定値):ステータス変更イベント処理終了時に return;
            JavaScript カスタマイズまたは他プラグインのレコード変更を反映しない
            ステータス変更時、ユーザーにレコード更新権限が不要

関連レコード集計毎に、下記を設定します。

  • アプリ: 集計先アプリ
  • 対象アプリ条件: 集計先アプリのレコード抽出条件
  • 集計条件: 集計元アプリのレコード抽出条件
  • 集計順: 集計元アプリのレコード抽出順
  • 集計項目: 集計先アプリの集計項目と集計内容
  • テーブル項目: 集計先アプリのテーブル項目と集計内容

2021-10-19_22h26_39.png

  • アプリ欄でダブルクリックすると、アプリの選択メニューが表示されますので、対象アプリ「顧客管理」を選択します 。
  • アプリ番号またはアプリ名を入力すると、フィルタリングされます。

2018-07-20_22h36_05.png

対象アプリ条件

  • 対象アプリ条件の「編集」ボタンをクリックすると、編集用ダイアログが表示されます。
  • 「参照アプリの項目」欄でダブルクリックすると、項目の選択メニューが表示されますので、「レコード番号」を選択します

  • OR条件の位置: OR条件の位置を指定します。

    • - : 「すべての条件を満たす」となります。(OR条件なし)
    • 2~10 : 指定値以降は、「いずれかの条件を満たす」となります。

例:今回は、顧客アプリ内の案件アプリ関連レコードで「表示するレコードの条件」と同じです。
顧客アプリの「レコード番号」と案件アプリの「顧客管理レコード番号(関連レコード紐付け用)」で関連付けしています。

2019-09-19_06h39_30.png

  • 「条件値」欄は、項目のフィールドコードまたは計算式を指定します。
  • 定数

    • 文字: "" で、囲みます。
      "株式会社", "個"
    • 数字: 数字をそのまま記述
      0, 123, 1000
  • 項目:アプリ内項目のフィールドコードを指定します。

  • 「:」(コロン)を入力すると、項目名が一覧表示されますので、項目を選択します。

  • または、計算式を指定します。
    計算式プラグインと同じ計算式を入力できます。

2018-07-20_22h52_47.png

集計条件

集計元アプリ(プラグイン設定アプリ)の集計条件を指定します。

  • 参照アプリの項目:ダブルクリックで項目一覧表示
  • 条件
  • 条件値:項目または計算式

例:顧客管理レコード番号を指定
更新された案件アプリレコードの「顧客管理レコード番号(関連レコード紐付け用)」が同じレコードを集計します。

2019-09-19_06h49_54.png

集計順

集計元アプリのレコード取得順を指定します。

  • 項目:ダブルクリックで項目一覧表示
  • ソート
    • asc:昇順
    • desc:降順

2018-07-21_00h09_39.png

集計項目

集計先アプリの集計項目と、集計元アプリの項目または計算式を指定します。

  • 集計先レコードが無ければ追加: チェックなし
  • 集計先項目
  • 項目(計算式)
  • 集計
    • sum:合計
    • max:最大値
    • min:最小値
    • count:カウント
    • c_uniq:一意の値の個数をカウント
    • first:先頭レコードの値
    • firsta:有効な値を持つ最初のレコード
    • last:最終レコード
    • lasta:有効な値を持つ最後のレコード
  • 初期化: 集計元レコードが無い場合に「0」を設定
  • レコード追加時に設定: チェックなし

  • 変数として、下記が利用できます。

    • $sno: 集計元レコードの処理番号

例:プラン費用合計の集計
顧客アプリの「プラン費用合計」に、案件アプリの「プラン費用」を合計(sum)します。

例:案件件数
顧客アプリの「案件件数」に、案件アプリのレコード単位に 1 をカウント(count)します。
※集計結果は、案件アプリの対象レコード数になります。

2020-09-21_16h55_57.png

テーブル項目

集計先テーブルを設定する場合に指定します。

  • 有効: チェックして、テーブルを選択します。
  • To テーブル: 対象テーブルを選択します。
  • From テーブル: "-----":レコード または、テーブルを選択します。
  • 集計: レコード取得後に集計してテーブルに設定する場合に、チェック
    • 「集計」をチェックすると、集計キー、集計順、ソートキー、ソート順の入力欄を表示
  • チェック: 設定項目を有効にします。無効の場合は、初期値を設定します。
  • 識別ID: レコード識別用の項目を指定します。チェックすると計算式に $id が自動セットされます。
  • 項目(計算式): 集計項目の計算式と同様です。
  • 集計キー: 集計キーを番号で指定
    • 項目タイプは、数値、文字列、ドロップダウン、ラジオボタンを指定のこと
    • チェックボックス、複数選択、ユーザー選択等は、値が配列で集計・比較できません。
  • 集計順: asc: 昇順, desc: 降順
  • 集計
    • sum:合計
    • max:最大値
    • min:最小値
    • count:カウント
    • c_uniq:一意の値の個数をカウント
    • first:先頭レコードの値
    • firsta:有効な値を持つ最初のレコード
    • last:最終レコード
    • lasta:有効な値を持つ最後のレコード
  • ソートキー: 集計後のソートキーを番号で指定
  • ソート順: asc: 昇順, desc: 降順

  • 変数として、下記が利用できます。

    • $sno: 集計元レコードの処理番号
    • $rno: テーブルの行カウンター
    • $val: ループ配列のループ値

2021-08-15_21h16_20.png

テーブル項目の集計例

活動履歴を対応者別に集計し、最新対応日時順にソートして、テーブルにセット

2021-08-15_19h00_38.png

一覧画面の一括関連集計

一覧画面で関連レコード集計の一括関連集計ができます。
アプリ毎に 10,000 回/日 の API 発行制限がありますので、制限回数を超えないように対象レコードを絞って実行してください。

2021-03-01_15h06_01.png

ボタン

一覧画面で表示するボタンについて設定します。

  • チェック: 選択状態でボタンを表示
  • デフォルト: ボタン表示名
  • 英語: 英語表記
  • 日本語: 日本語表記
  • 中国語: 中国語表記

2021-03-01_15h08_46.png

一覧別設定

「一括計算ボタン」を表示する一覧画面を設定します。

  • すべての一覧で有効: チェックするとすべての一覧画面でボタンを表示
  • チェック: 選択した一覧でボタンを表示

2021-03-01_15h10_53.png

権限設定

「一括計算ボタン」を表示する権限を設定します。
ユーザー・組織・グループ単位で設定できます。

2021-03-01_15h14_29.png

活動履歴アプリのプラグイン設定

こちらは集計先アプリが、顧客アプリと案件アプリになります。
同様にプラグイン設定を行います。

設定のポイント
最新の対応日時を取得するため、下記の設定を行います。

  • 集計順を対応日時とレコード番号($id)の降順
  • 最新対応日時の集計は first (先頭レコード)

2020-09-21_16h58_19.png

チェックボックス、複数選択、ユーザー選択項目について

集計先が、チェックボックス、複数選択、ユーザー選択項目の場合、計算式で下記関数を指定してください。

2018-07-24_17h29_29.png

  • チェックボックス、複数選択項目は、ARRAY関数を指定

ARRAY(チェックボックス)
ARRAY(複数選択)

  • ユーザー選択は、SEL_CODE関数を指定

SEL_CODE(ユーザー選択)

テーブル内項目の計算

テーブル内の項目については、テーブル集計関数が使えます。

  • テーブル内数値項目の合計

SUM(T数値)

既存レコードの更新

設定した集計方法で、集計先アプリの既存レコードを更新できます。
※「既存レコードを変更」では、集計先レコード追加は行いません。

  • 集計先アプリと集計元アプリの全レコードを処理しますので、レコード数が多い場合は、1日の API 発行回数制限値(10,000回/1アプリ)をオーバーする場合があります。

案件アプリの「既存レコードの更新」
2018-07-20_18h46_04.gif

活動履歴アプリの「既存レコードの更新」
2018-07-20_18h41_42.gif

プラグイン設定のダウンロード

  • プラグイン設定をダウンロードできます。
  • 設定変更している場合は、変更後の設定が対象です。
  • ブラウザ IE については、プラグイン設定のダウンロードの動作対象外です。

2018-07-21_11h07_08.png

プラグイン設定のアップロード

  • プラグイン設定をアップロードできます。
  • ブラウザ IE については、プラグイン設定のアップロードの動作対象外です。

2018-07-21_11h07_56.png

2018-07-21_11h08_12.png

注意事項

  • 既に、JavaScript によるカスタマイズを行っているアプリの場合、処理が競合して、エラーになる場合があります。その場合は、該当するアプリでプラグインの使用を中止してください。

活用例 予算・実績アプリ

予算アプリと実績アプリの集計も簡単に出来ます。

2018-07-25_10h00_26.png

  • プラグイン設定

2018-07-25_10h06_14.png

  • 標準の一覧で、予実績表示

2018-07-25_09h46_56.png

  • 標準のグラフ機能で予実績表示

2018-07-25_09h47_18.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?