LoginSignup
8
7

Dataverseファイル列のファイルをPower Automateで扱う

Last updated at Posted at 2023-12-29

こんにちは。今回は、Dataverseファイル列のファイルを扱うときの方法についてご紹介します。

前提

今回はDataverseにテストテーブルを用意し、ファイル列(「filetest」)を作成します。
ファイル列のデータは直接今回作成したテストテーブルに保存されるのではなく、標準テーブルの「FileAttachments」に保存されます。

標準テーブルとは
Dataverseがある環境を作成した時に自動的に作られるテーブル。
https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/types-of-entities

image.png

ファイル列を作成すると標準テーブルの「FileAttachments」とのリレーションが作成されます。
image.png

フロー

ではPower Automateのフローの中でこの列に保存されたファイルを扱っていきたい時にはどのようにしたらいいでしょうか?

全体

今回は以下の画像のような流れでフローを組み、承認フローの中でファイルを添付するというアクションを行いたいと思います。
image.png

トリガー

①「行が追加、変更または削除された場合」
今回は行が追加されたときの、その新規行のファイルデータをこの後のアクションで扱っていきたいと思います。
image.png

ファイル列のコンテンツを取得する方法

ファイル列のコンテンツを取得するために、Dataverseの
②「ファイルまたは画像をダウンロードする」アクションを使用します。

項目の設定は以下のように行います。
テーブル名:ファイル列があるテーブルの名前
行ID:ファイル列があるテーブルの一意識別子(今回はトリガーの動的なコンテンツを使用)
列名:ファイル列の名前

image.png

「ファイルまたは画像をダウンロードする」アクションはコンテンツのみ取得するため、別で名前やファイルサイズを取得したい場合は、追加のアクションが必要。(後述)

ファイルの名前を取りたい場合

ファイルの詳細情報を取得したい場合は、実際にファイルを保存しているテーブルを参照しに行きます。
リレーションのIDから、「FileAttachments」テーブルの値を取得するために
③「行を一覧にする」アクションを設定します。

項目の設定は以下のように行います。
テーブル名:FileAttachments
行フィルター:

fileattachmentid eq '@{triggerOutputs()?['body/ファイル列名']}'

「fileattachmentid」がFileAttachmentsテーブルのGUIDを保存する列名です。
テストテーブルで追加した行のファイルを指定したいため、今回はテストテーブルのファイル列の動的なコンテンツで挿入します。

image.png

ファイルの利用方法

今回は取得したファイルの情報を承認アクションの中で使用します。

④承認アクション
今回は承認の種類として、「開始して承認を待機」を選択します。
image.png

以下のように項目を設定します。
添付ファイル 名前 - 1(Attachments Name - 1):「行を一覧にする」で取得した「ファイル名」

image.png
添付ファイル コンテンツ - 1(Attachments Content - 1):「ファイルまたは画像をダウンロードする」で取得した「ファイルまたは画像のコンテンツ」
image.png

実行結果

モデル駆動型アプリでフォームを作成し、以下のように添ファイル列にファイルをアップロードします。
image.png

承認アクションの中で、pdfファイルを添付することができました。
image.png

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7