こんにちは。今回は、Dataverseファイル列のファイルを扱うときの方法についてご紹介します。
前提
今回はDataverseにテストテーブルを用意し、ファイル列(「filetest」)を作成します。
ファイル列のデータは直接今回作成したテストテーブルに保存されるのではなく、標準テーブルの「FileAttachments」に保存されます。
標準テーブルとは
Dataverseがある環境を作成した時に自動的に作られるテーブル。
https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/types-of-entities
ファイル列を作成すると標準テーブルの「FileAttachments」とのリレーションが作成されます。
フロー
ではPower Automateのフローの中でこの列に保存されたファイルを扱っていきたい時にはどのようにしたらいいでしょうか?
全体
今回は以下の画像のような流れでフローを組み、承認フローの中でファイルを添付するというアクションを行いたいと思います。
トリガー
①「行が追加、変更または削除された場合」
今回は行が追加されたときの、その新規行のファイルデータをこの後のアクションで扱っていきたいと思います。
ファイル列のコンテンツを取得する方法
ファイル列のコンテンツを取得するために、Dataverseの
②「ファイルまたは画像をダウンロードする」アクションを使用します。
項目の設定は以下のように行います。
テーブル名:ファイル列があるテーブルの名前
行ID:ファイル列があるテーブルの一意識別子(今回はトリガーの動的なコンテンツを使用)
列名:ファイル列の名前
「ファイルまたは画像をダウンロードする」アクションはコンテンツのみ取得するため、別で名前やファイルサイズを取得したい場合は、追加のアクションが必要。(後述)
ファイルの名前を取りたい場合
ファイルの詳細情報を取得したい場合は、実際にファイルを保存しているテーブルを参照しに行きます。
リレーションのIDから、「FileAttachments」テーブルの値を取得するために
③「行を一覧にする」アクションを設定します。
項目の設定は以下のように行います。
テーブル名:FileAttachments
行フィルター:
fileattachmentid eq '@{triggerOutputs()?['body/ファイル列名']}'
「fileattachmentid」がFileAttachmentsテーブルのGUIDを保存する列名です。
テストテーブルで追加した行のファイルを指定したいため、今回はテストテーブルのファイル列の動的なコンテンツで挿入します。
ファイルの利用方法
今回は取得したファイルの情報を承認アクションの中で使用します。
④承認アクション
今回は承認の種類として、「開始して承認を待機」を選択します。
以下のように項目を設定します。
添付ファイル 名前 - 1(Attachments Name - 1):「行を一覧にする」で取得した「ファイル名」
添付ファイル コンテンツ - 1(Attachments Content - 1):「ファイルまたは画像をダウンロードする」で取得した「ファイルまたは画像のコンテンツ」