現在、新たなアプリ例を準備している最中なのですが、ひとつポイントとなる部分がありますので、先行して記事化します。
業務系アプリで多くの場合実装される承認〜申請のフローなのですが、PowerPlatformではMicrosoft365の組織アカウントを使用するのが直感的です。その際、申請者と承認者の関係性が分かっていないとうまく行きません。例えばアプリ内でこの人が申請したら承認者はこの人、みたいに指定することもできると思いますが、作り込めば作り込むほど、例外が出た際に大変な修正作業になってしまうので、できる限り一般化しておくことが後を考えると良いと思います。
※ 以下は、Microsoft365のアカウントを操作できる権限のある人向けです。システム管理者がおられる場合はその方と相談してください。
Microsoft365組織アカウントについて
Microsoft365の組織アカウントは、同一組織に属しているアカウント全般のことを指します。簡単に言えば同じ会社に属しているアカウントですが、例えば契約者が同じであればドメインが異なっていても組織アカウントです。当方の場合、当ホームページ運用の「sakura-data」というドメインと、IoTサービスQuMoIoT運用の「qumoiot」というドメインがあり、それぞれでMicrosoft365アカウントを所持していますが、大元の契約が同じなので、同一組織にできています。
同じ組織に属していると、関係性を設定することができます。関係性とは上下関係、言わば「上司」と「部下」の関係のことです。これを利用すれば、PowerPlatformで部下からの申請を、上司が承認するという申請フローを構築できます。アプリの内容をいじらなくても、Microsoft365の設定をいじれば良いので、例えば人事異動や組織変更があったときに都度関係性を設定しておけば、常に最新の状態でアプリが使えます。
「上司」「部下」の設定方法
「上司」「部下」の設定方法を説明します。
Microsoft365アカウントの設定は、「Exchange管理センター」で行います。以下をクリックして、Exchangeが管理できるアカウントでログインしてください。
ようこそ – Microsoft Exchange (office365.com)
Microsoft365でありがちですが、この管理センターは新旧2種類あり、本リンクは旧版です。まだMicrosoft公式の説明も旧版でしたので、旧版で説明します。
トップページの中にある、「メールボックス」をクリックします。
現在、組織に登録されているアカウントの一覧が表示されます。前述の通り、当方では2アカウントが組織に登録されています。ここでは例として、「QuMoIoT」を部下に、「さくらデータ」を上司に設定します。
部下アカウントに対して、上司を設定する形になりますので、「QuMoIoT」を選択後、上の鉛筆アイコンを押します。
ダイアログが表示されます。「組織」をクリックします。
組織の内容が編集できます。会社名、部署、役職は組織に合わせて設定しましょう。今回の本質はここではなく関係性なので、上司の部分の「参照」を押します。
「上司の選択」ダイアログが表示されます。上司に設定したいアカウントを選択し、OKを押します。今回は「さくらデータ」アカウントを選択しました。ちなみに自分自身を上司に設定もできます。一見意味が無さそうですが、後述するPowerAppsの呼び出しの部分で役に立つ箇所があります。必要に応じて設定してください。
元のダイアログに戻ると、上司の部分にアカウントの氏名が表示されます。これで設定ができていますので、「保存」を押してダイアログを消して完了です。
上司アカウントの組織情報を見てみます。上司として設定されたアカウントは、「直属の部下」にアカウントが入ります。上司は一人ですが、部下は多人数が入ります。(今回は自分自身を入れているので2人が確認できます)
これで上司部下の紐付けが出来ていますので、PowerAppsでの呼び出し方法について説明します。(申請〜承認についてはアプリ記事について詳しく説明しますのでここでは呼び出し方法のみ)
PowerAppsでの呼び出し方法
PowerAppsでMicrosoft365アカウント関連の情報を使用するには、「Office365ユーザー」をデータソースに加える必要があります。
+ データの追加→データソースの選択で、officeと打つと出てくる「Office 365 Users」を選択するとデータソースにOffice365ユーザーが追加されます。
Office365ユーザーの情報を使用する場合は、例えば自分自身のメールアドレスを取得する時はOffice365ユーザー.MyProfile().Mail と記載します。
これを応用して、自分自身の直上司のメールアドレスを取得する時は、
Office365ユーザー.Manager(Office365ユーザー.MyProfile().Mail).Mail
と記載します。上司情報を取得するのがManagerで、誰の上司かを指定するのが()で、そこに自分自身のメールアドレスを指定することで上司情報を得られる、ということです。PowerAppsは自分のアカウントでログインして使用するのが基本ですので、使用者の直上司を得られる、という流れになります。
但しこのやり方、一点問題があり、Manager内に指定したメールアドレスに上司がいないとエラーになります。先に上司がいないアカウントに自分自身を指定していたのはこの部分で、自分自身が上司として取得されるのでエラーになりません。上司=自分自身の時、みたいに分岐させれば挙動を分けることができます。エラーを未然回避できれば良いですが、現在その方法が見つけられていないので当方は上司を自分自身に指定する方法を用いていくこととします。
今後の展開
以上のように上司部下の関係性を構築できれば、申請ー承認アプリが作成できます。具体的な申請ー承認フローについてはPowerAutomateを用いて行っていきますので、進み次第記事を随時アップしていきます。
コメント