当前位置:网站首页>Canvas App中点击图标生成PDF并保存到Dataverse中
Canvas App中点击图标生成PDF并保存到Dataverse中
2022-08-03 22:17:00 【51CTO】
我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复472或者20220803可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!
以前的文章 Dynamics 365触发Microsoft Flow自动生成PDF并作为附件送邮件 写了通过Word Connector来生成PDF文件,今天的文章更进一步,讲述了如何处理PDF中的列表数据,我这里是要展示选择客户的联系人清单都打印出来。
今天的文章以Canvas App为例进行演示,点击按钮调用Cloud Flow执行操作。
首先我先制作Word模板,前面博文讲过的我这里不赘述,就简单的讲述下列表如何处理,主要是参考 Intermediate | Flow of the week: Create PDF Invoices Using Word Templates with Microsoft Flow 文章。
主要是列表的话,只用到两行,一行是列表标题,另外一行是示例数据,需要选择这行示例数据后,点击Ribbon功能区的Developer这个Tab下的Repeat Section Content Control。然后每一列依然和其他的占位符一样,设置为Plain Text Content Control。
为了方便映射,我这里的两个名字分别设置为对应字段的逻辑名称fullname和 emailaddress1 。
还需要将这个模板上传到Onedrive或者Onedrive for business上,我这里是上传到Onedrive上,如下图。到此,模板的准备工作完成了。
然后我来处理Canvas App中的工作,在记录的查看详情界面添加一个PDF document的图标(icon)。
再点击左侧的Power Automate图标,然后点击 Create new flow 按钮。
接下来的工作就是新建Flow了。出来的界面如下,没有我需要的模板,所以我点击 Create from blank 按钮。
首先新增一个 Initialize variable的变量,这个变量的Value从动态窗口中点击 Ask in PowerApps,这就是这个Flow接收的来自Canvas App的参数。记得保存flow之前为flow取个有意义的名字,自动生成的名字很不好看。
然后就是查询客户及其下面联系人的信息,根据父记录查询子记录的方法我这里有讲,请参考 Dynamics 365查询父实体并返回子实体信息的方法 。我这里只截图展示效果了。
下面就是添加 Word Online (Business) 这个Connector下面的 Populate a Microsoft Word template的Action。
前面这些placeholder字段的赋值很简单,列表的赋值需要先点击下图标记的 Switch to input entire array 按钮。
然后我用表达式 outputs('Get_contact_info')?['body/contact_customer_accounts'] 为这个字段赋值,效果如下:
然后增加一个OneDrive for Business下面的Create file步骤,我的设置如下:
再增加一个Word Online (Business) 这个Connector下面的 Convert Word Document to PDF的Action。
我这里设置如下,用到的表达式是 concat('/Outputs/客户_',variables('AccountId'),'.docx') 。
再添加Microsoft Dataverse Connector下的 Upload a file or an image 这个action。
我这里设置如下:
Content name 用到的表达式是 concat('客户_',variables('AccountId'),'.pdf')
再添加一个最后的步骤,那就是PowerApps这个Connector下的 Respond to a PowerApp or flow,这是Canvas App调用flow的必须的最后步骤。
最后一个步骤就是将生成PDF的图标的OnSelect事件执行的代码改成如下:
点击进行测试后生成的pdf效果如下:
边栏推荐
- [N1CTF 2018] eating_cms
- With 4 years of work experience, the 5 communication methods between multi-threads can't be said, can you believe it?
- Conditional Statements for Shell Programming
- CAS:1797415-74-7_TAMRA-Azide-PEG-Biotin
- 480. Sliding Window Median
- VLAN实验
- Makefile
- CAS:1620523-64-9_Azide-SS-biotin_biotin-disulfide-azide
- 优化查询(工作中)
- noip初赛
猜你喜欢
Conditional Statements for Shell Programming
2022-08-03 oracle执行慢SQL-Q17对比
【刷题篇】二叉树的右视图
Cisco ike2 IPSec configuration
CAS:122567-66-2_DSPE-生物素_DSPE-Biotin
113. Teach a Man how to fish - How to query the documentation and technical implementation details of any SAP UI5 control property by yourself
Data_web(八)mysql增量同步到mongodb
IO线程进程->线程同步互斥机制->day6
从0到1看支付
老板:公司系统太多,能不能实现账号互通?
随机推荐
如何基于WPF写一款数据库文档管理工具(二)
JPA Native Query(本地查询)及查询结果转换
2022-08-02 mysql/stonedb slow SQL-Q18 - memory usage surge analysis
What is Adobe?
start with connect by 实现递归查询
21天打卡挑战学习MySQL—Day第一周 第一篇
【MySQL进阶】数据库与表的创建和管理
Golang第二章:程序结构
Summary bug 】 【 Elipse garbled solution project code in Chinese!
LabVIEW代码生成错误 61056
CAS:908007-17-0_Biotin-azide _生物素叠氮化物
CAS: 1192802-98-4 _uv cracking of biotin - PEG2 - azide
VIM操作
2019年10月SQL注入的两倍
老板:公司系统太多,能不能实现账号互通?
LVS负载均衡集群
HDU 5655 CA Loves Stick
优化查询(工作中)
Data_web(九)mongodb增量同步到mongodb
一文带你了解软件测试是干什么的?薪资高不高?0基础怎么学?