新規記事を募集中!ここから募集ページへ

【Power Apps】PDFビュアーでSharePointリストの添付ファイルのPDFを開く方法『第2弾』

はじめに

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’]))
Power Automate (コピー用)
DataUri(base64ToBinary(outputs('ファイル_コンテンツの取得')?['body']?['$content']))

Power AppsまたはFlow応答する

file「変数の設定:名前」

Power Apps

App Screen1  PDFビューアー(試験段階) PdfViewer1
 垂直ギャラリー Gallery1

データの接続

「SharePointリストの準備」で作成したSharePointに接続してください。

Galley1

ギャラリー内の資料を開くボタンにPower Automateの実行コードを入力します。

Onslect
Set(filelink,Base64変換.Run(ThisItem.ID))

変換されてきたBase64の文字列はSet関数によってfilelinkに格納します。

PDFビューアー(試験段階)

Document
filelink.file

filelinkはレコード型で保存されているため、Power Automateで指定したfileを指定して対象のbase64の文字列を代入することでPDFファイルを表示することができます!

コメント