こんにちは、あんこ先生です。
PowerAppsからSharePointリストに、添付ファイルを格納したり開いたりできるって知っていましたか?
じつは、リストを作成すると最初からその項目が用意されているんです。
この添付ファイルを使うと、提出するレポートや点検結果の写真などを格納することができます。
でも使い方がよくわからないし、取り出し方もいまいち自信ないから…
安心してください。
この記事では、添付ファイルの操作方法と活用事例をコード付きで解説します。
これでもう迷わない!
Contents
まず事前準備として適当なリストを用意してください。
次は添付ファイルを格納するためのフォームコントロールの準備です。
手順は簡単3ステップです。
- フォームコントロールを配置します。
- リストとレコードを指定します。
- 新規レコードを作成するならNewForm、既存レコードを修正するならEditFormを指定します。
サンプルでは次のように設定しています。
リスト名│添付ファイルテスト ※1レコードのみ作成済み
フォームコントロールは添付ファイルのカード以外削除し、その中にアイコンコントロールをひとつ加えています。
ファイルの添付
ファイルの添付はとても簡単です。
実は添付ファイルカードのファイルを添付を押してファイルを選択するだけなんです。
もちろん複数選択やドラッグアンドドロップにも対応しています。(モバイル版は非府対応)
その後、SubmitFormすれば、リストに格納されます。
添付ファイルカードのOnAddFileプロパティにSubmitFormを埋め込めば、ファイルを選択するたびにすぐ格納されるよ。
格納したファイルの削除
ファイルの削除も簡単です。
添付ファイルカードの×を押せば削除対象になります。
その後、SubmitFormすれば、リストから削除されます。
SubmitForm前であれば、もう一度押すことで削除対象から外せます。
添付ファイルカードのOnRemoveFileプロパティにSubmitFormを埋め込めば、×を選択した時点で削除されるよ。
この場合、元に戻せないから注意してね。
ファイルの開き方
フォームコントロールのFormModeに関係なく、ファイル名を押すことでダウンロードが始まります。
あとはそのファイルを開くだけです。
上図の通り、添付ファイルはリストの中に入れ子となったテーブルです。
そのため、参照させる場合は添付ファイルのレコードを特定する必要があります。
実際にイメージコントロールで試してみます。
Image01.Imageプロパティ
LookUp(First(添付ファイルテスト).添付ファイル,DisplayName=”添付PNG.png”).Value
はじめにFirst関数でリストのレコードを特定し、添付ファイル(テーブル)を指定します。
つぎにLookUp関数で添付ファイル(テーブル)のレコードを特定しています。
テーブルとレコード、関数との関係は別記事にまとめていますので、そちらを確認してください。
ギャラリーコントロールの活用
ギャラリーコントロールはテーブルをレコード単位に分けて表示してくれます。
そのため、添付ファイル(テーブル)の中身を簡単に確認できます。
また、画像であればイメージコントロールをテンプレートに埋め込むことで表示できます。
PDFビューワーはギャラリーコントロールに対応していないため、外に設置しています。
Gallery01.Itemsプロパティ
First(添付ファイルテスト).添付ファイル
Gallery01.Label01.Textプロパティ
ThisItem.DisplayName
Gallery01.Image01.Imageプロパティ
ThisItem.Value
PdfViewer01.Documentプロパティ
Gallery01.Selected.Value
ブラウザ経由でファイルを開く
ギャラリーコントロールに表示されたファイル名を押すことで、既定のブラウザで開きます。
PowerPointなど既定のアプリをデスクトップアプリに指定した場合、それらで開きます。
あとはギャラリーコントロールのテンプレートにHTMLテキストコントロールを設置し、次のように記述するだけです。
Gallery01.HtmlText01.HtmlTextプロパティ
“<A href=”&ThisItem.AbsoluteUri&”>”&ThisItem.DisplayName&”</A>”
Teamsに添付ファイルへのリンクを投稿する
せっかくなので、上司に報告するレポートなどTeamsに投稿してみましょう。
HTMLテキストコントロールに添付ファイルへのリンクが記載されており、その内容を本文として投稿しています。
PowerAppsからチャットなどを送るにはコネクタの接続が必要です。
応用すればメール送信もできます。
Gallery01.Icon02.OnSelectプロパティ
//Teamsに発言、各種IDは変更してください。
MicrosoftTeams.PostMessageToChannelV3(
"59c9ba54-2dea-4546-acaf-ecc3815a1666",
"19:T0DBChdBA6ubqUfufAj6L5feEujvslO903-x_KeHbR01@thread.tacv2",
{content:HtmlText1_1.HtmlText,contentType:"Html"},
{subject:"添付ファイルをみてください"}
)
Gallery01.Icon03.OnSelectプロパティ
//メールを送付、メールアドレスは変更してください。
Office365Outlook.SendEmailV2(
"ankoromochi@anko7793.com",
"添付ファイル見てください",
"<A href="&ThisItem.AbsoluteUri&">"&ThisItem.DisplayName&"</A>"
)
見栄えをよくする
フォームコントロールでは、添付ファイルの種類に応じてアイコンが表示されます。
ギャラリーコントロールでは、先ほど紹介した方法でブラウザ等から直接ファイルを開けます。
ならば重ねてしまえばいいとこどりできるのでは?
重ねてみたところ、右図のようになりました。
追加削除はしないので、FormModeはViewFormで変更しています。
EditForm時はギャラリーコントロールを非表示にすれば、さらに便利ですね。
アップロードと削除の機能は、フォームの内部でのみ機能します。
ギャラリーコントロールからは制御できません。
添付ファイルの最大値を設定する
添付ファイルの最大数、およびひとつ当たりの最大容量を設定できます。
設定上、1000個でも1GBでもできました。
実際は試していませんので、どこかで閾値があると思います。
まとめ
今回はSharePointリストの添付ファイルについて解説しました。
- 多種多様のファイルが格納でき、それらを開くことができる。
- チャットやメールにも添付できる。
このあたりの機能を盛り込めば、レベルの高いアプリができあがりそうですね。
前向きに導入を検討してみてください。
Form01.DataSourceプロパティ
添付ファイルテスト
Form01.Itemプロパティ
First(添付ファイルテスト)
Icon01.OnSelectプロパティ
SubmitForm(Form1)