Help us understand the problem. What is going on with this article?

PowerAppsとPowerAutomateを連結してAADの拡張項目を取得する

はじめに

PowerAppsからアプリを作るケースって大抵の場合社内システムみたいなものが多いと思います。で、大抵の場合コネクタとしてOffice365ユーザーとかAzureADみたいなものを使って社内の情報を取得するんじゃないかと。そんでもって、キーは社員番号にしてデータを登録する。なんていうのがテンプレだと思っています。勝手に。

AzureActiveDicrectoryの設定画面を見ると従業員IDというものがあります。
一部マスキングしてますが、私の場合はこの2016XXXXの箇所が社員番号にあたります。

無題.png

従業員IDが取れない

あとは、PowerAppsのAzureADコネクタを使って、この情報を引っ張ってくればOK。とか思っていたのですが、、ない。
image.png

てっきり、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を作ります。
無題2.png

でこれをPowerAppsのonStart時に呼び出して変数EmployeeIdに入れて置けば任意の場所でEmployeeId.idで取得できます。(ID.idってなんか変だけど変数名はまぁテキトーに変えて下さい。GetEmployeeIdToPowerAppsという英語も変ですね。)
無題.png

所感

個人的にはPowerAutomateよりFlowって名前の方が好きです

Ky01_dev
日々勉強中です。 Web系メインで開発してます。
neosystem
「通信業・メディア・ネットベンダー向けシステム」「製造業向けシステム」「金融業向けシステム」「教育機関・企業教育向けシステム」等の開発を手掛ける、独立系の総合SIerです。
http://www.neosystem.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away