こんにちは。カトーです。
突然ですが、皆さんは社内の業務ソフト何を使ってますか?
システムガーディアン社の業務ソフトは私が過去に自作したのですが、最近G suiteに変えたところ、「アホでもGoogle App Makerなら超簡単につくれるぜ!」と聞き、マジカ!?と思い早速調べてみると、YoutubeのGoogle Cloud Japanチャンネルみても「このAppMakerはガチのプログラマーじゃなくても簡単に業務アプリをシームレスに開発出来ますよ!」なんて呪文のように言っています。
これですよこれ。正直私はガチプログラマじゃないですしね。総務的な人間がサクッと作れるのことを期待。
そんな訳で、折角なので構築しながらその手順を書いてみようと思います。今回は社内で使う見積書システムを作ろうと思いますよ。
まずはデータベースを用意だ!
いきなりですが、既に要件定義とかやりたいとこが決まっているのでバンバンデータベースから構築していきます。このAppMakerは色々なDBをつなぐ事が事ができるのですが、王道?というべきCloud SQLから用意。いきなりここで躓いた。分かってしまえばなんともないのですが、Gsuiteのアプリ画面でGCPのSQLを使えるようにしておくってことです。またAppMakerをアプリから選べない場合、プランが違うので見直しが必要です。
ちなみにこの時点で当たり前のようにGCP(Google Cloud Platform)と書いてますが、良く分からないという人に簡単に図にするとこうです。
なので、普通にPHP+CloudSQL、もしくはReactとか何かしらのフレームワークで作る!って人はこの時点でAppMakerは向いていません。
そんな訳でGCPでCloud SQLを用意できた時点で、Gsuite上のAppMakerで 接続名をG suiteの管理画面で入力します。
これでAppMakerのDATAでGoogle Cloud SQLを選べるようになります。当然ですがGsuiteの管理者権限で使えるようにしてないと無理ですので、事前に設定が必要です。
参考公式:Cloud SQL
https://developers.google.com/appmaker/tutorials/work-with-data?authuser=1
データベースのカラムを用意していく
今回は見積書アプリを作るので、その構造を作っていきます。ちなみに以前作ったソフトではメインのテーブルのIDをFkにして各品名を別テーブルに分けていました。これは見積の品名が多くなる事を予定したのと、品名を使い回せるかな?と作っていたのですが実際に5年、いや前の会社から合わせると15年ですが見積の項目は多くなくて良いとわかりましたので、今回は品名数を決め打ちで作ります。また顧客名も別テーブルのリレーションとも考えていたのですが、見積時点で案件が失注・受注になるとは限らないため、どうなるか分からない案件毎の顧客登録はシステム登録の意味がないと判断しました。……実際に見積が全て受注できる訳でないっていう事ですね。
作ったテーブルが出来ているか?インスタンスを編集ができるか?確認
AppMaker上のDATAからもデータモデルを作る事ができますし、スプレットシートを選択してもデータモデルが作成可能。しかし実際に触ってみるとブラウザ上で作ると自動判別や修正が面倒。バックアップの観点から実際にデータモデルにアクセスしたいところ。調べるといくつかアクセス方法があるので、試してみることに。
躓く
Cloud SQLインスタンスページに移動してもカラムへアクセスできない。Cloud Shellならアクセスできるが、コマンドラインだと使いづらいしデータのインポートが不十分
試しにCloud Shellでアクセスしたが、どのデータベースか不明。実際にAppMakerで作ったテーブルが出来ているか確認してみる。
このDB名は自分で決めたいところ。
実際にAppMaker上で作り、反映されているか再確認。
問題なく出来ている模様。
App Engine で phpMyAdmin を使ってCloud SQL へ接続する。
では実際に編集する環境を用意してみる。この見積書システムは総務も使うので、コマンドやWorkBenchを使ってくださいなんて通用しない。そうなるとやはりブラウザで修正できるものが必要。
App Engine スタンダード環境の Cloud SQL で phpMyAdmin を使用する
https://cloud.google.com/sql/docs/mysql/phpmyadmin-on-app-engine
Cloud SDK のインストーラを入れてデプロイを行う。
https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe
今回はphpMyAdmin-4.9.1-all-languagesをデプロイ。
AppMaker上で作ったデータモデルをphpMyAdminで編集
で、実際に触ってみると、いくつか問題が発生。
- App Engine 上のphpMyAdminから作ったカラムとApp Makerのデータモデルが反映されない。
- App Engine上からCloud SQL にデータを入れた場合は即反映される。
結局、Cloud SQLを直接カラム変更した場合、AppMaker上の歯車マークから、設定を開いてDATABASEタブ-「SWITCH TO A CUSTOM CLOUD SQL DATABASE」というからDB名を指定しつつ、カラムが変更になったらUPDATEする方法で反映ができた。逆はスグ反映されるのにここは不思議。
今回のまとめと次回(´・ω・)ス
AppMakerからCloud SQL接続後、phpMyAdminを入れてカラム(データモデル)操作の反映で躓きつつ、デプロイするときにファイルがミスで大きく時間を取られました。
あと思ったが、これ総務でノンプログラマーが簡単にアプリが開発できるのか……いや、多分このデータベース周りが大変なだけで画面は楽なんだろうなと思いつつです。