はじめに
PowerAppsからアプリを作るケースって大抵の場合社内システムみたいなものが多いと思います。で、大抵の場合コネクタとしてOffice365ユーザーとかAzureADみたいなものを使って社内の情報を取得するんじゃないかと。そんでもって、キーは社員番号にしてデータを登録する。なんていうのがテンプレだと思っています。勝手に。
AzureActiveDicrectoryの設定画面を見ると従業員IDというものがあります。
一部マスキングしてますが、私の場合はこの2016XXXXの箇所が社員番号にあたります。
従業員IDが取れない
あとは、PowerAppsのAzureADコネクタを使って、この情報を引っ張ってくればOK。とか思っていたのですが、、ない。
てっきり、AzureAD.GetUser().EmplyeeIdみたいな形で取れると思ってたのですが、項目が存在しません。同様に、Office365ユーザー.MyProfileV2().EmployeeIdも存在しません。
あと付けの拡張項目だから取れない説
@fukasuke様の記事(https://qiita.com/fukasuke/items/9fc3dd6b4594bce89393)
にあるように従業員IDというのは後で追加された拡張項目です。
AzureD.GetUser()やOffice365ユーザー.MyProfileで取得できるのは最初からある項目だけのような気がします。
PowerAutomateを呼び出して取得する
@fukasuke様の記事を見ると、graphAPIで頑張れば取れるみたいなのでカスタムコネクタを作って取る方法が手っ取り早そうですが、カスタムコネクタはまた別途お金がかかります。じゃあ、PowerAppsからPowerAutomateを呼び出せば取れるんじゃないかと。
GetEmployeeIdToPowerAppsという従業員IDを取得するPowerAutomateを作ります。
でこれをPowerAppsのonStart時に呼び出して変数EmployeeIdに入れて置けば任意の場所でEmployeeId.idで取得できます。(ID.idってなんか変だけど変数名はまぁテキトーに変えて下さい。GetEmployeeIdToPowerAppsという英語も変ですね。)
所感
個人的にはPowerAutomateよりFlowって名前の方が好きです