AppSheetをデータベースからスプレッドシートへ変更する際に気を付けるポイント

データベースからスプレッドシートへ変更する背景

変更に至った背景

2024年3月時点では、AppSheetのデータベース機能は、新規機能として鳴り物入りで登場しており、界隈では期待値が高かったです。

そのため、新規アプリをデータベースで作成してみたのですが、いくつか課題があり(今後は改善されると思う)、データベースからスプレッドシートへ変更するようにしました。

現時点で感じるAppSheetデータベースの課題点

データベースのテーブル数

データベースの1テーブルで利用できるレコード数

性能改善対応

今回のアプリは、月末に1か月の作業から請求金額などを集計し、請求書を作成するバッチ処理的な機能があったのですが、帳票作成用の明細データの性能改善が必要でした。(というのも、そもそもAppSheetの更新処理は遅い。1レコード更新で1秒くらいの感覚)

そのためGAS(Google AppScript)を使って性能改善が必要となりました。

ただ、GAS(Google AppScript)で処理を行おうとしたとき、AppSheetデータベースより、スプレッドシートを利用したくなります。(というか、調べてはないですが、AppSheetデータベースに対してGASでデータ更新できるのか?)

AppSheetデータベース脱却の対応方針

前提として、データベースからスプレッドシートへ変更するのは、アプリをコピーする際にAppSheet側で自動でやってくれます。ただ、それによりどのような影響が発生するかは、やってみなければ分からんということで、ここにメモします。

以下、発生した問題と対策を、発生順でメモしていきます。(今後の自分のために)

発生問題① 金額が表示されなくなる

発生事象

金額が表示されなくなってしまいました。最後の行(¥5000)だけ表示されているのは、事象発生後に追加したデータです。

移行後のスプレッドシートを確認してみたところ、

金額データは入っており、データベースからスプレッドシートへ変更した際も移行されています。ただし、スプレッドシートの書式(データのフォーマット)は違っています。

原因

これは既存不具合の線もありますが、AppSheet側の「Data」で、金額項目にもかかわらずTypeを「Decimal」にしていた点が原因でした。

対策

「Data」の項目を修正していきます。

  • Type: DecimalからPriceへ変更
  • Decimal digits:小数点以下を2から0へ変更
  • Currency symbol:円マーク「¥」に変更

結果、正しく金額が表示されるようになりました。

ただ、この事象は、本アプリ特有かもしれません。

というのも、本アプリは「一般ユーザ用」と「管理者用」で分けているのですが、同じデータベースを利用しています。

で、今回の事象は「一般ユーザ用」のアプリでのみ発生しており、「管理者用」のアプリでは発生していませんでした。

なぜなら、「管理者用」は上記の項目を「Price」に指定していたため、正しく表示できていました。

まとめ

移行前に「Data」のTypeを「Price」にしていた項目は、スプレッドシートへ移行後は注意が必要です。

もし移行後のアプリで「Decimal」などの数値型として参照しようとすると、スプレッドシート上は、「¥5000」の形式で保存されているため、正しく参照できないくなります。

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です