はじめに
SharePointリストの添付ファイルに保存されたPDFは通常では表示することが出来ません。ですが、PDFファイルをbase64でエンコードし、SharePointリストに保存することでPower AppsのPDFビュアーでPDFファイルを保存することが出来ます。
こちらの方法にはメリットとデメリットがあります。
変換をPower Automateによって処理させるため、リストが重くならない
複数件読み込める ※今回は解説はしていない
1回読み込むのに時間がかかる(Power Automateの処理速度に依存する)
base64とは?
Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。
いわゆるコンピュータで使用できる言葉のことである。
Wikipadia(一部改変)
SharePointリストの準備
今回は、SharePointリスト名「base64テスト」として作成していく。
ビューの列の編集で「添付ファイル」を表示しておいたほうが作業しやすいのでお勧めします。
Power Automateの準備
フロー概要
Power Apps(V2)
特に設定することはなし
変数の初期化
ここでbase64エンコードした値を格納する変数を用意します。
名前 | (任意の名前) |
種類 | 文字列 |
値 |
添付ファイルの取得
サイトのアドレス | 取得したい添付ファイルが保存されているSharePointリストのサイトアドレス |
リスト名 | 取得したい添付ファイルが保存されているSharePointリスト名 |
ID | 「Power Apps(V2):入力」 |
Apply to each
「ファイルコンテンツの取得」を追加すると自動で表示されます。
ファイルコンテンツの取得
サイトのアドレス | 「添付ファイルの取得」同様のSharePointリストのサイトアドレス |
ファイルの識別子 | 「添付ファイルの取得:Id」 |
変数の指定
名前 | 「変数の初期化」の名前 |
値 | DataUri(base64ToBinary(outputs(‘ファイル_コンテンツの取得’)?[‘body’]?[‘$content’])) |
DataUri(base64ToBinary(outputs('ファイル_コンテンツの取得')?['body']?['$content']))
Power AppsまたはFlow応答する
file | 「変数の設定:名前」 |
Power Apps
App | Screen1 | PDFビューアー(試験段階) | PdfViewer1 |
垂直ギャラリー | Gallery1 |
データの接続
「SharePointリストの準備」で作成したSharePointに接続してください。
Galley1
ギャラリー内の資料を開くボタンにPower Automateの実行コードを入力します。
Set(filelink,Base64変換.Run(ThisItem.ID))
変換されてきたBase64の文字列はSet関数によってfilelinkに格納します。
PDFビューアー(試験段階)
filelink.file
filelinkはレコード型で保存されているため、Power Automateで指定したfileを指定して対象のbase64の文字列を代入することでPDFファイルを表示することができます!