我是微軟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樣式還不錯.