Dataverse for Teamsということで、Teams内のPower AppsであればDataverse(旧:CDS)が無料で使えるようになったらしい!
ということで、交通費申請アプリとか作って遊んでみた!
今回は最終回で、前回のアプリで残っていた問題
- 自分以外の交通費申請も見れちゃう
- 「件名」プロパティは自動で適当に入るようにしたい
- 「管理番号」って見せる必要なくない?
- 「だれが」列にログインユーザーを勝手に入れてほしい
を直してみる。
自分以外の交通費申請も見れちゃう
今の状態だと自分(User Test)が出した申請も
他の人が出した申請(わんさん)も見れちゃう。
そこで自分だけが見れるようにするために、左側のギャラリーのItemsにフィルターをかけてあげる。
「交通費申請」テーブルの「だれが」列は「ユーザー」テーブルの値が入っているので、「だれが.メールアドレス = ログイン中のユーザーのメールアドレス」のレコードだけになるようフィルターする。
「交通費申請」テーブルの「だれが」列は「ユーザー」テーブルの値が入っているので、「だれが.メールアドレス = ログイン中のユーザーのメールアドレス」のレコードだけになるようフィルターする。
ちなみに、変数「userMail」は、前回の記事でAppのOnStartで宣言した変数。一旦変数に入れることでDataverseへフィルター処理を委託できる。
するとさっきまであった自分以外の交通費申請が見えなくなった!
※ついでに「ユーザー」というラベルも「交通費申請」に変えとく。
※ついでに「ユーザー」というラベルも「交通費申請」に変えとく。
使用していない「件名」プロパティは自動で適当に入るようにしたい
今回「件名」プロパティは基本「交通費」っていう値だけになると思うので、自動的に入るようにしてあげる。
まずは件名_DataCardのデフォルトを「交通費」にしてあげて、
同じく件名_DataCardのDisplayModeプロパティを「Parent.DisplayMode」から「DisplayMode.View」に変えてあげる。
ちょっと乱暴だけど、これでフォームコントロールが「新規作成」のときも「編集」のときも、テキストボックスがいじれなくなるので、常に「交通費」になる。
↓新規作成のときもいじれない。
※もちろんきちんとDataCardの中身をラベルに変えてあげたり、DataCardのVisibleをfalseにしちゃってもOK
「管理番号」って見せる必要なくない?
これは、単純に管理番号_DataCardを消せばOK!
「だれが」もログインユーザーを勝手に入れてほしい
申請を新規作成するとき、「だれが」列にログイン中のユーザーを勝手に入れたいということで、「だれが」コンボボックスのDefaultSelectedItemsプロパティにこんな式を追加。
すると、新規作成時に「だれが」列に勝手にユーザーが入るようになる!
最後に、色々いじってみて今回気になったことを一つだけ
「ユーザー」テーブルじゃなくて、デフォルトの「SystemUser」テーブルを使いたかったけど
普通の(Teams for)じゃない方のDataverseだと、「SystemUser」テーブルがデフォルトで用意されていてメールアドレスやら色んな情報が入っている。
Dataverse for Teamsの方にもあるっちゃあるんだけど、
氏名しか入ってないんで、いまいち使えなそう。。。
氏名しか入ってないんで、いまいち使えなそう。。。
ちなみにこのデフォルトの「ユーザー」テーブルはビルドタブにも出てくるんだけど、
クリックすると変なことになるw
仕様か?w
コメント