gusuku Customineを使ったkintoneアプリのカスタマイズでは、条件分岐のようなロジックは同じような条件を並べることで構築していきます。今回はレコードを取得して無かったら追加、あったら更新のようないわゆるUpsertの動きを作成してみたいと思います。
UPSERTの動きは、この様にもう少し簡単に書く方法もありますので、参考にしてください。
https://support.gusuku.io/ja-JP/support/solutions/articles/36000114809
Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。
利用想定シーン
kintoneアプリを色々作成していくと、その利用統計を取りたくなるケースが出てくると思います。今回は、「アプリ利用統計」と言うアプリを作成して、そこにアクセス数を記録することで利用統計を取る、と言う利用シーンを想定してみました。
また、アプリごとに画面がありますので、それも一緒に記録してみることにします。
「アプリ利用統計」のアプリのフォームは以下のとおりです。
アクセス数だけ数値で、それ以外は文字列のフィールドとして設置しました。
keyの項目は、画面の特定に利用します。このように値の重複を禁止しています。
Customineの設定
利用統計を取りたいアプリから、上記の「アプリ利用統計」アプリにレコードを追加していきます。ここでは「案件管理マスタ」アプリの利用統計を取ることを想定して、カスタマイズの作成を始めます。
大まかに言うと、以下のようなステップになるはずです。
- 指定画面の利用統計レコードを取得する
- レコードがなければアクセス数1でレコードを追加する
- レコードがあればアクセス数を+1してレコードを更新する
それではやってみましょう。
まずレコードを取得する
はじめに利用統計のレコードを取得します。keyには「アプリ名,画面名」という値を利用することにします。まずは一覧画面の利用統計を取るカスタマイズを作成してみます。
- 「やること」にカテゴリー:レコードの中から、「クエリで条件を指定してレコードを取得する」を選択します
- 「取得先アプリ」には「アプリ利用統計」を選択します
- 「検索条件」には「="key = \"案件管理,一覧\""」と入力します
やることの設定は以上です。条件として「一覧画面を表示した時」を選択すれば、このアクションは完成ですね。最終的にはこのような形になります。
利用統計レコードがなかったとき、追加する
次に利用統計レコードが見つからなかったときに、レコードを追加するアクションを作成してみます。
今回は条件から指定していってみましょう。
まず条件として「他のアクションの実行が完了した時」を選択します。指定するアクションは上で作成したアクションを指定します。
追加で、「レコード件数が0件ならば」の条件を追加します。レコードには同じくアクション番号1を選択します。最終的にはこうなりますね。
次に、やることを設定していきます。利用統計がなかったら、レコードを追加です。以下のような手順で作成します。
- カテゴリー:レコードの中から、「レコードを追加する」を選択します
- 「追加先アプリ」には「アプリ利用統計」を選択します
- 「マッピング」にはアクセス数が1の利用統計を作りたいので、以下のような形で値を入力します
最終的には、このような形になりました。
利用統計レコードがあったとき、更新する
次に利用統計レコードが既にあったときに、更新する動きを作成します。
これも条件から設定していくと、以下のような手順になります。
- 「他のアクションの実行が完了した時」を指定します
- 「アクション」には、アクション番号1を指定します
- 「+」ボタンで条件を追加します。「レコード件数が1件以上ならば」を追加します
- 「レコード」には、同じくアクション番号1を指定します
条件はこうなりますね。
最後にやることを設定します。
今度は「レコードを更新する(キーの値を直接指定)」を選択します。
- 「更新先アプリ」には「アプリ利用統計」を選択します
- 「キーとなるフィールド」には「key」を選択します。値の重複を禁止したフィールドですね
- 「キーの値」には「="案件管理,一覧"」と入力します。検索条件のときにも利用した「アプリ名,画面名」の値ですね
- 「マッピング」でアクセス数を更新します。元の値に1を足したいので、「= @out.アクセス数 + 1」と入力します。「@out.(フィールド名)」で更新先のレコードのフィールドの値を参照することができます。詳細はフィールドマッピングの記述方法をご覧ください。
- 「競合の更新をチェックする」は「チェックする」にしておいて構いません。ただし、非常に多くのアクセスが有るアプリの場合、アクセス統計の更新が競合して実行時エラーになる場合がありますので、その場合には「チェックしない」にしておくと、利用者負担が軽減できます(その代わり正確なアクセス統計にはなりませんのでご了承ください)
最終的な設定はこのようになります。「kintoneアプリへ登録」して動きを確認してみてください。
案件管理アプリの一覧画面を開くたびに、アプリ利用統計の該当列のアクセス数がカウントアップされていくと思います。
まとめ
アプリの利用統計を取るのカスタマイズは以上になります。このような処理を統計を取りたい画面毎に追加していくことで、どの画面でも、例えばボタンの押された回数などでも登録することが可能になります。色々お試しください。
別アプリのレコードを取得して、その件数によって処理を分けるというカスタマイズは、非常に汎用的に利用できると思いますので、ぜひ色々なカスタマイズにご活用ください。
もし分からないことがありましたら、フォーラムの方でご質問ください。