今日もローコードで業務改善をしたい

Power AutomateやPower Appsなど、Power Platformに関して学んだことを書いています。

Launch関数でTeamsのメッセージリンクを起動したときに、直接Teamsアプリを開くようにする方法

はじめに

この記事は、Power Apps Advent Calendar 2023]シリーズ2 12月17日担当分の記事です。

qiita.com

TeamsのメッセージリンクをSharePointリストに格納し、Power Appsでアプリを作ったとき、ボタンをつけてワンタップで該当のメッセージに飛べるようにする。
ということをよくやるのですが、ある時、ユーザーさんにこう言われたことがありました。


「ボタンをクリックすると、毎回Microsoft Teamsを開きますか?とブラウザが開くので、直でTeamsアプリが開くようにしてほしいのですが、、」


確かに!!


ということで、今回はPower AppsからTeamsリンクを開いたときに、直でTeamsアプリが開くようにする方法をご紹介します。

Before

今までどうなっていたか?をサンプルデータを用いて紹介します。

Teamsメッセージ

チャネルメッセージをSharePointリストに格納したいとします。
今回はサンプルなので超シンプルにしています。

SharePointリスト

今回は、タイトル(1行テキスト)とMessage Link(ハイパーリンク)列を作成しました。


Power Automateクラウドフロー

フローは、チャネルに新しいメッセージが投稿されたら、メッセージの詳細を取得し、
上記のSharePointリストに格納させています。

これにより、TeamsのメッセージリンクをSharePointリストに格納することができます。

Power Appsキャンバスアプリ

画面に垂直ギャラリーを配置し、データソースは上記で作成したShrarePointリストにしています。

ギャラリー内に画像を配置し、OnSelectプロパティに以下を設定していました。

Launch(ThisItem.'Message Link')

Launch関数を用いて、SharePointリストのハイパーリンク列を起動し、Teamsの該当するメッセージに飛ぶことを想定していました。
learn.microsoft.com

しかし、①Power Appsでボタンを押す→②WebでTeamsが開く→③Teamsアプリが開く
という順番になっていました。

After

OnSelectプロパティを以下に変えることで解決しました。

Launch(Substitute(ThisItem.'Message Link',"https://teams.microsoft.com","msteams:"))

Substitute関数を使用して、["https://teams.microsoft.com"]を["msteams:"]に変更しました。
learn.microsoft.com

これをすることで、ボタンをタップしたときに、一瞬WebでTeamsが起動するのですが、
Microsoft Teams(work or school)を開く」を一度クリックすれば、それ以降は直接Teamsアプリが開くようになります。

さいごに

Power Automateで取得したTeamsリンクをブラウザを経由せずに直接アプリで開く方法のご紹介でした。

今年はあまりブログを投稿できませんでした、、最近DataverseやAI Builderについて触り始めたので、その辺の記事も書けたらと思っています。
Power Apps Advent Calendar2回目の参加でした!良いお年を!