見出し画像

【Click】データベースの既存データを空白(null)に更新する方法

(なぜこれを書いたか)
NoCodeのClickでスマホアプリを作っていると「どうしてこんなことが出来ないの!」と思わず叫んでしまうことがしばしばあります。

例えばデータベースに既に入力されているデータの一部を更新(Update)で空白にしたくてもなかなか出来ません。Adaloだったら空白データを送信すればそのデータは空白(null)になってくれます。

なかなかいい方法が見つからず数ヶ月悶々としていたのですが、ある日ひらめいて解決できました。備忘録を兼ねて記録に残すために今回のブログを書きました。

1.Clickは既存データを空白に更新出来ない


例:データベースに入力したデータの一部を元の空白に戻したい場合。

更新(Update)で空白データを送っても、そのデータは空白にならず、元のままなんです。データを入れちゃったけど空白に戻したいことってたまにありますよね。

何言っているのか理解出来ない人もいると思うので画像を使って説明します。

①簡単なデータベースで説明します
「メンバー」というデータベースがあり、「氏名」、「入会日」、「備考」という項目で構成されています。(入会日は日付型、備考はテキスト型です。)

②カスタムリストでデータベースの内容を表示します
以下のようにホーム画面にカスタムリストを配置して「メンバー」DBと紐づけしました。

③データべースを更新する「編集」画面を追加
カスタムリストをクリックすると編集画面に遷移して、ここでデータ編集ができるようにします。

④更新のClickFlowを設定します
氏名、入会日、備考のうち、入会日と備考を編集できるようにClickFlowを設定します。(この例では氏名は変更しないという事です)

2.空白データを転送した時の動きを確認


上記で設定した内容が実際どういう動きになるか確認します。例えばカスタムリストの一番上のDさんの入会日、備考を編集(空欄に)してみます。

①編集データを編集画面に転送する
Dさんの行(レコード)をクリックするとDさんのデータがCurrent Dataとして「編集」画面に転送されます。

②入会日、備考のデータを削除し更新ボタンを押す
入会日、備考の2つのデータを削除し、空欄にした状態で「更新」ボタンを押すと下記画像の右側のようになります。

結局何も変わらないんですね、これが。空白データを送っても元データはそのままなんです。ここが問題なんです。どうすれば元データを空白(null)に出来るのかずっと悩んできました。

3.空白データの送り方を変えたら出来た

結論から書いてしまいます。空白データの送り方をちょっと変えてみました。元々のデータベースに「空白Date」、「空白備考」という項目を追加しました。(ここには何のデータも入れない。空白のまんまです。)
この空白データを更新で使うというやり方です。

①データベースに「空白Date」、「空白備考」という項目を追加

②ClickFlowを2つ追加する
メンバーDBの一部のデータを空白にするために更新のClickFlowを設定しましたが、普通にやっていると空白データを送っても元データを空白(null)には出来ないことが分かりました。

そこで元データベースに空白の項目を作って、これを更新で送ってやるというClickFlowを作ります。入会日を空白にする場合と備考欄を空白にする2つの設定が必要となるので更新のClickFlowを2つ追加します。(下記画像)

③入会日を空白にするClickFlowを作る
入会日の欄にデータベースの空白Dateというデータを入力します。
Current メンバー>空白Date

但し、これが動作するのは入会日が空欄の場合だけです。(下記画像)
(動作条件)
インプット1(入会日の欄の事です)
等しい
Empty(空白の時です)

※空白Dateは必ず日付型のデータとして下さい。そうしないと選択肢に出てきません。

④備考を空白にするClickFlowを作る
備考欄に空白備考という空白データを転送します。
Currentメンバー > 空白備考

但し、これが動作するのは備考欄が空白の場合だけです。(下記画像)
(動作条件)
インプット2(備考欄の事です)
等しい
Empty(空白の時です)

⑤プレビューで確認します
ホーム画面を開いてまたDさんの行をクリックしてDさんのデータを編集画面に転送します。(下記画像)

入会日、備考欄のデータを削除して空白にします。この状態で更新ボタンを押すと今度はDさんの入会日、備考欄が空白(null)になりました。
やっと出来ました!

(ポイント)
空白データを送るときに単にインプットの中身を削除して空白にしただけでは元データを空白に書き換えることは出来ません。

そこでデータベースの中に空白の列を作り、これをClickFlowの設定に組み込んで別の形の空白データを送ってやります。そうすると元データも空白(Empty,Null)に更新することが出来ます。

これはネットのどこかに書いてあったわけでなく、いろいろ試行錯誤した結果、見つけたものです。しかし、疑問に感じてから1年半くらいたってようやくなんとか出来ました。このやり方が何かの参考になれば幸いです。


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