今回は複数の条件を指定してレコードを取得する方法をご紹介します!
使用するのはやること「取得したレコードを絞り込む」です。
このやることを使用すると「全レコードを取得する」や「キーを指定してレコードを取得する」で取得したレコードを条件指定して絞り込むことができます。
また、絞り込んだレコードをさらに絞り込むこともできるので、それについてもこのページでご紹介していきます。
Customineの基本的な事柄は、「はじめてのカスタマイズ」をご参照ください。
使用例
今回のカスタマイズを使用した際の例は、次のように売上管理アプリの一覧のレコードを絞り込んでフィールドの集計結果を表示することです。
具体的には、自分(ログインユーザー)が担当者であり、受注日が今月(2024年12月)で、入金状況が未入金のレコードの売上金額を集計して表示します。
カスタマイズの方針
基本的にレコードを取得する処理は、取得するレコードが多ければ多いほど、時間がかかります。
そのためやること「条件を組み立ててレコードを取得する」などを使用して、不要なレコードは取得せず、処理に必要なレコードのみを取得するようにしましょう。
今回は、自分が担当者のレコードのみを表示する一覧をあらかじめ用意しておき、やること「一覧の条件でレコードを全件取得する」を使って集計する必要があるレコードのみを取得します。その後日付で絞り込み、入金状況でさらに絞り込み、集計して表示する、という流れのカスタマイズを作成してみます。
アプリの設定
使用するアプリのフォームには次のような設定を行います。
※フィールド名とフィールドコードは同じものを設定しています
編集画面での表示例はこちらになります。
また、アプリの一覧の設定で「自担当レコード一覧」を追加します。
その際、絞り込みには次のように設定を行います。
条件:担当者にログインユーザーを含む
ソート:受注日の降順
Customineの設定
一覧の条件でレコードを取得する
まず、レコード一覧画面にて「自担当レコード一覧」を表示した時にその一覧の条件でレコードを取得します。
やること「一覧の条件でレコードを全件取得する」を使います。
また、一覧画面の中でも「自担当レコード一覧」のみで表示させたいので、条件「一覧画面を表示した時」、「現在の一覧が指定の一覧ならば」を設定して、「自担当レコード一覧」を指定します。
受注日が今月のレコードに絞り込む
次に、一覧の条件で取得したレコードから受注日が今月のレコードへとさらに絞り込みを行います。
今月の月初を計算する(絞り込みの準備)
「今月のレコード」は、すなわち今月の1日から末日までのレコードです。そのため絞り込むのに必要な今月月初と今月末日の日付を取得します。
やること「特定の日付を取得する」を使います。「日付の種類」にはそれぞれ「今月月初」と「今月末日」を選択します。
また、条件「他のアクションの実行が完了した時」「レコード件数が1件以上ならば」を使用します。レコードが取得できなかった場合は計算できないので、レコードが取得できた場合だけ処理を進めるようにします。
※レコードが取得できなかった場合の処理は後述します。
今月のレコードのみに絞り込む
そして、取得した「今月月初」と「今月末日」の日付を利用して今月のレコードに絞り込みます。
やること「取得したレコードを絞り込む」を使います。
まず、4番で一覧の条件で取得したレコードで、受注日が今月の月初以降のレコードに絞り込むので、次のような条件になるよう指定します。
受注日 が 今月月初(アクション2の結果) より 大きいか等しい(>=)
次に、4番で絞り込んだレコードを元のレコードとしてさらに絞り込みます。受注日が今月の末日以前のレコードに絞り込むので、次のような条件になるよう指定します。
受注日 が 今月末日(アクション3の結果) より 小さいか等しい(<=)
「入金状況」が「未入金」のものにさらに絞り込む
続いて、5番で絞り込んだレコードを元にさらにレコードを絞り込みます。
やること「取得したレコードを絞り込む」、条件「他のアクションの実行が完了した時」で6番の直後に実行されるようにします。
また、2番と同様に、レコードが取得できた場合だけ処理を進めるようにします。
※レコードが取得できなかった場合の処理は後述します。
売り上げの合計を計算する
そして絞り込んだレコードの売上金額を集計して合計値を計算します。
やること「レコード中のフィールド合計値を計算する」を使います。
また、2番と同様に、レコードが取得できた場合だけ処理を進めるようにします。
※レコードが取得できなかった場合の処理は後述します。
合計を一覧の上に表示する
最後に、絞り込んだレコードの売上金額の合計値を一覧画面のメニュー位置に表示します。
やること「メニュー位置に文字を表示する」を使用して、絞り込んだレコードの売上金額の合計値(アクション7番の結果)を一覧画面のメニューの右側に表示します。その際次のようなテキストを使用しています。
今月の売り上げ(未入金):${$7}
レコードを取得できなかったときの処理
1番、5番、6番のレコード取得、あるいはレコードを絞り込む各アクションでレコードを取得できなかった場合、「¥0」を一覧画面のメニュー位置に表示します。
やること「メニュー位置に文字を表示する」を使います。
条件には「他のアクションの実行が完了した時」を使用して各アクションの直後に実行されるようにします。
また、追加条件に「レコード件数が0件ならば」を使用して、レコードを取得するアクションでレコードが取得できず、集計対象のレコード件数が0件の場合は次のようなテキストを表示します。
今月の売り上げ(未入金):¥0
これで必要な設定はすべて完了です。
設定が終わったら、「kintoneアプリへ登録」し、動作チェックを行ってみましょう。
アクショングラフ
処理が分岐するカスタマイズですので、アクショングラフを確認しながら作成いただくことをおすすめします。
なお、このページのカスタマイズのアクショングラフは次の通りです。
終わりに
今回は「取得したレコードを絞り込む」を使用してレコードを複数条件で取得する方法をご紹介しました。
なお、売り上げの金額を必須項目にしましたが、空にしたい場合もあるかもしれません。空だと計算できない場合もありますが、「取得したレコードを絞り込む」で金額が空でないレコードだけに絞り込むこともできます!
「取得したレコードを絞り込む」は非常に汎用性が高いので、カスタマイズの自由度を大幅に上げてくれるでしょう!驚くような機能が実現できるかも!
ご不明な点がございましたら、チャットでお問い合わせください。
Customineドキュメントやサポートページも、ぜひご活用ください。
おまけ
今回の内容は、実は「条件を組み立ててレコードを取得する」を使用するとアクション数をぐっと減らすことができます。
この内容でなぜうまく動くのかについては、実際に設定して確かめてみてください!