Dynamics 365触发Microsoft Flow自动生成PDF并作为附件送邮件
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复343或者20190619可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!
前面的博文 通过重复运行的Microsoft Flow由OAuth认证后获取Access Token并将其更新到实体记录 介绍了定期运行的Microsoft Flow,本博文介绍自动运行(监听消息)的Microsoft Flow,基本操作同前面博文的,本博文不再赘述。本文参考了 Dan Mitchell 的文章 Overview of Microsoft Flow's New Word Online Connectors ,还有 Flow to Email PDF from Dynamics 365 using the Word Online Connector ,在此表示感谢。官方的介绍请参考 Word Online (Business) (Preview) ,截止2019年6月19日该Connector还处于Preview阶段。
我这里的场景用户在Dynamics 365中修改联系人的重要信息后,自动触发Microsoft Flow运行,将联系人的重要信息做成PDF文档,并发送给联系人邮箱和指定的邮箱(比如系统管理员)。
首先我们需要准备一个word文档,做好样式,然后将动态填充部分转换为 Content Control,显示Developer的方法请参考我的博文:Dynamics CRM 2015/2016新特性之七:有了文档模板,打印分析So Easy ,然后选中要动态填充的文本,点击 Aa 这个 Plain Text Content Control 图标。

然后将其上传至Sharepoint的某个Site中,我这里上传位置如下:

然后我们就可以开始创建Microsoft Flow了,登录 https://flow.microsoft.com 后,新建 Automated - from blank 类型的flow:

然后我们需要选择下触发器,我这里用字段值变更来触发,所以选择的触发器是 Common Data Service这个类别中的 When a record is updated ,如下:

触发器设置如下,记得点击 Show advanced options 来设置哪些字段的变更触发该Microsoft Flow的运行,这个和Dynamics 365 Customer Engagement中的工作流触发机制差不多.

我这里设置了下面四个字段值的变化触发该Microsoft Flow的运行:

然后新增一个步骤, 选择 Word Online (Business) 这个类别下的 Populate a Microsoft Word Template (Preview) 这个action.


这个步骤设置的值如下,可以看到会自动检测到 content control,我这里用当前记录的对应字段值来填充.

为了每次生成的PDF都有个唯一的名字,我这里获取当前utc时间转换为北京时间用来做文件名的一部分,增加一个Date Time这个类别下的 Convert time zone这个action:

该步骤的设置如下:

再增加一个OneDrive for Business下面的Create file步骤:

该步骤设置如下,值得注意的是 File Content要选择前面步骤的 Microsoft Word document, File Name字段要包括文件名称和文件后缀.docx, 我这里使用表达式来给文件名称赋值为 concat(triggerBody()?['contactid'],'_',body('Convert_time_zone'),'.docx')

然后再增加一个 Word Online类别下的 Convert Word Document to PDF的action.

设置的值如下,注意File选择前面步骤的 Path 属性.

如果这个步骤用SharePoint而不是OneDrive,那么设置如下:

最后我们创建一个Office 365 Outlook下面的 Send email action.

设置的属性值如下,注意附件 Attachments Content的内容要设置为前面 Convert Word Document to PDF步骤的 PDF document属性. 附件的名称我用的还是表达式, 这里使用的是 concat(triggerBody()?['contactid'],'_',body('Convert_time_zone'),'.pdf')

保存工作流后进行测试,测试成功,OneDrive中新增了如下的word文件:

打开该word文档如下:

邮件也收到了,PDF附件预览如下,生成的PDF样式还不错.

Dynamics 365触发Microsoft Flow自动生成PDF并作为附件送邮件的更多相关文章
- 自动生成pdf书签(仅适用于Adobe Acrobat on windows )
必备软件 1.Adobe Acrobat. 2.AutoBookmark 为adobe acrobat的自动生成书签的插件(我用的这个:AutoBookmark Standard Plug-in),下 ...
- 如何让用户登录Dynamics 365 Customer Engagement后自动登录到Unified Interface App?
微软动态CRM专家罗勇 ,回复324或者20190422可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...
- 自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器
置顶2017年11月06日 14:41:04 阅读数:2311 这几天,任务中有一个难点是把一个打印页面自动给生成PDF文档,并且上传至服务器,然而公司框架只有手动上传文档,打印时可以保存为PDF在本 ...
- Microsoft Flow 概览
作者:陈希章 发表于 2017年12月15日 前言 纵观一下我们周围的世界,以及我们每天忙忙碌碌的工作,你会"惊奇地"发现它们都是一个事件接着一个事件发生的.例如,我每天早上起来, ...
- 升级本地部署的CRM到Dynamics 365及部分新特性介绍。
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 轻量级应用程序Dynamics 365 App for Outlook介绍
摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复273或者20180625可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...
- Dynamics 365 App for Outlook 与 Dynamics 365 for Outlook(已被弃用)
在最新的版本中Dynamics 365 for Outlook(Outlook 客户端)已被弃用 随 Dynamics CRM 2016(版本 8.0)引入的 Dynamics 365 App for ...
- Gitbook 生成 pdf 中文字体错乱问题解决办法
Gitbook 生成 pdf 中文字体错乱问题解决办法 用过 Gitbook 的都知道, Gitbook 会自动生成 pdf 以提供下载, 但十分遗憾的是自动生成的 pdf 对中文的支持并不好, ...
- python之reportlab生成PDF文件
项目需要,需要自动生成PDF测试报告.经过对比之后,选择使用了reportlab模块. 项目背景:开发一个测试平台,供测试维护测试用例,执行测试用例,并且生成测试报告(包含PDF和excel),将生成 ...
随机推荐
- sleep方法要求处理中断异常:InterruptedException
package seday08.thread;/*** @author xingsir * 当一个线程调用sleep方法处于阻塞状态的过程中,这个线程的中断方法interrupt被调用时,则sleep ...
- 「SAP技术」SAP MM 明明有维护源清单,还是不能下PO?
SAP MM 明明有维护源清单,还是不能下PO? 下午收到用户报错说,创建采购订单失败,报错 :Material ### not included in source list despite sou ...
- MySQL基础-存储过程
存储过程 定义:将一批为了完成特定功能的SQL语句集,根据传入的参数(也可没有),调用,完成单个sql语句更复杂的功能 存储过程思想很简单,就是SQL语句层面上的代码封装和重用 优点:1) 可封装,并 ...
- Linux中获取本机的最新IPv6地址_更新ddns的脚本
Linux中获取本机的最新IPv6地址_更新ddns的脚本 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-11-07. 运营商提供ipv6地址. 路由器后有台linux机器,通过e ...
- Linux’s init system & systemd
一.init system 1.计算机是如何启动的 以早期 Fedora 系统为例. 1.开机 2.BIOS 和 GRUB(引导加载程序) 3.Linux 内核启动后,init 进程 是在 Fedor ...
- 如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手.代码自动提示.代码重构.代码版本管理(Git.SVN.Maven).单元测试.代码分析等方面 ...
- HeadFirst设计模式<2>
HeadFirst设计模式<2> 1 装饰者模式 星巴克咖啡 饮料 总结 如果说策略模式是通过组合实现弹性,那么装饰者模式就是通过继承来实现,在实现的同时,客户基本感觉不到使用了装饰者模式 ...
- Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
- iviewer插件
jQuery-iviewer插件的使用 iviewer是一个具有缩放和图像旋转功能的图像查看小部件. 在jQuery官网下载后,有很多文件. 直接把文件夹解压拖到项目里. 然后再html中引入主要的文 ...
- 邬江兴院士:工业互联网安全&拟态防御
尊敬的郑院士.曹书记.张秘书长,各位学术界的同仁们,很高兴在第一届工业互联网学术专题论坛上发言.我今天想谈的问题是工业互联网,这个概念很热,前景也很美好,很诱人.但是我认为工业互联网的安全挑战更严峻, ...