公開日:
こんにちは。gusukuのサポートの中の人、にらです。
最近人にビリヤニをお勧めしすぎて、本格的に名前を「にら」ではなく「ビリヤニ」にした方がいいのでは…?と悩み始めたわけですが、それはそれとして先月もまた奈良県天川村のキャンプ場に行ってきました。

この日は夕方から土砂降りの雨が降ったのですが、雨が止んだ後は涼しいというより寒いくらいで、真夏とは思えない過ごしやすさでした。
大阪の街はまだ9月中は暑いようなので、涼を求めて3か月連続でこのキャンプ場に来てしまいそうです。
冬に温かいもいいですが、夏に涼しいキャンプ場はやっぱりいいですね!
今回作るもの
さて、前回はエブリサイトでマイページを作成しました。
今回は、各キャンプサイトの空き状況を予約前に確認するためのページをエブリサイトで作りたいのですが、キャンプサイトの予約状況から空き状況を表示するには複雑なデータ処理が必要になります。
複雑なデータ処理はエブリサイトよりカスタマインの定期実行タスクの方が向いているため、今回は下記のように役割分担にすることにしました。
- カスタマイン
- 定期実行タスクのカスタマイズで、予約明細アプリに登録された予約情報をもとに、サイトごとの空席状況を「空席管理アプリ」に登録する
- エブリサイト
- 「空席管理アプリ」のレコードを、キャンプ場利用者に見えるように公開する
空席管理アプリの作成
空席管理アプリはキャンプサイト(施設)ごとに、1日1レコードを作成し、予約数と受入可能数を登録して管理します。

レコードを登録した際は下記のようになります。
今回作成するカスタマイズでは、「予約数」を予約明細アプリに登録された情報をもとに集計してセットし、その情報をエブリサイトで表示する想定です。

まずは、カスタマインで空席状況を集計し、「空席管理」アプリに登録するところから始めます。
作成する定期実行タスクのカスタマイズの内容
カスタマインの定期実行タスクのカスタマイズは、決まった時間になったら起動して実行される、いわゆる『バッチ処理』を作成できます。
または、kintoneの画面にカスタマインでボタンを作成して、ボタンを押すと
今回は、下記のようなスケジュールで実行する、2つのカスタマイズを作成します。
- 1か月に1回月初に、3か月後の月の空席管理のレコードをまとめて作成する
- 毎月実行して、常に3か月後までレコードがある状態にする
- 1時間に1回、空席管理の空席状況を更新する
1つ目:1か月に1回月初に、3か月後の月の空席管理のレコードをまとめて作成
こちらは、やること「日付の範囲からレコードを追加する」を使用して、1日1レコードをまとめて作成します。
まず、空席管理アプリに接続します。
また、空席管理アプリには宿泊施設マスタアプリのルックアップが含まれるため、宿泊施設マスタアプリにも接続しておきます。

次に、3か月後の月初と、月末の日付を取得しておきます。
getdate 関数 を使用すると、『今月月初』など、定期実行タスクのジョブ(処理)が実行された日を起点として、引数として指定した日付を取得できます。

次に、宿泊施設マスタから、「予約可否」が「可」のレコードだけを取得します。
ここで宿泊施設マスタのレコードを取得し、次のアクションで条件「レコード1行が準備できた時」を指定すると、アクション18がアクション24で取得されたレコードの分だけ実行されます。
このような設定にすることで、宿泊施設ごとに1日1レコードを作成できます。


以上が1か月に1回実行するカスタマイズです。
スケジュールは、毎月1日に実行されるように設定しました。

2つ目:予約明細をもとに空席管理アプリを更新する
こちらは、空席管理アプリと予約明細アプリに接続します。

次に、空席管理アプリから「日付」フィールドの値が今日以降のレコードを取得します。
これは、空席管理アプリで処理対象にしたいレコードを取得するためのアクションですので、昨日以前の空席のカウントは不要なため、今日以降のレコードだけを取得します。

次に、空席管理で取得したレコードを1レコードずつ取り出し、そのレコード内の「日付」と「施設コード」フィールドの値を条件に、予約明細アプリからレコードを取得します。
そうすることで、施設ごと、日付ごとのレコードが取得できますので、そのレコードをカウントすれば、その日の予約数を取得できます。
なお、「予約明細」アプリは、予約期間が9月1日~9月3日の場合、
- 9月1日のレコード
- 9月2日のレコード
の2レコードが作成される仕様になっているため、単純にカウントすれば予約数がわかるようになっています。

ということで、あとはカウントして値をセットすれば集計は完了です!

こちらのカスタマイズは、1時間に1回実行したいので下記のようにスケジュール設定しておきます。
念のため、空席管理アプリにレコード追加を行う時間は除外しておきます。

実行確認
予約明細にレコードを追加して、空席管理の定期実行タスクを実行してみます。

9月11日と、12日のフリーサイトの受入化の数が減っていますので問題なさそうです。

以上で、エブリサイトで表示するための空席管理アプリは完成しました!
今回はここまでです
ここからエブリサイトで空席管理アプリの情報を表示するところに進むのですが、
今回は長くなってしまったのでここまでです!
エブリサイトでの表示用のアプリの作成と、既存のアプリの情報を表示用のアプリに自動的に反映するための定期実行タスクのカスタマイズ、いかがでしたでしょうか?
次回も楽しみにしていただけると嬉しいです~!
投稿者プロフィール

-
gusukuのチャットサポートの中の人です。
kintone認定資格は5冠。
趣味はキャンプ、最近登山もはじめました。