首页 > 其他分享 >使用Power Automate获取Dataverse数据作为Excel附件发送邮件

使用Power Automate获取Dataverse数据作为Excel附件发送邮件

时间:2024-01-05 19:05:10浏览次数:24  
标签:body Power 步骤 Excel 如下 Connector Automate 创建

这是我的第506篇原创文章,写于2024年1月5日。

之前我写过一篇文章 使用Power Automate获取CDS中数据并附加到邮件中发送 ,发送的是CSV,如果要发送Excel呢?今天我根据 Create An Excel File And Add Rows Using Power Automate 的文章来做个发送Excel的例子。

我创建一个Manually trigger a flow的flow来演示。

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Power Automate


使用如下的Microsoft Dataverse Connector的List Rows action来获取记录,记得查找字段要用_作为前缀,_value作为后缀。

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Power Automate_02


这样获取的列会比Select columns中列出的列多出不少,我要筛选下只要自己需要的列,这里会用到 Data Operation的Select这个Action

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Power Automate_03


具体这个Action的设置如下:

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Microsoft Dataverse_04

这个步骤Peek code的显示结果如下,对于日期时间我转换成了北京时间,对于查找字段要获取到显示值请注意写法。

{
    "inputs": {
        "from": "@outputs('获取表中的数据')?['body/value']",
        "select": {
            "Id": "@item()?['ly_demoentityid']",
            "名称": "@item()?['ly_name']",
            "客户": "@item()?['[email protected]']",
            "创建者": "@item()?['[email protected]']",
            "创建时间": "@convertFromUtc(item()?['createdon'],'China Standard Time','yyyy-MM-dd HH:mm:ss')"
        }
    }
}


经过这个步骤转换后获取到的数据是个数组,如下:

[
  {
    "Id": "759c7c66-339a-ee11-be37-000d3aa3372f",
    "名称": "good1",
    "客户": "A Datum Corporation",
    "创建者": "System Administrator",
    "创建时间": "2023-12-14 11:46:52"
  },
  {
    "Id": "45120202-9998-ee11-be37-00224858dadf",
    "名称": "测试记录一",
    "客户": "A Datum Corporation",
    "创建者": "System Administrator",
    "创建时间": "2023-12-12 10:49:24"
  }
]


要写入Excel,首先需要创建一个空白的Excel文件。为了后面步骤方便处理这个文件,我使用一个变量来存储这个文件名,生成文件名我使用的表达式是: 

concat('LuoYong',addHours(utcNow(),8,'yyyyMMddHHmmss'),'.xlsx') 。

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Power Automate_05


计划在一个Sharepoint站点 https://crm348591.sharepoint.com/sites/LuoYongDemo 中的 Shared%20Documents 文件夹中创建一个Excel文件,这里用到了Sharepoint连接器的Send an HTTP request to SharePoint这个Action.

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Power Automate_06


设置如下,Uri中使用的表达式是:

_api/web/GetFolderByServerRelativeUrl('Shared%20Documents')/Files/add(url='@{variables('excelFileName')}',overwrite=true)

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Microsoft Dataverse_07


为了方便动态的获取前面设置的列的标题,我们这里增加一个Data Operation Connector下面的Create CSV table action。

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Microsoft Dataverse_08

 

这个步骤设置如下:

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Microsoft Dataverse_09


然后增加一个 Excel Online (Business) Connector下的Create Table action。

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Microsoft Dataverse_10


设置如下:

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Power Automate_11


用到的表达式如下:

body('Send_an_HTTP_request_to_SharePoint_创建空白Excel文件')['d']['UniqueId'] 

first(split(body('Create_CSV_table'), decodeUriComponent('%0A')))


最后就是往表中插入数据了,首先要使用一个Apply to each步骤来循环 body('Select:_Export_to_Excel_Data') 。

然后这个 Apply to each步骤里面需要一个Excel Online (Business) 这个Connector的 Add a row into a table 这个action。

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Microsoft Dataverse_12


我这里设置如下:

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Microsoft Dataverse_13


用到的两个表达式分别如下:

body('Send_an_HTTP_request_to_SharePoint_创建空白Excel文件')['d']['UniqueId']

items('Apply_to_each')

当然Table的名字就是前面创建Table使用的名字。

运行一下,可以看到创建的Excel内容如下,没毛病,支持简体中文。

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Microsoft Dataverse_14


如果我还想将这个Excel的内容作为邮件附件发出去的话我就接着加步骤,注意这里要加个Schedule Connector下面Delay步骤,等待1分钟就可以了。

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Power Automate_15


然后使用Sharepoint连接器的 Get file content using path 这个action,设置如下:

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Power Automate_16

使用的表达式是:

concat('/Shared Documents/',variables('excelFileName'))


最后再加一个Office 365 Outlook Connector的 Send an email (V2)的步骤,设置如下:

使用Power Automate获取Dataverse数据作为Excel附件发送邮件_Microsoft Dataverse_17


Attachments Content 用到的表达式是:

body('Get_file_content_using_path')


标签:body,Power,步骤,Excel,如下,Connector,Automate,创建
From: https://blog.51cto.com/luoyong/9116574

相关文章

  • Python+Requests+PyTest+Excel+Allure 接口自动化测试实战
    本文主要介绍了Python+Requess+PyTest+Excel+Allure接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit......
  • Cisco Firepower 1000 Series FTD Software 7.2.0 & ASA Software 9.18.1
    作者主页:www.sysin.org面向小型办公室的企业级保护在企业发展的过程中为企业保驾护航。Firepower1000系列提供高性能、易用性、深入的可视性与可控性,可快速检测和阻止威胁。该系列在设计上优化了安全服务,而不会降低网络性能。Firepower1000型号对比Firepower1010桌面型:集成交......
  • 如何选择最适合您的Excel处理库?
    选择最适合您的Excel处理库需要考虑多个方面,包括功能、性能、易用性以及与您的项目技术栈的兼容性。以下是详细的描述:步骤1:确定需求首先,您需要明确自己的需求。考虑以下问题:是否需要读取、写入和编辑Excel文件?是否需要处理大型的Excel文件?是否需要支持不同格式的Excel文件(例如xlsx......
  • (2)power gating(电源门控)
    一、什么是powergating?随着工艺制程的减小和芯片规模的扩大,芯片的leakage的比重越来越大,在数字后端实现时必须要考虑到leakage的优化,而优化leakage的手段之一就是实现powergating。powergating是指芯片中某个区域的电源被关闭,即通过切断电路电源来节省leakage,设计如......
  • Apache POI 操作Excel文件--写入数据至客户端
    publicvoidexprotBusinessData(HttpServletResponsehttpServletResponse){//1.查询数据库LocalDateTimebegin=LocalDateTime.of(LocalDate.now().minusDays(30),LocalTime.MIN);LocalDateTimeend=LocalDateTime.of(LocalDate.now().minus......
  • Microsoft 365 开发:如何通过PnP Powershell批量删除文件夹或文件等
    51CTOBlog地址:https://blog.51cto.com/u_13969817通常删除文件夹可以在UI界面操作比较方面,但是如果想快速的删除文件夹以及其childfolder,该如何操作呢?解决方案:本文将介绍如何使用PnPPowerShell脚本删除SharePoint文档库中的文件夹:第一步是通过运行cmdlet:ConnectPnPOnline来......
  • Microsoft 365开发:如何通过Graph Powershell推动密码过期邮件提醒
    51CTOBlog地址:https://blog.51cto.com/u_13969817密码过期提醒是一种安全措施,用于确保用户定期更改其密码,以减少密码被盗用的风险。当用户密码过期时,系统发送提醒通知,告知需要更改密码。这种提醒通常可以以电子邮件、系统通知的方式发送给用户,提醒中通常包含有关如何更改密码的提......
  • Microsoft 365开发:如何使用Powershell将单个或者多个用户邮箱转换为共享邮箱
    51CTOBlog地址:https://blog.51cto.com/u_13969817Office365是一个基于云的平台,提供了一套生产力工具,包括电子邮件、日历和文件共享。随着员工数量的增加和团队合作的需要,企业管理员经常会将个人邮箱转换为共享邮箱,其好处是:·      共享邮箱可以方便团队成员之间的邮件交......
  • Microsoft 365 新功能速递:如何用Powershell为SPO文件夹设置不同颜色
    51CTOBlog地址:https://blog.51cto.com/u_13969817微软最近推出了一项新功能,允许用户在SharePointOnline和OneDrive中使用预设的16种颜色为文件夹上色。此功能适用于新文件夹和现有文件夹。现在,用户可以使用不同的颜色自定义文件夹,以便更好地管理文件,比如:·      提供工作......
  • java按自己模板导出excel
    Java按自己模板导出Excel在实际的开发中,我们经常会遇到需要导出Excel文件的需求。而在Java开发中,我们可以使用一些库来帮助我们实现此功能。本文将介绍如何使用Java按照自己的模板导出Excel文件,并附带代码示例。为什么要按自己的模板导出Excel?在一些业务场景中,我们需要根据特定......