カテゴリー内の他の記事

関連レコードの件数を取得するワザ

フォローする

はじめに

指定した条件にあてはまるレコードをフォームに表示する「関連レコード一覧」ですが
関連するレコードの数を取得することができません。

そこで今回は、アプリ同士の連携で、関連レコードとして紐づけられている
レコードの数を表示させるためのTipsをご紹介します。 

利用イメージ

例えば、顧客リストアプリと案件情報アプリで
顧客名で紐づけた関連レコードを利用している場合に
顧客リストアプリ内で関連した案件の数を把握したい場合に利用できます。

 

あるいは、レンタル品目一覧アプリとレンタル申請アプリを紐づけている際には
レンタル品目一覧アプリを確認することで、利用回数の多い備品を確認することなどが可能になります。

毎回、関連するアプリに移動し絞り込みやグラフの確認などをすることなく
関連レコードを設置したアプリからレコード数が確認できるようになるTipsです。

アプリの準備

まずは今回のTip用では、アプリストアにある営業支援(SFA)パックを利用し
すでに紐づけがされている顧客情報(Aアプリ)、案件情報(Bアプリ)を利用します。

顧客情報(Aアプリ)

顧客情報(Aアプリ)には、下記のフィールドを用意します。
※アプリストアのアプリを利用する場合も、フィールドコードの修正を行ってください。

フィールド名 フィールドタイプ フィールドコード 備考

案件一覧

関連レコード一覧

relation

件数対象の関連レコード一覧

会社名 文字列(1行) CompanyName

関連レコードに表示するレコードの絞り込み用


また、関連レコードの件数を表示するための、スペースフィールドを追加します。

フィールド名 フィールドタイプ フィールドコード 備考

(名前設定なし)

スペース

num

 関連レコードの件数を表示用スペース

ついでに、スペースフィールドの近くにラベルを設置して
何を示している値なのかわかりやすくしておきましょう。

※この場合のラベル名は関連案件数としています。

案件情報(Bアプリ)

案件情報(Bアプリ)には、下記のフィールドを用意します。
※アプリストアのアプリを利用する場合も、フィールドコードの修正を行ってください。

フィールド名 フィールドタイプ フィールドコード 備考
顧客名

ルックアップ
または
文字列(1行)

CustomerName

関連レコードに表示するレコードの絞り込み用

 

サンプルコード

ソースコードの説明

kintone.Promiseオブジェクトでの非同期処理

kintone APIでPromiseを使ってみよう!のページで解説されているように
別アプリのデータを取得して処理を行う際にはkintone.Promiseの利用が推奨されています。
このサンプルでは上限100件までのレコードを指定して、
関連レコードで紐づけているBアプリのレコードの情報を取得しています。

この部分の解説については、Promiseを利用したモダンなアプリの全レコード取得の書き方
もあわせてご参照ください。

 

関連レコード数の値をスペースフィールドに反映

上記kintone.api()で取得したオブジェクトの数をスペースフィールドに反映させます。

スペースフィールドの利用については、kintone API解説シリーズレコード詳細にもボタンを設置しよう
kintone.app.record.getSpaceElementについて詳しく解説しています。

今回はというフィールドコードで設置したスペースフィールドに
値を反映させますので、関連レコードの項目を条件付きで集計と同じように
関連レコードに合致するレコードの数を、フィールドの近くに設置しました。


※上記サンプルの場合は一度に表示する最大レコード数を5件に設定していますが
 実際の案件情報アプリでの関連レコードは全部で6件登録されていることがわかりました。

関連レコードの絞り込み条件を増やした場合

関連レコードのフィールド設定で「さらに絞り込む条件」を設定することができます。

2017-12-21_15h27_08.png

この設定を行った場合は、サンプルコード上で件数カウントをするためのクエリにも条件を追加してください。

デモ環境

https://dev-demo.cybozu.com/k/285/

※デモ環境についての説明、アカウントとパスワードはこちら

おわりに

アプリ同士の連携を図る関連レコード一覧は標準機能で利用できるため
kintoneを活用するには欠かせない機能となっています。

さらに、今回のTipsでご紹介したカスタマイズを加えることで
より便利になると思いますので、お使いのkintoneアプリ用にアレンジを加えて
チーム内での情報活用にお役立てください。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
長田 英里

上記サンプルを試してみたところ、関連案件数ではなく、Bアプリの全レコード件数が表示されてしまいました。

どのような要因が考えられますでしょうか?ご教示いただけますと幸いです。

Avatar
cybozu Development team

長田 英里 様

返答が遅くなり申し訳ございません。

サンプルコードでは、ご指摘の通り関連案件数ではなく全レコード件数を取得するものになっていました。
大変失礼いたしました。

サンプルコードと記事の内容を修正しました。
デモ環境もご用意しましたのでご活用ください。

Avatar
長田 英里

お忙しいところ、ご対応くださりありがとうございます!

是非試してみたいと思います。

取り急ぎお礼まで。

ログインしてコメントを残してください。