データベース

Bubble Bulkの使い方 – 後からFieldsに一括データを入れたい時 API workflowの設定もていねいに解説

Bubble Bulk処理 データを一括で追加する

こんなことはありませんか?

後になって「もう一つFieldが必要だった」こと…

データのレコード数(Bubbleは「things」と呼びます)が少ないときは手入力も苦ではありませんが数十〜数百のレコードが生成された後だと手作業は日が暮れてしまいます。

さるくん
さるくん
データベース設計の漏れなどで、後からフィールドを追加したいことがあります
りすくん
りすくん
レコード数が多い時はBulkを使うと便利です!

前提:Personalプラン(有料プラン以上)から

前提としてBulk処理を行うにはBubbleの「Personal」プラン以上、つまり有料プランの必要があります。Bubbleのアカウント作成やプランについてはこちらのブログでも紹介しています。

アプリを本番公開している場合はそもそもPersonalプラン以上なので問題ありませんが、無料のFreeプランで開発を行っている場合はこのBulk処理を使用できませんのでご注意ください。

FreeプランのままBulkを行うとこのようなエラーが表示されます↓

画像)このプランはAPIにアクセスできません。プランをアップグレードしてください。

エラー内容にも表記されていますがBulk処理を行うには Workflow APIを使用することになります。APIはPersonalプラン以上から使用可能です。それゆえ無料プランだとBulkが行えません。

Bulk処理を行うにはPersonalプラン以上の契約が必要です。

例:User に yes/no フィールドを追加

今回例として扱うのは、Userデータにあとから一つ、Field type「yes/no」を追加し、レコード全てに「no」を入れる処理です。

例)
User typeに、論理削除の Field「user_deleted」yes/no を追加します。

*論理削除は、データは削除せずフラグを立てて削除扱いにすることをいいます。
実際のデータを削除(物理削除)してしまうとデータの復旧が不可のためアプリではこの論理削除をたてることが多いです。

既に何人かのUserデータが登録されています。
ここに新たに、user_deleted のfieldを追加します↓

新たに追加します↓

画像)Fieldを追加します。Field typeは「yes/no」にします
画像)user_deleted のフィールドが追加されました

追加しても、もちろん中身は空です。
中身を全て「no(いいえ)」にする処理をBulkで行います。
noにする理由は、ユーザーを削除したかどうか?の初期値は「no」だからです。
アプリの退会処理があったら後から「yes」になります。初期は「no」です。

Backend workflowの設定

Bulk処理はAPIを使用します。以下の2ステップで設定を行います。

API使用が可能になる設定をし、その後API workflowを組みます。

  1. Settingsで Workflow API使用が可能なようにチェックを入れる
  2. Backend workflowで API workflowを設定

SettingsでAPI使用が可能なようにチェックを入れる

おなじみの、Workflow APIを使用する際には必ずチェックを入れる項目です。ここのチェックを入れないとWorkflow APIを設定する画面「BAckend workflows」が表示されず、設定もできません。

Settingsタブ > APIタブ > Enable Workflow API and backend workflowにチェックを入れます

チェックを入れてはじめてBackend workflowsを使用することが可能になり、
ページを選択する画面に「Backend workflows」が表示されました。これをクリックしてBackend workflowの設定画面に行くことができます。

Backend workflowで API workflowを設定

次にBackend workflowに行き、New API workflowを設定します。

Click here to add a backend workflow > General > New API workflowを選択します

詳細の設定は以下のように行います↓

API workflow name任意の名前を入れます(英数字)
Expose as a public API workflowチェックを外します(外部で使用しないため、このチェックは必要ありません)
Ignore privacy rules when running this workflowチェックを入れます(プライバシールールで書き込み不可の場合は値が入りません。Bulk処理時はプライバシールールを無視します)
Add a new parameterパラメーター設定
任意のkey名を入れ、TypeはUserを選択します(今回はUserデータに対して処理をかけるため)

次に、Click here to add an actionからアクションを設定します。既存のUserデータに値を追加するMake change to thingを行います。

Click here to add an action > Data(Things)> Make changes to thing を選択

Things to changeに、一つ前の詳細設定で付けたパラメターの「key」名を、フィールドの user_deleted にはnoの値を入れることにします。

ここで「no」を選択したので、現在あるレコード全てに「no」を入れることになります。

パラメーター(parameter)で設定したkeyをactionの方で使用することができます。
今回の例では、key deleted のTypeがUserです。Userに登録された全てのレコードに対し、user_deletedを no(いいえ)にする処理を行います。

Bulkボタンを押し設定

ここまででWorkflow APIの設定が完了しました。
最後に「Bulk」です。

Dataタブに行き、App dataでUserを指定します。
ここでのポイントは、処理をかけるData typeを選択し、Bulkボタンを押すことです。

Data > App data > All Usersを選択

変更/上書きしたいData typeを選択し(今回はUser type)、Bulkボタンを押します。

Bulk処理のPOPUP画面が表示さます。
API workflowから先程任意の名前をつけた「bulk-user」を選択し、Run workflowのボタンを押します

処理が行われるのでしばし待つと、完了した旨が表示されます。

画像)処理完了画面。

今回の例では、「Bulk operation run successfully on 3 entries」3件の処理が成功しました、と表示されています。処理をかける数が多ければここが3件ではなくその数字、数百件などになります。

データを確認します。
先ほど空だったuser_deleted全ての行に「いいえ」(no)が入ったことがわかります。
画面に反映されないことがあるので、その時はRefresh dataを押すかページを再読み込みすると反映されます。

今回は3件のレコードに対してBulk処理をかけました。3件しかない場合は編集画面から手作業で「いいえ」を入力(選択)してもそれほど時間がかかりません。しかし数十件〜数百件のレコードを書き換える時には、このBulk一括処理はとても便利です。

手入力ミスや設定し忘れも防げます。

まとめ:Bulkを使えば数百件の処理も簡単に行えます

いかがでししたでしょうか?
BubbleのBulk処理も知ってしまえば案外簡単ですね。

  • 繰り返し処理を行うものを API workflowに設定
  • 「App data」タブのBulkボタンを押して処理を走らせる

これだけです。

API workflowを使ったことがない方には少し難しかったかもしれません。
これも慣れです。数回やってみることでコツがつかめると思います。

今回は、Userデータに対しBulk処理を行いましたが他のData typeに行ったり、条件をつけて処理したり試してみてください。
一気に数十〜数百のデータが書き換わるのは見ていて爽快です。

知れば知るほど楽しくなるBubble!
今日も一歩前進、楽しんでいきましょう^^


Bubble構築のご相談や代行も承っております。
お気軽にご連絡ください。

お問い合わせはこちら

ABOUT ME
おばとりっぷ
専業Bubbleエンジニア▷元webデザイナー/ディレクター▷CSSをBubbleに実装するのが得意▷日本国内のトップBubbleエンジニアとしてwebアプリ開発に携わる▷Bubble講師▷フルスクラッチ開発のアプリで起業した経験あり▷スタートアップ・起業家のBubbleアプリ開発の支援を積極的に行う。