コネクタの接続について調べてみた
この記事は、『Office 365 Advent Calender2021』の6日目の記事です。
Power Automateで作ったワークフローの実行結果って、コネクタの「接続」によって左右されるんですよね。
自分の思い通りにフローを動かしたいと思ったら、この「接続」についての理解が必要。
少しややこしいので、まとめておこうと思います。
自分なりに検証したのですが、間違ってたら教えてもらえると嬉しいです。
接続の基本
Power Automateのトリガーやアクションで、SharePoint やOutlook、Teamsなどのサービスコネクタを利用する際には、初回のみ、利用者のアカウント認証が求められて、そのサービスに自分のアカウントでログインしなければなりません。Power Automateではこの動作をコネクタと「接続する」といいます。
自分が接続しているコネクタは、Power Automateの[データ]の[接続]で確認できます。これはよく知られているところですよね。
ワークフローを作成すると、ワークフローの中のトリガーやアクションは基本は作成者の接続(作成者のアカウントの接続)を使って作られます。
トリガーやアクションが接続しているアカウントは簡単に確認できるので、みてみましょう。
接続先の確認
今どのアカウントと接続しているかは、トリガーやアクション右の[…]をクリックして表示されるメニューの[マイコレクション]で確認できます。
このように、トリガーやアクションは個々にアカウントと接続していることが確認できます。
フローの実行と接続の関係
次は、ワークフローの実行と接続との関係ですが、ワークフローのトリガーやアクションは、基本的にはコネクタと接続しているアカウントで実行されます。
たとえば、Outlookの[メールの送信]アクションの場合、[メールの送信]アクションの接続先がAさんアカウントであった場合は、このアクションを実行すると、AさんのOutlookアプリを使ってメールが送信されて、送信メールの差出人はAさんになるというわけです。
が・・・・・・。
手動実行のフローと自動実行のフローでは、この接続に関して実行時の動きが違うので注意です。
自動実行のフローの場合
「Outlookのメールが届いたら」「SharePointのリストが更新されたら」など、自動実行のトリガーをもつフローの場合には、基本のとおり、フローを実行すると、アクションはコネクタと接続しているアカウントで実行されます。
手動実行のフローの場合
モバイルのボタンをクリックしてフローを開始したり、SharePointであれば、コマンドバーの自動化メニューをクリックして実行を開始したりする、いわゆる手動実行のフローの場合です。Power Appsでボタンを作成してそこからPower Automateを起動させる場合もこれに含まれます。
手動実行のフローでは、元々接続されているアカウントではなくて、フローを実行した人のアカウントでトリガーやアクションを実行させるような設定ができるんです。
手動実行フローの管理画面を見てみると、自動実行フローの管理画面にはない項目があります。この[実行のみのユーザ]で、実行時にどの接続を使うかの設定ができます。
ここ開くと下の図のような感じ。フローの中で利用されているコネクタをどの接続アカウントで実行するか「使用する接続」ってとこで設定が選択できるようになっています。
左が既定の状態で、初期状態ではワークフローを実行する人の接続アカウントでコネクタが実行されるような指定になっています。
変な日本語だけど、「実行専用のユーザーによって提供されました」って、そういう意味のようです。で、右は普通に作成者の接続で実行するように指定を変更したもの。ドロップダウンで選択して設定できます。
では、実行してみたらどうなるか。やってみました。
SharePoint Onlineのリストに申請内容を書き込んで、手動で開始する簡単な承認ワークフローで試しました。ちなみに、この場合、「実行者」というのは、「申請をする人」になります。
申請者の立場で、コマンドバーの[自動化]からフローを動かしたら、「実行者の接続アカウントで実行」する方のフローだけ、フローが実行前に接続を確認する画面が表示されました。
フロー実行時に、[続行]ボタンをクリックして接続確認する画面、よく見かけませんか?そう、まさしくこれです。
もともとフローの接続は作成者の接続になっているんだけど、今回実行する分は、あなたの接続使いますよ。いいですね?というような意味の画面だと私は思っています。
その証拠?に、フローの実行後に、実行者である申請者の人の[データ]の[接続]を確認したら、Power Automateのフローは一度も作ったことがない申請者さんの画面に、ちゃんとコネクタの接続が追加されていました。
まとめ
このようにトリガーやアクションの接続アカウントは、基本はフローの作成者になっていますが、接続アカウントを変更することで、別のアカウントでアクションを実行させることができるんですよね。
これをうまく利用すると、フローの実行結果を少しコントロールするのに役に立つかもしれません。
接続を変えることでどんなふうに動きが変わるのか、私もいろんなアクションで検証中です。
何か使えそうなもの見つけたら、また共有したいと思います。
最後までおつきあい、ありがとうございましたー!