【Bubble攻略】Schedule API workflowを使った定期実行の方法!

こんにちは!今回はBubbleの中でもバックエンドでの使用頻度が高い「Schedule API workflowを使った定期実行」について解説していきます!
reccuringを使用した方法もありますが、よりピンポイントの時間に実行させたい場合はぜひこちらを試していただければと思います。
なお、freeプランでは利用できないフローとなりますのでご了承ください。

それでは早速始めましょう!


Schedule API workflowとは

Schedule API workflowとは、バックエンドで使用できるアクションとなります。
フロントで設定することはできませんが、こちらを使用することで任意のタイミング、つまり予約実行が可能となります。
毎月1日になったら同じアクションを実行したい、毎日定期的に実行したい!等を叶えてくれるのがこのワークフローとなります!

設定項目について

今回は、10分毎にデータベースに新規でデータを作成するように設定していきます。

まずはbackend workflowsで「New API workflow」をクリックし、新しいワークフローを作成します。
なお、backend workflowsはページ選択画面から遷移することができます。

なお、API workflowにはいくつか設定項目があるので紹介します。

Expose a public API workflow

→外部からAPI workflowを実行することができるようになります。
セキュリティのことも考えると、できる限りチェックは外しておくことをお勧めします。
こちらはまた別の外部接続の記事等で紹介させて頂ければと考えています!

This workflow can be run without authentication

→認証なしでワークフローを実行できるように設定することができます。
上記で外部からAPI workflowを実行したとしても、本来認証が必要になりますが、こちらをチェックすることでその認証も不要で実行することができるようになるものです。
こちらもできればセキュリティの観点からまずはチェックを外しておくことをお勧めします。

Ignore privacy rules when runnning the workflow

→プライバシルールを設定している場合に、こちらをチェックすることでルールを無視してデータにアクセスしてワークフローを実行することができるようになります。

Parameter definition

Manual definition
→Add a new parameterをクリックすることで、パラメータを追加することができ、このパラメータを追加することで、このワークフローを実行する際に値を送信することができます。

Detect request data

parameterで値を決めて送信するのではなく、送信する側のデータを直接受けることで、データの型を決定することができます。(今回はこちらは利用しません)


大きくは上記の項目で設定ができます!
今回は全て「チェック不要」で「Manual definition」の設定で進めていきます。

早速使ってみよう!

では上記を用いて早速設定して使ってみましょう!

まずは任意のデータベースを作成し、ここにデータを作成するようにしましょう。
一旦仮に以下のようにデータベースを作成しました。

次に上記にデータを作成するため、step1に以下のようにデータを作成します。

これでnumberに1と入ったデータが作成されます!

これを10分毎に予約するようにしていくために、新たにstepを作成します。

「Custom Event」→「schedule API Workflow」を選択し、
以下のように設定します。

この設定は
API Workflow:どのワークフローを実行するか
Scheduled date:どの時間に実行するか

で決まります。そこで、今回は現在時刻から10分後にいま作成したAPI workflowを実行するようにしています。
これにより、データ作成後10分後に再度APIの予約が行われるようなフローが出来上がりました。

では最後にフロントからデータを予約しましょう!
まずは予約するボタンを配置しましょう。

ここにワークフローを設定します。
API Workflowには先ほど設定したワークフローを実行するように設定したいので、以下のようにstepを設定します。

Custom Events→Schedule API Workflowをクリック。

API Workflow:先ほど作成したバックエンドワークフローを設定
Scheduled date:Current date/time+minutes:10で設定。

これで設定することができました!
では早速検証していきましょう!
予約するボタンから実行すると、10分後にデータが作成されることが確認できます!

上記のDBが実行から10分後に作成されていれば設定は完了です!

予約の確認と削除方法

予約がされているかを確認するには、Logsのタブから「Scheduler」を選択し、「Show」をクリックしましょう。
すると現在APIのSheduleがされているものがリストで表示されます。

ここで1月23日の9:55に実行される予定であることが分かりますね。
なお、Cancelをクリックすると、この画面から予約をキャンセルすすることもできます!

ただし、管理画面からだけでなく、ユーザー操作でも予約を止めたいこともあるかと思います。
ここからは画面から削除できる設定方法を紹介します。

ユーザー主動で削除するためには、上記の画像のID部分(30045と記載された箇所)を取得しておく必要があります。
これを取得するためのワークフローを作成します。

保存方法は簡単で、Result of stepを用いることで取得することができます。
Result of stepは実行したstepの結果を使用することができるものになっています。
今回では、Schedule API workflowの結果である予約IDを保存することができます!

上記のように、保存しておくことでDBからIDを使用して予約をキャンセルすることができます。

キャンセルするためのワークフローは
Cancel a schedule API workflowを用いることでキャンセルすることができます。
IDには先ほど取得したIDを使用しましょう!

上記をフロントのワークフローで設定することでユーザー主動で簡単に消すことができますね。

まとめ

今回はSchedule API workflowについて紹介させて頂きました!
Schedule APi workflowを使用することで、毎週決まった時間にお知らせを配信したい、、毎日データ更新をしたい、、等決まった時間にワークフローを実行することができます!
また、繰り返し処理でなくても、アラーム等ユーザー主動で予約実行することができますので、かなり色々な場面で役に立つワークフローとなっておりますね!

それでは今回もお読みいただきありがとうございましたー!

この記事が気に入ったらサポートをしてみませんか?