この記事は2021年時点の情報です。
現在はDataverse for Teams環境の自動削除ルール(90日未使用で削除)があるため、長期運用する本番アプリには推奨されません。
本格的なアプリ開発には、有償版DataverseまたはSharePointリストの利用を検討してください。

Dataverse for Teamsということで、Teams内のPower AppsであればDataverse(旧:CDS)が無料で使えるようになったらしい。
ということで、交通費申請アプリを作って遊んでみた。
今回は前回の続きで、前回作成した「ユーザー」テーブルと「交通費申請」テーブルを、デフォルトで作られるキャンバスの中に入れ込んでいく。

まずは「ユーザー」テーブルにデータ(レコード)が勝手に追加されるようにする
今回「ユーザー」テーブルは独自で作ったので、もちろんユーザー情報は入っていない。
けれど最初に「ユーザー登録 → 交通費申請」という流れを取るのがめんどうだったので、アプリを起動したときにユーザーが勝手に追加されるようにしてみた。

- ログイン中のユーザーのメールアドレスを変数に入れる
- CountIfで「ユーザー」テーブルに同じメールアドレスのデータが存在するか調べる
- 存在しなかったらPatch関数を使って、「ユーザー」レコードを新規追加する
といった感じ。
最初にメールアドレスを変数に入れているのは、CountIfで検索するとき検索を委託するため。

※今回「ユーザー」テーブルのメールアドレスを「一意値」にしていないのでこんな処理を書いているけど、「一意値」にすればDataverseが勝手にはじいてくれたりして。
キャンバスを「交通費申請」仕様に変える
ユーザーの一覧が表示されて、その詳細や編集が行える現在の画面を、交通費申請が表示されて、編集や追加が行えるように変えていく。
※ちなみに、前回の記事でテーブルを作る順序を「交通費申請」→「ユーザー」とした場合、この章はいらないかもしれない。
左側のGalleryコントロールを「交通費申請」仕様に変える

すると当然色んなところでエラーが発生するので順に直していく。
まずは左側のGalleryのDefaultプロパティ。CurrentItemの型とデータソースの型が違う!って悲鳴を上げている。
※CurrentItemはデフォルトで作成されるグローバル変数。もししっかり直したいなら、CurrentItemをSetしているところを見つけて修正してあげるとよい。

右側のFormコントロールを「交通費申請」仕様に変える



「本当に消すの?」ダイアログを「交通費申請」仕様に変える
そして最後に真ん中のエラーを解消していく。
このエラーを吐いているのが、右上のごみ箱を押したときに出る「本当に消していいの?」ダイアログ君。


- 新規作成
- 編集
- 削除
はできるようになる!

- 自分以外の交通費申請も見れちゃう
- 使用していない「件名」プロパティは自動で適当に入るようにしたい
- 「管理番号」って見せる必要なくない?
- 「だれが」列にもログインユーザーを勝手に入れてほしい
とかとかあるので、これらは第3回で修正してみる。


コメント