AppSheetを使っていると、データの元となっているスプレッドシートに直接カラムを追加や削除したい場合があります。
そういったときに、スプレッドシートとは連携がないAppSheetのみで使用しているバーチャルカラムは消えてしまうのか?それともそのまま残るのか?
他にも、テーブルの元となっているスプレッドシート上でカラム名を変更したときに「Regenerate Schema」をすると、カラムに設定したformulaやserarch, scan, nfc, pii などの設定は消えてしまうのか?そのまま残るのかについて簡単にまとめています。
バーチャルカラムは消えない
まず1つ目の結論から言うと、Regenerate Schemaでスプレッドシートの変更内容を読み込んでも、バーチャルカラムは消えません。
作成した状態で残ります。
実例1(列の追加):バーチャルカラムは消えない
元の状態
例えば、「貸出管理マスター」というテーブルに「VC在庫」というバーチャルカラムがあるとします。
カラムの内容としては、LOOKUP関数を使って他のカラムの値を参照しているだけの処理です。
参考のテストとして、「Searchable」「Sensitive data」にもチェックが入っている状態です。
更新後
この状態で、テーブルの元となっているスプレッドシートに「画像」というカラムを追加します。(データはダミーです)
この状態で「Regenerate Schema」をクリックします。
バーチャルカラム「VC在庫」の上に先ほど追加した「画像」カラムが追加されました。
もちろん、バーチャルカラムはそのまま残っています。
「SEARCH?」や「PII?」の設定もそのままです。
実例2(列の削除)
上記の状態で先ほど追加した「画像」カラムを削除します。
テーブルの元となっているスプレッドシートから「画像」列を削除します。
この状態で「Regenerate Schema」をクリックします。
「画像」カラムが消えました。もちろん、バーチャルカラムはそのまま残っています。設定も変更はありません。
Relatedカラムも消えない・設定もそのまま
ちなみに、リレーションを結んだことで自動追加される「Related テーブル名」のカラムもバーチャルカラムと同様に、元となっているスプレッドシートのカラムを追加や削除してもそのまま残ります。
カラム名を変更した場合:設定はリセットされる
バーチャルカラムでない通常のカラムのカラム名を変更したい場合は要注意です。
テーブルの元となっているスプレッドシート上でカラム名を変更し「Regenerate Schema」を行うと、元のカラムの設定はなくなり、まったく新しいかラムとして読み込まれます。
実例3(カラム名の変更)
例えば、以下のように「画像」というカラムがあるとします。
このカラムはタイプが「Image」で「FORMULA」「SHOW?」「EDITABLE?」「REQUIRE?」「SEARCH?」「SCAN?」「NFC?」「PII?」が設定されています。
カラム名変更後
このカラムのカラム名をスプレッドシート上で「画像」から「書籍名冒頭」に変更します。
この状態で「Regenerate Schema」をクリックます。
すると、すべての設定がなくなり、まったく新しいカラムを読み込んだ状態になります。
このため、通常のカラムのカラム名を変更したいときに、テーブルの元となっているスプレッドシート上で変更する場合は注意してください。
カラム名を変更する方法(スキーマはそのまま)
タイプやSCAN?などの設定はそのままでカラム名を変更したい場合は、カラム設定の中にある「Display name」を指定します。これで、AppSheetのアプリ上でこのカラムを呼び出したときは、カラム名ではなく「Display name」で指定した値が表示されます。
くれぐれも、一番上の「Column name」をいじらないように注意しましょう。
Regenerate Schemaが適用されるのは対象のテーブルのみ
ちなみに、これもとても重要なことですが、Regenerate Schemaを実行したときに、テーブル内容を更新するのは対象のテーブルのみです。他のテーブルには影響はありません。
例えば、以下のように「ユーザー一覧」「貸出管理マスター」「本一覧」という3つのテーブルがあるとします。
このときに、テーブルの元となっているスプレッドシートでそれぞれのシートにカラムを1つずつ足したとします。
AppSheetの「本一覧」テーブルで「Regenerate Schema」を実行すると、その変更が適用されるのは「本一覧」テーブルのみです。
他の2つのシートには影響を及ぼしません。