はじめに
前回、Power Appsに画像を挿入する方法でSharePointの列の種類を「一行テキスト」を選択していました。
すると、画像がPCのブラウザ上では表示されるが、Power AppsをTeams上で開いた時やスマートフォン上から開いたときに画像が表示されない!という問題に直面してしまいました。
(3つの一覧のサムネイルが空欄になっている)
そこでその対応策がわかったのでそちらを紹介します。
↓リストやPower Automateの作成方法は下記の記事を参考にしてください。
Power Automateを利用してTeamsの投稿にある添付ファイルをSharePointリストに1列ずつ保存する - JBS Tech Blog
表示されない原因と対応策
原因と悩みポイント
詳しい原因は定かではありませんが、一行テキストで保存しているとTeamsやスマートフォンなどのモバイルから接続した際にうまくデータが読み取れていないものと推察されます。
そもそもSharePointには、列の種類で画像というものがあるため、画像を挿入する際はその方法を利用すれば簡単に解決できます。
しかし、ここにPower Automateが関わってくると少し厄介になってしまいます。
それは、Power Automateは画像列を認識してくれないからです。
「画像列として保存させたいのに、認識できない。代わりに文字列で認識させ実行するしかないけどどうすればいいのか・・・」
この問題にどのように対応すればいいのか、その方法を説明しますが、少々手間が掛かってしまうのが難点です。
画像が表示されない時の対応策
リストの種類を変更する
画像がTeams上やスマートフォン上で表示されなく、更新を押してもどうしても解決しない場合は、やはりSharePointのリストの形を変更するしかありません。
そこで、「ハイパーリンクまたは画像」という種類に変更します。この種類を選択してそれぞれ比べてみると、ハイパーリンクは文字列として、画像はファイルとして表示される形になっています。
・ハイパーリンク
・画像
ここで注意したいのは、「列の追加」から作成する場合は「イメージ」ではなく「ハイパーリンク」を選択するようにしてください。
※「イメージ」で作成するとURLの挿入ができなくなり、画像ファイルのみになる。
これでリストが「ハイパーリンク」もしくは「ハイパーリンクまたは画像」に変更されました。(これらは名称が違うだけで、種類としては同じになるのでどちらでも大丈夫です。)
Power Automateに画像列として認識させるための工夫
この後Power Automateで認識させなければいけないので、ハイパーリンクの形のままでPower Automateで対象のリストを読み込みます。すると、ハイパーリンクは文字列なので問題なく列が認識されました。
今まで入力していたものと同じようにURLベースの値を入れます。
しかし、このままの状態だと、「一行テキスト」や「複数行テキスト」などのテキストベースで行った時と同じなので問題点はまだ解消していません。
ここで、再びSharePointの画面に戻り、ひと手間を加えます。
右上の設定ボタンを押し、リストの設定から対象の列を編集します。
編集する列を選択したら、「URLの形式」の設定をハイパーリンクから画像に変更します。
※リストの画面から列の編集で変更しようとすると、種類の箇所がグレーアウトされていて変更できないので、上記の方法で実施してください。
変更が完了したら、Power Automateの画面に戻ります。
先程のフロー画面で更新をしてみると、このように欄がODataに変更されておりこのまま実行すると、「画像」列として値がリストに入りました。
Teamsやモバイル上でPower Appsを確認する
画像が表示されなかったTeamsやスマートフォンで再びPower Appsを開いてみると先程まで表示されていなかった画像がちゃんと表示されるようになりました。
(3つの一覧のサムネイルに画像が表示されている)
さいごに
さいごに、これまでの内容をおさらいしておきます。
・列の種類を「ハイパーリンク」で作成する。
・Power Automateで読み込みフローを完成させる。
・SharePointに戻り、列の種類を「ハイパーテキスト」から「画像」に変更する。
・Power Automateに戻り、更新をかけて中身が変わっていることを確かめる。
これで、Power Appsの画像がTeamsやスマートフォン上では表示されないという問題が解消されます。
現状では、このような手順を踏まないとうまく認識されないため少し手間が掛かる方法となっています。
今後、このような作業を行わなくても画像列として認識されるようになるにはアップデートが来るのを待つしかなさそうです。