Power Appsアドベントカレンダー6日目は、データフローをご紹介します。
今回、ホントはPower Automate Desktopで自動的にEightの名刺データをOneDriveにダウンロードして、定期に最新の顧客情報を取り込む仕組みを披露したかったんですが、アドベントカレンダーまでに課題が解決できず💦次回のブログにまとめて書きます。
#データフローとは
Power Appsでアプリを作る際に、他のサービスからリアルタイムにデータを取得するには、用意されたコネクタを利用しますが、別のシナリオとして更新頻度の低いデータ連携には、データフローを活用しましょう。
注意:Microsoft Dataverse(CDS)の利用が前提なので有料ライセンスが必要です。
##設定してみましょう
今回は、OneDriveに保存された顧客情報のCSVファイルを取り込みます。
「空白から開始」を選んでください。
「名前」に、このデータフローの名称をつけて「作成」してください。
接続先一覧が表示されます。とりあえず、今回は「テキスト/CSV」を選びます。
※ExcelでもJSONでもCSVでもAzure SQL Database、MySQLも、様々なサービスに対応しています。
個人的に面白いと思うのはWebページです。
指定したURLのHTMLページ内のTableタグの内容を取込出来ますので、ウェブサイトで発表されるような内容を定期的に取込することも可能です。
取り込みたいデータをファイルまたはURLの横にある「OneDriveの参照」から選択して「次へ」を押してください。「接続」はログインしているアカウントが自動的に選択されます。
「元のファイル」で文字コードを選んで、「区切り文字」を選び、CSVデータがカラムに分割されているか確認します。問題なければ「OK」を押してください。
各カラムのデータ型を選びます。テキスト型は文字列として取り込まれすが、更新日などは日付型等、金額なら整数か通貨等、データの内容によって適切に選択しないと、思うような検索ができませんので、注意してください。
顧客情報ですが、
読み込みの設定は「既存のテーブル」に読み込みます。
宛先テーブルは「Account」を選んでください。
フィールド マッピングで、Eightのデータレイアウトから、既存のAccountのカラムに合うものを指定してください。
全て指定したら、「次へ」を教えてください。
予備知識:今回、顧客情報を取込ますが、新たにデータベースを作成する場合、自身で考えたデータレイアウトや、Eightからダウンロードしたままでも良いのですが、Microsoft Dataverse(CDS)には、顧客情報を保存する既存テーブル「取引先企業」があります。
特にこだわりがなければ、その後のデータ共有を考慮して、既存テーブルに入れておきましょう。
Common Data Modelと呼ばれていますが、他にどんなテーブルがあるか、調べてみると面白いと思います。
※詳しく知りたい方は、中村さん(@kenakamu)のブログを参照してください。
https://qiita.com/kenakamu/items/21f91df6c42e9a0e8e19
実際に取り込まれたデータを確認してみましょう。
左メニューの「データ」から「テーブル」を選び、一覧から「取引先企業」を開いて、「データ」タブを選んで内容を確認しましょう。
※すべてのカラムを表示したい場合には、右上の「ビューの選択」から「すべての列」を選択すると表示されます。
以上で、データ フローの設定は終了です。
頻度の高くないデータ連携は、こちらをお勧めします。