新規フォームにログインユーザー名を表示(PowerApps編)

さて、SharePoint OnlineではPowerAppsを利用してフォームのカスタマイズができるようになりましたね。
PowerApps を使用した SharePointリストフォームのカスタマイズ
こうなるとInfoPathは完全に過去の遺物ですね・・・

というので、さっそくSharePointあるある要望、新規フォームのPeople Pickerにログインユーザーをデフォルト表示をPowerAppsで実装してみました。

まずはMicrosoft公式の以下の情報を元に試しました。
PowerAppsユーザーに関する情報を表示する
でも、User()関数をそのままPeople Pickerのデフォルト値に設定してみてもうまくいきません。
たぶん、データ型がテキストでないとだめなんでしょうね・・・

で、調べた結果下記スレッドを発見。
https://powerusers.microsoft.com/t5/General-Discussion/Set-current-user-as-default-value-of-Person-or-Group-field/td-p/78744
しかし、ここに書いてあるようにドロップダウンのデフォルト値やDataCardのUpdateに設定したりしてみたもののやはりうまくいかず・・・

いろいろ試した結果、DataCardのデフォルト値に以下の式を書いたところうまくいきました!

If(SharePointForm1.Mode = New,
{'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
Claims:Concatenate("i:0#.f|membership|",User().Email),DisplayName:User().FullName,
Email:User().Email},
ThisItem.Requestor)

ついでに、上のサンプルではDataCardの中にLabelを2つ設置し、People Pickerで選択したユーザのメールアドレスと部署を表示するようにしています。
設定方法ですが、事前にOffice365 Userへのデータ接続を追加しておき、LabelのTextに以下のような式を書くだけです。

Concatenate(
"Mail: ",
Office365ユーザー.UserProfile(DataCardValue11.Selected.Email).Mail
)

※DataCardValueのところは、お使いの環境に合わせて変更してください。
なお、Office365 Userに接続してユーザーのプロファイル情報をもってくるやり方は、以下Microsoftのドキュメントを参考にしました。
PowerApps から Office 365 ユーザーの接続に接続する

PowerAppsについてはまだまだ情報も少なく全貌をつかめてませんが、なんかいろいろできそうな予感がしてます。
また新たな発見があれば、記事にしたいと思います!

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください