小ネタです。
SharePointのリストでアイテムを選択して実行するようなフローや、Excel for businessのテーブルの選択行に対して実行するようなフロー、またボタンを押して実行するフローなどの即時実行型のフローで実行者(自分)のメールアドレスを取得する方法の紹介です。
『動的コンテンツに表示されるんだからそれ使えばいいのでは?』と思われるかもしれませんが、実際に実行してみると残念ながらbase64エンコードされた値になります。
でもほしいのはデコードされた(人間に読める)メールアドレスなので、これを戻したい。
解決方法の1つは、Power Automateの関数 "decodeBase64()" を使ってデコードすることです。
これをすれば問題なく通常よく使うメールアドレス(普通の文字列)が取れます。
解決策のもう1つは直接メールアドレスが入ってる要素にアクセスする方法です。
数式バーで "User email" の動的コンテンツを選択すると、その正体は triggerOutputs()?['headers']?['x-ms-user-email-encoded']
であることがわかります。
"email-encoded" とついているくらいなので、エンコードされていないemailもあるだろう!とheaders を見てみると
ありました。その場合のキーは x-ms-user-email (-encoded なし)であることがわかります。
ということで解決策の2こめは triggerOutputs()?['headers']?['x-ms-user-email']
を指定することです!
『そんな長いの間違いなく打てる気がしないよ~』と思われるかもしれませんが、大丈夫。数式バーでUser emailを選択して、"-encoded" 部分を消せば期待する要素を取得できます。
これでフロー実行者のメールアドレスをフローの中で利用できるようになりました。
例えば選択したアイテムについて、他の人にリマインダーを送りつつ、自分をCCに入れるみたいな使い方ができるかなと思います。
即時実行系のフローで実行者のメールアドレスをべた書きではなく、動的に取得したいと思った場合には参考にしてみてください