はじめに
表計算ソフトのCOUNTIFS関数のような集計関数で、マスタのレコード毎の件数を把握する運用となるケースがあります。
この記事では、この要件をkintoneとカスタマインで満たせるようなカスタマイズの実現を目指したカスタマイズについて記載します。
元々運用されていた表計算ソフト
運用:「注文管理」の「返却遅延」の数を表計算ソフトのCOUNTIFS関数(以下、COUNTIFSと記載)で、取引先コードごとに集計し、表示している。
アプリの準備
まず、次の要領で2つのアプリを作成してください。
※この記事内で必要となるフィールドのみ記載しています
取引先マスタ
※フィールド名とフィールドコードは同じものを指定
注文管理
※フィールド名とフィールドコードは同じものを指定
検討:関連レコードをカウントすることで、遅延返却回数を集計できないか?
※注:この検討はうまくいかないので、結論となるカスタマイズを知りたい方は次の「カスタマイズ」節からご覧ください。
作成している関連レコードのうち、返却遅延のレコードの行数をカウントすることで、遅延返却回数を集計できそうな気がします。
実際にこの考えのもと、カスタマイズを行ってみました。
「取引先マスタ」アプリ
試してみた
試してみたカスタマイズは次の通りです。
「取引先マスタ」
3つのアクションを設定します。
それぞれ、次の「やること」、「条件」を設定しています。
やること「関連レコード一覧の条件でレコードを取得する」、条件「詳細画面を表示した時」
やること「取得したレコードを絞り込む」、条件「他のアクションの実行が完了した時」
やること「レコード行数をカウントする」、条件「他のアクションの実行が完了した時」
実行結果
「取引先マスタ」アプリ
狙い通り返却遅延回数がカウントされ、指定のフィールドにセットされました。これで事なきを得たように思われました。
ですが、すぐに問題点が見つかりました。
返却遅延回数のカウントは、「取引先マスタ」の詳細画面が開いたときに実行されるように設定しています。そのため、各取引先のレコードを開かないかぎり、返却遅延回数が更新されないままになってしまうのです。
これでは不便であるばかりか、「取引先マスタ」を開いていない状態で値を確認したケースでは、返却遅延回数を誤認させてしまうことになりかねません。
そこで、改めて別の方式を検討してみました。
カスタマイズ
今度は「取引先マスタ」アプリではなく、「注文管理」アプリの更新を受けて、返却遅延回数をカウントするようなカスタマイズを試してみましょう。
「注文管理」
3つのアクションを設定します。
それぞれ、次の「やること」、「条件」を設定しています。
やること「条件を組み立ててレコードを取得する」、条件「レコードを保存した直後(削除後は除く)」
やること「レコード行数をカウントする」、条件「他のアクションの実行が完了した時」
やること「レコードを更新する(キーの値を直接指定)」、条件「他のアクションの実行が完了した時」
なお、やること「条件を組み立ててレコードを取得する」の条件ビルダーは次の様に設定してください。
実行結果
「取引先マスタ」
まとめ
「注文管理」アプリでレコードが保存されたら、やること「条件を組み立ててレコードを取得する」で、集計対象とするレコードを絞り込む条件範囲(=フィールド)と検索条件(=値)を指定し、条件に合致したレコードのみを取得します。
そして後続のやること「レコード行数をカウントする」でその取得したレコードの数をカウントし、その結果をやること「レコードを更新する(キーの値を直接指定)」で、各取引先のレコードの返却遅延回数フィールドにセットしています。
これで、「注文管理」アプリでのレコード更新時に、「取引先マスタ」アプリの返却遅延回数をタイムリーに更新することができ、「取引先マスタ」アプリの一覧画面上で、常に最新の情報を確認できます。(課題:各取引先のレコードを開かないかぎり、返却遅延回数が更新されない)
ちなみに、やること「条件を組み立ててレコードを取得する」で条件「レコードを保存した直後(削除後は除く)」を使用していますが、カスタマインには他にも条件「レコードを保存する直前(削除時は除く)」という条件があります。
ですが、条件「レコードを保存する直前(削除時は除く)」を用い、更にエラーチェックなどを行っているようなケースだと、今回のアプリ構成例で例えれば、「注文管理」アプリの保存はキャンセルされたにも関わらず、「取引先マスタ」アプリだけが更新されてしまう という動きが起こり得ます。
そういったトラブルを防ぐため、今回のカスタマイズでは条件「レコードを保存した直後(削除後は除く)」を使用しています。
おわりに
この記事では表計算ソフトのCOUNTIFS関数のようなカスタマイズを行い、マスタのレコード毎の件数を把握する要件を満たせるようなカスタマイズを実現してみました。
どうでしたか? 集計が行いたくなった時は、この記事を参考にしてみてください!
また、ご不明点等ございましたら、チャットにてご質問ください!






