Dataverse for Teamsということで、Teams内のPower AppsであればDataverse(旧:CDS)が無料で使えるようになったらしい!
ということで、交通費申請アプリとか作って遊んでみた!
今回は前回の続きで、前回作成した「ユーザー」テーブルと「交通費申請」テーブルを、デフォルトで作られるキャンバスの中に入れ込んでいく。
前回はこちら
Power Apps Dataverse for Teamsで遊んでみた! とりあえず交通費申請アプリとか作ってみる(1/3)
Dataverse for Teamsということで、Teams内のPower AppsであればDataverse(旧:CDS)が無料で使えるようになったらしい!ということで、交通費申請アプリとか作って遊んでみた!思ったより長くなってしまった...
まずは「ユーザー」テーブルにデータ(レコード)が勝手に追加されるようにする
今回「ユーザー」テーブルは独自で作ったので、もちろんユーザー情報は入っていない。
けれど最初に「ユーザー登録 → 交通費申請」という流れを取るのがめんどうだったので、アプリを起動したときにユーザーが勝手に追加されるようにしてみた。
まずはAppのOnStartにこんな式を入れる。
式をざっくり説明すると、
- ログイン中のユーザーのメールアドレスを変数に入れる
- CountIfで「ユーザー」テーブルに同じメールアドレスのデータが存在するか調べる
- 存在しなかったらPatch関数を使って、「ユーザー」レコードを新規追加する
といった感じ。
最初にメールアドレスを変数に入れているのは、CountIfで検索するとき検索を委託するため。
この式を書いた後、一旦左上の戻るを押して再度アプリを開くと、自分の情報が「ユーザー」テーブルに追加されているはず!
※今回「ユーザー」テーブルのメールアドレスを「一意値」にしていないのでこんな処理を書いているけど、「一意値」にすればDataverseが勝手にはじいてくれたりしてw
キャンバスを「交通費申請」仕様に変える
ユーザーの一覧が表示されて、その詳細や編集が行える現在の画面を、交通費申請が表示されて、編集や追加が行えるように変えていく。
※ちなみに、前回の記事でテーブルを作る順序を「交通費申請」→「ユーザー」とした場合、この章はいらなかったかもw
左側のGalleryコントロールを「交通費申請」仕様に変える
まずは、左側の一覧に「交通費申請」の一覧を表示したい!(今は「ユーザー」の一覧)ということで、左側のGalleryの「データソース」プロパティを、「ユーザー」から「交通費申請」テーブルに変える。
すると当然色んなところでエラーが発生するので順に直していく。
まずは左側のGalleryのDefaultプロパティ。CurrentItemの型とデータソースの型が違う!って悲鳴を上げている。
Defaultプロパティは「Galleryで最初に選択されているアイテム」を指定するだけのプロパティなので、一旦今回は中身を消してあげてエラーを解消。
※CurrentItemはデフォルトで作成されるグローバル変数。もししっかり直したいなら、CurrentItemをSetしているところを見つけて修正してあげるとよい。
※CurrentItemはデフォルトで作成されるグローバル変数。もししっかり直したいなら、CurrentItemをSetしているところを見つけて修正してあげるとよい。
右側のFormコントロールを「交通費申請」仕様に変える
続いて右側のFormコントロール。このFormコントロールのデータソースも「交通費申請」に変えて、エラーを解消してあげる。
データカードを置換してとくるので、OKを選択すると
Formのエラーが消える。
「本当に消すの?」ダイアログを「交通費申請」仕様に変える
そして最後に真ん中のエラーを解消していく。
このエラーを吐いているのが、右上のごみ箱を押したときに出る「本当に消していいの?」ダイアログ君。
「本当に消していいの?」ダイアログにはOKボタンとキャンセルボタンがあって、OKボタンを押したときの処理でエラーを吐いている。
エラーの内容は「対象のテーブル(ユーザー)」と、「消そうとしているレコード(交通費申請)」の型が合っていない!という内容なので、「対象のテーブル」をユーザーから交通費申請に変えてあげればOK!
するとエラーが一通り消えて、「交通費申請」のデータの
- 新規作成
- 編集
- 削除
はできるようになる!
とは言え、まだ修正すべきところは残っていて、
- 自分以外の交通費申請も見れちゃう
- 使用していない「件名」プロパティは自動で適当に入るようにしたい
- 「管理番号」って見せる必要なくない?
- 「だれが」列にもログインユーザーを勝手に入れてほしい
とかとかあるので、これらは第3回で修正してみる。
コメント