Power Apps Dataverse for Teamsで遊んでみた! とりあえず交通費申請アプリとか作ってみる(2/3)

Dataverse for Teamsということで、Teams内のPower AppsであればDataverse(旧:CDS)が無料で使えるようになったらしい!

ということで、交通費申請アプリとか作って遊んでみた!

今回は前回の続きで、前回作成した「ユーザー」テーブルと「交通費申請」テーブルを、デフォルトで作られるキャンバスの中に入れ込んでいく。

スポンサーリンク

まずは「ユーザー」テーブルにデータ(レコード)が勝手に追加されるようにする

今回「ユーザー」テーブルは独自で作ったので、もちろんユーザー情報は入っていない。

けれど最初に「ユーザー登録 → 交通費申請」という流れを取るのがめんどうだったので、アプリを起動したときにユーザーが勝手に追加されるようにしてみた。

まずはAppのOnStartにこんな式を入れる。
式をざっくり説明すると、

  1. ログイン中のユーザーのメールアドレスを変数に入れる
  2. CountIfで「ユーザー」テーブルに同じメールアドレスのデータが存在するか調べる
  3. 存在しなかったらPatch関数を使って、「ユーザー」レコードを新規追加する

といった感じ。

最初にメールアドレスを変数に入れているのは、CountIfで検索するとき検索を委託するため。

この式を書いた後、一旦左上の戻るを押して再度アプリを開くと、自分の情報が「ユーザー」テーブルに追加されているはず!

※今回「ユーザー」テーブルのメールアドレスを「一意値」にしていないのでこんな処理を書いているけど、「一意値」にすればDataverseが勝手にはじいてくれたりしてw

キャンバスを「交通費申請」仕様に変える

ユーザーの一覧が表示されて、その詳細や編集が行える現在の画面を、交通費申請が表示されて、編集や追加が行えるように変えていく。

※ちなみに、前回の記事でテーブルを作る順序を「交通費申請」→「ユーザー」とした場合、この章はいらなかったかもw

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

まずは、左側の一覧に「交通費申請」の一覧を表示したい!(今は「ユーザー」の一覧)ということで、左側のGalleryの「データソース」プロパティを、「ユーザー」から「交通費申請」テーブルに変える。

すると当然色んなところでエラーが発生するので順に直していく。

まずは左側のGalleryのDefaultプロパティ。CurrentItemの型とデータソースの型が違う!って悲鳴を上げている。

Defaultプロパティは「Galleryで最初に選択されているアイテム」を指定するだけのプロパティなので、一旦今回は中身を消してあげてエラーを解消。
※CurrentItemはデフォルトで作成されるグローバル変数。もししっかり直したいなら、CurrentItemをSetしているところを見つけて修正してあげるとよい。

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

続いて右側のFormコントロール。このFormコントロールのデータソースも「交通費申請」に変えて、エラーを解消してあげる。
データカードを置換してとくるので、OKを選択すると
Formのエラーが消える。

「本当に消すの?」ダイアログを「交通費申請」仕様に変える

そして最後に真ん中のエラーを解消していく。

このエラーを吐いているのが、右上のごみ箱を押したときに出る「本当に消していいの?」ダイアログ君。

「本当に消していいの?」ダイアログにはOKボタンとキャンセルボタンがあって、OKボタンを押したときの処理でエラーを吐いている。
エラーの内容は「対象のテーブル(ユーザー)」と、「消そうとしているレコード(交通費申請)」の型が合っていない!という内容なので、「対象のテーブル」をユーザーから交通費申請に変えてあげればOK!
するとエラーが一通り消えて、「交通費申請」のデータの

  • 新規作成
  • 編集
  • 削除

はできるようになる!

とは言え、まだ修正すべきところは残っていて、

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

とかとかあるので、これらは第3回で修正してみる。

コメント

タイトルとURLをコピーしました