今回、Power Appsで簡単なアプリを作成する機会に恵まれ、そのなかで知ったことなどを備忘録として残します。
何分、Power Apps初心者ですので調査不足は否めないので、誤りがありましたら後学のためにご指摘いただけると幸いです。
アプリの作成
ここでは社員の登録と、日々の入退社状況を更新するアプリをイメージして作成します。
-
テーブルの作成
-
アプリの作成
-
- 追加した直後にデータソースを選択するポップアップが表示される。
データテーブルを選択した状態で、画面右側にあるデータソース・プロパティでも選択できる。 - データソースを選択すると、プライマリ列と作成日が表示される。
- 追加した直後にデータソースを選択するポップアップが表示される。
-
- ヘッダーの文字列は、各列のヘッダーテキスト・プロパティで変更できる。
-
新しい画面を追加する。
-
その画面に編集フォームを追加する。
- フォームには編集とディスプレイの2種類がある。
- フォームのデータソース・プロパティでデータソースを選択する。
-
- OnSelectプロパティにボタンがクリックされた時の処理を記述する。
- SubmitForm関数の引数にフォームを指定することで、データが保存される。
- Navigate関数に画面を指定することで、画面が遷移する。
-
最初の画面に追加ボタンも配置して、こちらも編集画面に遷移させるようにします。
- Mode変数にはフォームの新規モードを指定します。
かなり大雑把な作りですが、サンプルとしては完成です。
アプリを保存して実行すると、動作を確認することができます。
気になったこと
-
フォームで、[はい/いいえ]フィールドの自動生成が[切り替え]になってくれない。
- 上記のアプリでInTheOfficeは[データの種類]として[はい/いいえ]ですが、フォームで自動生成されるのはドロップダウンでした。選択肢が2つしかないので、1クリックで選択できるようにしたいです。
こちら のような記事が存在するぐらいなので、手動で置き換える必要があります。
- 上記のアプリでInTheOfficeは[データの種類]として[はい/いいえ]ですが、フォームで自動生成されるのはドロップダウンでした。選択肢が2つしかないので、1クリックで選択できるようにしたいです。
-
フォームで、[日付のみ]フィールドの自動生成が日時になってしまう。
- テーブルで[データの種類]として[日付のみ]を指定したフィールドが自動生成されると、日付だけでなく時間の入力欄もつくられてしまいます。
こちら のように、手動で時間の入力を削除する必要があります。
- テーブルで[データの種類]として[日付のみ]を指定したフィールドが自動生成されると、日付だけでなく時間の入力欄もつくられてしまいます。
-
確認画面を表示する関数(JavaScriptのconfirmに相当する関数)がない。
- これもいろいろと探したのですが、見つかるのは こういった 自作する記事ばかりでした。
削除を確認するなどは、定番のUIパターンなので、これをいちいち自作するのは、とても面倒だと思いました。
- これもいろいろと探したのですが、見つかるのは こういった 自作する記事ばかりでした。
-
テーブル名や列名に日本語を使うときは、[高度なオプション]に隠れている[スキーマ名]を入力する必要がある。
- 最初にプライマリ列を日本語だけにしたら[保存]ボタンが押せず、日本語は使えないかと勘違いしました。
要は、[表示名]がそのまま必須入力項目の[スキーマ名]に使われるけど、[スキーマ名]に日本語は使えないようで、空欄のままという訳でした。
- 最初にプライマリ列を日本語だけにしたら[保存]ボタンが押せず、日本語は使えないかと勘違いしました。
-
新規作成したアプリを保存したのに、アプリの一覧に表示されないことがある。
- すごく焦りました。
メニューにある[検索]で検索しても見つかりません。
が、数分待つと表示されました。
- すごく焦りました。
所感
簡単なアプリを簡単に作成するという意味で、素直にとても良いローコード開発ツールだと思いました。
- コード補間が優秀ですし、どこでコード上のエラーが発生しているかの把握も容易です。
- DataverseのテーブルのデータをExcelで編集して反映できるのは、とてつもなく便利です。
一方で、日ごろはKotlinやTypeScriptでコーディングをしている身としては、GUIでアプリを組み立てるのが大変苦痛だったのも事実です。
- 所々で操作が反映されるまで数十秒から数分かかることがありました。特にDataverseのテーブルやカラムの追加や削除が遅いです。もちろんローカル環境のIDEやエディタに対する操作と比べるのは酷なのですが、だからといってストレスにならない訳でもありません。
- この手の開発ツールの宿命なのでしょうが、似たようなコントロールを並べたり、テーブルに列を作ったりするのを、GUIで行うのは手間で、設定ミスを犯しがちということです。
ただ、ローコード開発ツールなのにソースコードをダウンロードできるのには驚きました(参考: https://powerapps.microsoft.com/en-us/blog/source-code-files-for-canvas-apps/ )。このおかげでコード全体を俯瞰できるのは助かりますし、熟達すればテキストエディタで開発できるようになるかもしれません。