DXやkintoneの伴走支援について、皆で考える研究所。

kintoneの関連レコードの値を取得する方法は?プラグインやJavaScriptでのやり方を紹介

kintone 関連レコードの値を取得する方法を解説

kintoneには「関連レコード」という他のアプリや同じアプリ内の情報を特定の条件で絞り込んで表示する機能があります。
ただし、関連レコードはあくまでレコード詳細画面で表示できるだけなので、レコード内で計算に使いたかったり、一覧画面に表示したかったりする場合にはレコード内の入力できるフィールドに値を取得してくる必要があります。
通常、それらのカスタマイズはプログラミング言語を用いた設定となるため、専門知識・経験をもたない人にとって容易ではありません。

しかし、そんなカスタマイズもプラグインやサンプルコードを使えば簡単に実現できます。

そこで当記事では、プラグインやサンプルコードを使って「簡単に関連レコードの値を取得する方法」を紹介します。
後半では関連レコードの数値を集計する方法も解説するので、参考にしてみてください。

この記事でわかること

  • kintoneの関連レコードの値を取得する方法
  • kintoneの関連レコードに関する便利な機能

こんな人におすすめの記事です

  • kintoneの関連レコードの値を取得してひと目で集計結果を把握できるようにしたい方
  • kintone関連レコードに関する機能を活用して業務効率化を目指したい方

無料プラグインを使って関連レコードの値を取得する方法

kintone(キントーン)の関連レコードの値を取得する方法として、「関連サブテーブル一覧表示プラグイン」を使って関連レコードの値を取得する方法があります。
当プラグインの本来の趣旨は「標準機能では関連レコードで表示できないサブテーブルを関連レコード一覧として表示させること」ですが、値の取得も可能です。

事前準備として、関連サブテーブル一覧を表示させたい位置に「スペース」フィールドを配置して、要素IDを設定しておきます。

knowhow関連レコード取得01

プラグイン設定を開いて、あらかじめ設定しておいたスペースフィールドを「関連サブテーブル(テーブルデータ)一覧表示フィールド」に指定します。
関連レコードと同じように表示したい情報と、表示した情報の集計結果を表示する項目を指定すれば完了です!
サブテーブルが無くても設定できる他、合計値だけではなく平均値や最大・最小値もアプリ内のフィールドに保存することができます。

knowhow関連レコード取得02

このように設定することで、関連レコードとして表示しながらその結果をアプリ内に自動保存してくれます。
ただし、レコードにコピーしている集計結果は「レコードを編集」しなければ更新されませんので注意してください。

knowhow関連レコード取得03

本来の集計結果は5件の100万円ですが、レコードを編集・保存していないためその前にレコードを編集したときの情報のままになっています

「コンストラクタ」を使って関連レコードの値を取得する方法 | テーブル挿入も可能

関連レコードの値を取得するためには、本来「フィールド設定と同値のqueryを書いて、records.json等を用いてレコードを取得する…」という設定が必要です。

しかし、公式(cybozu developer network)が公表している「コンストラクタ」を使えば、上記の工数不要で簡単に関連レコードの値を取得できます

以下では、サンプルアプリ「営業支援パック」の顧客管理アプリを例に、案件一覧の合計と活動履歴の件数を表示する手順を説明します。

【コンストラクタを使って関連レコードの値を取得する方法】

  1. アプリの設定より要素ID「space1」「space2」のスペースフィールドを追加
  2. 以下を読み込む
・RelatedRecordsFieldManager.js

window.RelatedRecordsFieldManager = (function(fieldCode){
var RelatedRecordsFieldManager = function(fieldCode){
this.fieldCode = fieldCode;
this.property = this.fieldProperties[fieldCode].referenceTable;
this.targetAppId = this.property.relatedApp.app;
}
RelatedRecordsFieldManager.prototype = {
selfAppId: kintone.app.getId(),
records: [],
limit: 500,
getFieldProperties: function(){
return kintone.api(kintone.api.url(‘/k/v1/app/form/fields’, true), ‘GET’, {
app: RelatedRecordsFieldManager.prototype.selfAppId,
}).then(function(response){
RelatedRecordsFieldManager.prototype.fieldProperties = response.properties;
});
},
query: function(record){
return (
this.property.condition.relatedField +
‘=”‘ +
record[this.property.condition.field].value +
(this.property.filterCond ? ‘” and ‘ : ‘”‘) +
this.property.filterCond
);
},
getRecords: function(record){
var _this = this;
return kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, {
app: this.targetAppId,
query:
this.query(record) +
‘ order by ‘ + this.property.sort +
‘ limit ‘ + this.limit +
‘ offset ‘ + this.records.length
}).then(function(response){
_this.records = _this.records.concat(response.records);
return response.records.length === _this.limit ? _this.getRecords(record) : _this.records;
});
}
}
return RelatedRecordsFieldManager;
})();

・sample.js

(function() {
“use strict”;
kintone.events.on([
‘app.record.detail.show’,
‘app.record.edit.show’
], function(event){
// まず、アプリのフィールド設定を取得しておく
RelatedRecordsFieldManager.prototype.getFieldProperties().then(function(){
// 関連する案件一覧のレコードを取得する
(new RelatedRecordsFieldManager(‘案件一覧’)).getRecords(event.record).then(function(records){
// space1に合計費用の合計値を表示
kintone.app.record.getSpaceElement(“space1”).innerHTML =
records.reduce(function(sum, record){
return sum + Number(record.合計費用.value);
}, 0).toLocaleString();
});
// 関連する活動履歴のレコードを取得する
(new RelatedRecordsFieldManager(‘活動履歴’)).getRecords(event.record).then(function(records){
// space2にレコード数を表示
kintone.app.record.getSpaceElement(“space2”).innerHTML = records.length;
});
});
});
})();

参考:https://developer.cybozu.io/hc/ja/community/posts/360017851006

コンストラクタを使えば、用途に合わせて一部分のフィールドコードを変更するだけで実装できます。テーブル挿入も可能なので、kintoneでのデータ管理がより便利になるでしょう。

JavaScriptを使ってレコードの値の取得と設定を行う方法

JavaScriptを使って、関連レコードの値の取得・設定を行う方法もあります(API使用)。
専門知識が必須となるものの、kintoneをJavaScriptでカスタマイズすればより自社の業務・要望に沿った設定が可能です。

JavaScriptによる関連レコードの値の取得方法は、雛形コードをカスタマイズする・ファイルを取り込むという2つの方法があります。

【JavaScript(雛形コード)を使ってレコードの値の取得と設定を行う方法】

  1. レコードの値の取得には「kintone.app.record.get()」、レコードに値を設定するには「kintone.app.record.set()」のAPIを使用します
  2. コード編集ツール「JSEdit for kintone」をインストールする
  3. kintone のシステム管理から「プラグインの設定画面」を開き「読み込む」をクリック
  4. プラグインを読み込み、アプリ設定画面から「設定」タブを開く
  5. 「カスタマイズ/サービス連携」の「プラグイン」をクリック
  6. 「プラグイン設定画面」を開いて「プラグインの追加」をクリック
  7. 一覧表示されるプラグインの中にある「JSEdit for kintone」をチェックして「追加ボタン」をクリック
  8. 「設定」の歯車アイコンから編集するファイルを追加し「新規作成」ボタンをクリック
  9. 表示されるJavaScripの雛形が表示されたらコードを編集する
  10. 「保存」をクリック

【JavaScript(ファイル)を取り込んでレコードの値の取得と設定を行う方法】

  1. レコード一覧画面の右上にある「アプリ設定ボタン」をクリックし、「設定」タブの「カスタマイズ/サービス連携」にある「JavaScript / CSSでカスタマイズ」を選択する
  2. カスタマイズの適用範囲を「すべてのユーザーに適用」「アプリ管理者だけに適用」「適用しない」の中から選択する
  3. 「URL指定で追加」もしくは「アップロードして追加」をクリックして、取り込むファイルを選択する
  4. 「保存」をクリックし、画面右上の「アプリを更新」ボタンを押して完了

関連レコード一覧の条件でレコードを取得する方法

kintoneの拡張機能サービス「gusuku Customine」を利用すれば、関連レコード一覧フィールドと同じ条件でレコードを取得できます。
gusuku Customineとは、kintoneをプログラミングなしでカスタマイズできるサービスです。
※無料お試しあり

【関連レコード一覧の条件でレコードを取得する方法】

  1. kintoneアプリの設定画面でAPIトークンを生成し、アクセス権を設定する
  2. kintoneとgusuku Customineを接続する
  3. アプリの設定画面にて「レコード」「関連レコード一覧フィールド」「APIトークン」「最大取得件数」「自レコードも条件に一致した場合」を設定する

ちなみに関連レコードの設定項目において、関連レコード一覧フィールド「表示するレコードの条件」に指定できるフィールドの組み合わせは、フィールドタイプによって決まっています。

左側のドロップダウン「このアプリのフィールド」でフィールドを指定すると、組み合わせ可能なフィールドが右側のドロップダウンに表示されます。
※指定できるフィールドの組み合わせは公式HPを参照ください。

関連レコードの数値を集計する方法

関連レコードで表示したデータを集計したいとき、ありますよね。
しかし、kintoneの標準機能で数値の集計ができるのは同アプリ内のみです。
例えば、AアプリにBアプリのデータを関連レコードとして表示はできても、別アプリ同士の数値を集計することはできません

しかし、プラグイン連携サービスなどを使えば、比較的簡単に自動集計の設定が可能です。

【関連レコードの数値を集計できるプラグイン・連携サービス】

  • 関連レコード一覧フィールド集計プラグイン
  • 集計サポート+(プラス)
  • アプリ間レコード集計プラグイン
  • kintone × 連携サービス(krewData)

関連レコードの自動集計ができれば、日々の数値工数の集計結果をリアルタイムで把握できます。
今回はその中でも特におすすめな、アプリ間レコード集計プラグインの設定方法をご紹介します。

アプリ間レコード集計プラグインで関連レコードの数値を集計する方法

アプリ間レコード集計プラグインは、直接関連レコードとして表示した情報を集計するわけではありませんが、関連レコードと同じように「条件に一致したレコードを集計する」ことが可能です。

基本的には条件に合致したら自動で集計を行いますが、一括で集計したい場合には一覧画面からボタンを表示させることもできます。

標準機能の「関連レコード」は「表示先のアプリ」で設定を行うのに対して、アプリ間レコード集計プラグイン「集計元」のアプリに入れて設定を行います。
集計結果を取得して保存させたいアプリを指定し、何をキーとしてどのような条件で集計するか、どの項目を集計するかを指定するだけで、集計元のアプリが更新されたタイミングで自動的に集計を行ってくれます。

knowhow関連レコード取得04

このプラグインであれば、集計先アプリを編集・保存しなくても自動的に更新してくれるため、関連レコードの値をリアルタイムで集計したいのならこちらがおすすめです。

その他のプラグイン等の特徴やできること、設定方法は以下の記事で詳しく解説していますので、気になる方はぜひご覧ください!
▼kintoneの関連レコードの数値を自動集計する方法は?プラグイン・カスタマイズでkintoneをさらに便利に

「kintone」サービスページはこちら

kintone関連レコードの値を取得・活用して業務効率化に役立てよう!

kintoneの関連レコードの値を取得して活用すれば、別のアプリに登録されたデータの把握が容易になります。
1つのアプリで別アプリのデータを関連レコードで確認できるだけでなく、数値の自動集計も可能です。

「kintoneの関連レコードの値を取得する」と聞くと設定が難しそうなイメージを抱きがちですが、コンストラクタやプラグインを使えば比較的簡単に値を取得できます。

kintone関連レコードの値を取得・活用して、自社の業務効率化に役立ててみてください!

「この事例を自社でも実現したい!」
という企業さまはお問い合わせください!

\ kintoneでの業務効率化について相談したい /

お問い合わせはこちら

課題に合わせて最適な施策をご提案

伴走支援について詳しく見る

ITツール導入の費用が最大450万円補助

補助金について問い合わせる

この記事を書いた人

生田智之

『DXの第一想起者』

日本人の心のふるさとである”三重県伊勢市”を拠点に、中小企業のDX化を支援しています。 kintoneをはじめとする、各社に合ったクラウドサービスの提案から導入、伴走まで一貫したサービスを得意としています。 また、youtubeではkintoneのノウハウを大公開する「kintone芸人」として活動しています。 「DX化したいけど具体的なイメージができない」「こうなりたい!はあるけど手段がわからない」…等の想いをお持ちの企業様、是非一度ご相談ください!

IT導入のお悩みなら、
コムデックラボ

まずはお気軽にお問い合わせください。