做者:陳希章 發表於 2017年12月15日git
縱觀一下咱們周圍的世界,以及咱們天天忙忙碌碌的工做,你會「驚奇地」發現它們都是一個事件接着一個事件發生的。例如,我天天早上起來,一打開親愛的手機,就會收到一封郵件,告訴我說今天9點要交個材料,而後11點又有個con-call,下午可能還要拜訪一個客戶之類的。每一天,每一週幾乎都是如此,就連每月也總有那麼幾回 —— 要交各類費用,還各類卡的額度。我並非說我有多忙(這不重要),我只是說,咱們不少時候覺得有能力控制生活變成咱們想要的樣子,但事實上,咱們大部分時候是在響應一個一個的事件 —— 換言之,咱們其實在一個一個流程裏面。github
因此,人、物、事件和流程,構成了精彩紛呈的世界,但我不許備就這個高大上的話題扯太遠了。咱們今天要談的是,在IT的世界裏面,咱們怎麼樣把各類奇形怪狀的應用系統,各類事件和流程無縫地整合起來,而且讓它能更好地幫助人們又好又快地完成工做。安全
這不是一個新話題了。在近二十年以來,有大量的工做流引擎(Workflow Engine),BPM 或 EDI 系統不斷涌現,在企業級市場上也曾風起雲涌,各領風騷。不過,隨着雲和移動互聯網時代的到來,它們或多或少都受到一些挑戰和衝擊。在這一波新的浪潮中,ifttt無疑是站在浪尖的那一個,風頭一時無兩。ifttt = if this, then that,很好地詮釋了它的精髓。服務器
微軟在企業級領域有Biztalk這樣的BPM服務器,也有Workflow Foundation這樣的系統層面的工做流能力,在SharePoint Server中內置了Workflow Foundation的支持。與此同時在雲平臺蓬勃發展的當下,又從新開發和打造了一個全新的流程平臺,而且冠名爲Microsoft Flow,它既有相似於ifttt的強大和靈活架構,也繼承了微軟多年的企業級服務的基因,在團隊協做、與企業內部應用集成以及安全性等方面有一些本身的特色。架構
在微軟的產品命名傳統中,能直接冠以Microsoft做爲名稱一部分的,實際上是不太多的,因而可知,Microsoft Flow 的價值和地位。app
若是你有Office 365或者Dynamics 365的帳號,你或許已經擁有了Microsoft Flow,你固然也能夠自行申請免費版(注意,是真正免費,不是試用版)和收費版本,詳情請參考: https://flow.microsoft.com/en-us/pricing/工具
本文將包括以下內容,我相信會對你們瞭解Microsoft Flow 會有幫助:測試
這種基於事件的流程處理,多是Microsoft Flow中最爲常見的。這是咱們部門在用的一個真實案例,我大體介紹一下場景:咱們每週會收到內部同事發送過來的一個郵件,一般都帶有一個附件(名稱是 Office 365 週報.xlsx)。與此同時,咱們又但願這些附件,能以固定命名規則保存在團隊網站的某個文檔庫中,這樣咱們全部人就隨時能夠集中看到全部的週報。咱們但願這個動做能自動實現,無需人爲地操做。網站
從Microsoft Flow的角度來看,這樣的流程簡直是太合它的胃口了,你甚至均可以直接用它的模板實現。請登錄到 flow.microsoft.com 後,搜索「附件」這個關鍵字,你能夠看到有好多的模板列出來:this
咱們要的其實就是第一排的第三個模板
設置好你的帳號信息,而後點擊「繼續」按鈕,設置一下你須要監控的郵箱文件夾,以及要保存的SharePoint Online團隊網站以及文檔庫位置。
等一等,咱們如何去設置條件呢?畢竟咱們只是想監控帶有附件,並且附件名爲「Office 365 週報.xlsx」這樣的郵件呢。經過點擊下面的加號,選擇「添加條件」便可實現這個功能
下面是我編輯好的一個流程,帶有兩個條件分支,只有兩個條件都知足的話,我纔會在SharePoint Online 相應的文檔庫建立文件,並且文件名是自動加上了時間戳的,這樣確保不會重複(默認狀況下,若是文件名重複的話,Microsoft Flow會自動覆蓋掉原文件)
保存這個工做流,而後模擬發送一個郵件,我很快就能看到SharePoint Online的文檔庫中已經自動建立了一個文件
若是你對這個流程的執行細節有興趣,能夠回到工做流的視圖查看運行記錄
點擊某一個運行記錄,能夠看到細節
若是某次執行失敗,你將收到一封郵件,並且能夠在這個界面從新提交流程執行。
到這裏爲止,咱們已經建立了一個簡單但實用的流程,它會自動監控個人郵箱的收件箱,若是郵件帶有附件,而且附件名是「Office 365週報.xls」的話,就將此文件加上時間戳保存到我指定的SharePoint Online文檔庫中去。若是你以爲這個想法還不錯,你還能夠分享給其餘同事使用呢。
對於複雜一些的流程,Microsoft Flow支持多人共同編輯
上面這種場景是根據某個事件來觸發Microsoft Flow,這固然是最多見的,但還有一種狀況也比較廣泛,那就是週期性執行某個流程,例如每月從SharePoint Online的列表中導出一批數據,生成一個Excel文件,而後發送給某個郵箱。這樣要怎麼實現的呢?流程的細節我這裏不許備展開,但我要提示的是最關健的一個操做,就是如何設置週期性執行流程。
其實並不難,你只須要將一個特定的觸發器放在流程的第一步就能夠了。
選擇「計劃」這個觸發器,進行必要的設置
Microsoft Flow是如此的簡單易用,以致於咱們再也不知足於將其定義爲僅僅在後臺執行自動化任務(就像上面提到的兩種狀況同樣),有沒有可能定義一個流程,而後由咱們本身想何時執行就何時執行呢?打個比方說,電腦開機其實就是一個流程,但我不想它每次都自動開機,而是由我按下開機按鈕後纔開機。
我很喜歡上面這個比喻,畢竟這樣一來,做爲人類咱們彷佛也多少能找回了一些控制世界的尊嚴和自豪感。無論怎樣,Microsoft Flow確實實現了相似的機制,並且名稱就叫「按鈕」。
咱們先來看第一種,它容許用戶在Microsoft Flow的移動App中,經過一個按鈕執行某個流程。例如我簡單設計一個流程,讓用戶輸入幾個參數後,Microsoft Flow給個人郵箱發一個郵件。
在Microsoft Flow的移動App裏面,有一個專門的分類:Buttons
點擊第一個按鈕,會進入一個輸入參數的界面
挺有意思的對吧?試想一下,你能夠經過一個按鈕發郵件,固然也能夠經過它來開啓你家裏的空調。爲何不呢?
截至目前爲止,Microsoft Flow的移動App,還只是在測試版,除了微軟員工可使用dog food版本以及部分App Store能夠下載外,中國用戶還不能下載。詳情請關注:下載地址
在上一個場景中,包括我在 PowerApps 進階篇 中我都提到了PowerApps能夠和Flow結合起來實現強大的功能,到底怎麼作的呢?這裏我將揭曉謎底。
首先,PowerApps的應用提交的數據,也許是保存在Excel文件中,或者SharePoint Online的列表中。它只管那樣作就行了。Flow 這邊能監控Excel或者列表的變化,而後自動地在後臺執行任務。這種狀況下,PowerApps和Flow實際上是鬆耦合的,沒有任何直接聯繫的,這多是最好的一種方式吧。
可是,咱們確實能實如今PowerApps中直接發起Flow的流程。這個要分兩步來走:
第一,建立一個能夠從PowerApps中調用的流程。這裏的關鍵是觸發器是「PowerApps」,其餘部分沒有什麼特別須要注意的。
第二,在PowerApps的應用中啓動流程。其實很簡單,放一個按鈕,而後在Action中選擇「Flow」,此時會彈出一個面板,讓你選擇一個流程。
若是咱們須要輸入參數怎麼辦呢?這裏有一個很是有意思的設計,是在Flow的設計器中,你能夠選擇一個你但願接受參數的位置,而後選擇「在PowerApps中提問」,這樣它就會生成一個上下文變量出來,以下圖所示
而後,在PowerApps中,執行Run這個方法的時候,就能夠指定郵件主題了。你確定已經猜到了,這個參數能夠定義任意多個,這真是太強大了。
本文的最後我還要介紹一下如何在PowerBI中集成Flow來實現自動化。Power BI是新一代的智能數據分析和可視化的工具,一經發布就受到了普遍的關注和好評,目前穩居Gartner魔力象限的領導者象限。下圖是一個典型的Power BI 儀表盤,用來分析零售門店的業績。
今天不會對於Power BI的細節進行展開,我只提一個頗有意思的功能:假設我是一個銷售總監,我但願能監控到這個儀表盤上面的一些關健指標,當它們發生變化,尤爲是我不但願看到的一些變化(例如銷售額降低明顯)時,我能自動獲得一些通知,我該怎麼辦呢?我是24小時不吃不睡地守在電腦前面刷這個儀表盤嗎?固然不能,Power BI提供了一個警報的功能,可讓用戶本身定義須要監控的指標,而且定義發除警報的動做,默認狀況下,它能夠給用戶發一封郵件。建立警報很簡單,在某個磁貼的右上角點擊,會出現一個菜單。
點擊「管理警報」,而後點擊「添加警報規則」
細心的你估計已經發現,在這個界面的右下方,其實有一個連接:「使用 Microsoft Flow 觸發其餘操做」,點擊以後會調到Microsoft Flow的界面,並自動選擇好了一個模板,你要作的就是設置一些帳號便可。
接下來你就能夠發揮想象力定製這個流程吧,只要你願意,你能夠作的很複雜。不過,做爲一個銷售總監,你的成功之道多是要趕忙去跑到門店現場去了解狀況,因此關於這裏面的更多的技術細節我就很少跟你展開了吧。