从SQL server中获取数据生成文件下载到本地
我们来描述一下场景:
我们power apps以SQL server作为数据源,然后需要通过power apps查询相应的数据,然后通过flow生成一个文件上传到blob,并下载到本地。
PowerApps界面设置
其实我们这个并不需要很多的控件。假如我们的SQL server数据库中有一个表为Students,里面字段有ID,Name,Sex ,Age,Class等字段。
假如我们页面想要控制下载的数据的条件,比如我想要数据库中的班级为5,6 两个班级的男生(Sex=男),生成一个CSV文件并下载到本地。
假如我们参数的值确定的话,可以直接把参数值直接放到flow里面。
如果不确定我们可以以变量的形式传递给flow。
这里我们主要展示结果,所以我们参数值给定如上面所述。
我们可以插入在页面一个按钮用于下载flow的触发。
Power Automation 设置
首先我们创建一个云端即时流,然后插入控件搜索sql
然后我们在SQL server 插入我们需要查寻的sql语句。
现在我们创建一个csv table然后进行数据格式化。
创建一个CSV 表格。数据源为我们查询出来的数据
然后我们点击 Show advanced options 发现下面有两种选择
1.Automatic 自动按照数据库中的列进行排列
2.Custom 自定义列,因为有些时候我们查询不仅仅是一个表的,然后生成的表格文件,我们并不想将数据库列名设置为表头。
如果选择第二种的话就类似于这种:我们也可以将value列为空
然后我们需要对CSVtable 做一下处理,其中代码为:只需要改一下后部分"body(‘Create_CSV_table’)"即可。
concat(uriComponentToString('%EF%BB%BF'), body('Create_CSV_table'))
文件上传到blob
与我们之前的一样Createblob(V2),其中我们内容为我们上一步Compose后的输出。
点击Show advanced options 输入application/octet-stream
我们一会儿会生成一个URL ,这里如果不填的话,我们点击URL他可能会直接打开blob中的文件,但是我们写入我们上面的代码,则会直接下载到本地。
这一步我们开始创建URL ,使用的是上一步的path
最后我们要返回给power apps一个URL参数,即我们需要将上一步生成的Web URL返回给power apps,我们插入控件查询power apps 选择text,URI自己输入,然后右侧我们可以选到我们之前生成的WebURI
文件下载
我们回到power apps中直接在按钮的selected属性中写
Download(flowName.run().uri)
一句话即可。