我是微軟Dynamics 365 & Power Platform方面的工程師羅勇,也是2015年7月到2018年6月連續三年Dynamics CRM/Business Solutions方面的微軟最有價值專家(Microsoft MVP),歡迎關注我的微信公眾號 MSFTDynamics365erLuoYong ,回復401或者20200408可方便獲取本文,同時可以在第一間得到我發布的最新博文信息,follow me!
以前寫過博文 Dynamics CRM郵件附件,你真的了解嗎?,可以知道郵件附件使用的實體是 activitymimeattachment 。今天用Power Automate來發帶附件的郵件時候進一步看了下。
先說下Web API創建郵件附件的方法,參考了 HOW TO CREATE AN ACTIVITY ATTACHMENT USING WEBAPI IN DYNAMICS 365 ,我這里提供下示例代碼:
var emailId = "97117037-8379-ea11-a811-000d3a378a3a"; var documentBodyInBase64 = "iVBORw0KGgoAAAANSUhEUgAAADIAA....."; var data = { "objectid_activitypointer@odata.bind": "/activitypointers(" + emailId + ")", "body": documentBodyInBase64, "filename": "test.jpg", "objecttypecode": "email", "subject": "test.jpg", "mimetype": "image/jpeg" } Xrm.WebApi.createRecord("activitymimeattachment", data).then( function success(result) { console.log("activitymimeattachment created with ID: " + result.id); }, function (error) { console.log(error.message); } );
我也碰到這個帖子 Creating a new Email Attachment in Dynamics 365 碰到的問題:就是attachmentid字段必須輸入,但是實際上應該不用,不設置就保存不了。
然后在這個帖子 Creating activitymimeattachment (Email attachment) Record through Microsoft Flow 中提出了利用 HTTP with Azure AD 這個Connector直接發起HTTP請求來做,的確是可以的。
配置鏈接的時候參考下圖,也就是這兩個URL都配置為Dynamics的URL。
然后發起的HTTP請求內容類似如下:
發送的郵件要顯示在Dynamics 365的Timeline中可以參考 Send Dynamics 365 Emails from Power Automate 或者 Creating and Sending an Email from Dynamics 365 using Power Automate 。
需要先創建Email Messages實體(也就是email實體)記錄,Description字段就是郵件正文,支持HTML,Subject就是郵件標題,Regarding (關聯實體的顯示名稱) 字段設置為類似 /accounts(record guid) 。
然后調用SendEmail這個綁定操作就可以將郵件發出。
如果是篩選某條記錄的附件內容用來發郵件,篩選附件的條件可以參考如下:
還可以參考我的博文 Power Automate實用常見問題解答(FAQ) 了解更多關於Power Automate的信息。