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
コメント