探尋SharePoint 2010中的無代碼工作流
我們知道,工作流是真實(shí)世界中流程的抽象,在真實(shí)世界中,流程可以按照有沒有人類參與來泛泛地分為兩種:系統(tǒng)流程和人類交互流程。
流程的種類
系統(tǒng)流程是指那些沒有(或者幾乎沒有)人類參與的流程,這種流程的執(zhí)行過程早在設(shè)計(jì)階段就能夠完全預(yù)料,雖然某些情況下也可能會有少量的人類參與,但并不會左右流程的執(zhí)行方向。
系統(tǒng)流程主要旨在解決系統(tǒng)以及數(shù)據(jù)之間的問題,我們可以把它視為服務(wù)或者過程。正因?yàn)橄到y(tǒng)流程如此簡單,所以在SharePoint中有許多方式可以實(shí)現(xiàn)系統(tǒng)流程,比如Event Handler、Timer Job或者Console Application;也正因?yàn)橄到y(tǒng)流程如此簡單,我們在面對一個需要實(shí)現(xiàn)的系統(tǒng)流程時,甚至不會(或者忘記了)將它與“工作流”這個看似高深的概念聯(lián)系到一起。
而人類交互流程,既有人類參與的流程,才是我們最容易聯(lián)想到“工作流”這個概念的流程。環(huán)顧我們生活的四周,人類交互流程無處不在。把真實(shí)世界中的流程抽象為數(shù)字化的工作流時,我們雖然能夠盡可能多地處理每一種可能發(fā)生的情況,卻很難知道工作流將來究竟會沿著怎樣的路線執(zhí)行。
人類交互使得工作流變得復(fù)雜,在SharePoint中,我們大多使用Visual Studio來實(shí)現(xiàn)人類交互流程,這是因?yàn)樵赟harePoint 2007時代,SharePoint Designer的工作流設(shè)計(jì)能力還不足以應(yīng)付復(fù)雜的人類交互流程;而在SharePoint 2010時代,SharePoint Designer雖然仍舊不能設(shè)計(jì)可以循環(huán)回退的工作流(哦,這真是個令人沮喪的消息),但其大量新特性勢必會讓我們設(shè)計(jì)人類交互流程(或者系統(tǒng)流程)時更加得心應(yīng)手,并且我們也可以看到,SharePoint Designer的工作流功能也一直在向著這個方向努力。
SharePoint 2007中的工作流
SharePoint 2007***次引入了“工作流”這個概念。在SharePoint 2007中,工作流是基于Windows Workflow Foundation 3.0/3.5來構(gòu)建的。SharePoint 2007內(nèi)置了一些工作流來供我們使用,比如“審批”和“收集反饋”,但我們只能選擇用或者不用,而不能修改這些內(nèi)置工作流。除了內(nèi)置的工作流之外,SharePoint 2007還允許我們使用SharePoint Designer 2007來設(shè)計(jì)無代碼的工作流,或者使用Visual Studio 2005/2008來開發(fā)包含代碼的工作流。
SharePoint 2010中的工作流#p#
在SharePoint 2010中,工作流的底層基礎(chǔ)結(jié)構(gòu)依然是Windows Workflow Foundation 3.5(很遺憾沒能夠基于WF 4.0)。代碼工作流的開發(fā)工具升級到了Visual Studio 2010,無代碼工作流的設(shè)計(jì)工具也升級到了SharePoint Designer 2010。
SharePoint 2010將Office的一個重要的客戶端成員,Visio,引入了工作流創(chuàng)作之中。眾所周之,Visio是一個非常強(qiáng)大并且易用的圖表設(shè)計(jì)工具,在 SharePoint 2007時代,就有許多人在問“為什么不能用Visio來設(shè)計(jì)SharePoint工作流”這樣的問題,因?yàn)橛肰isio可以很方便地設(shè)計(jì)出直觀的流程圖,相比而言,SharePoint Designer的工作流設(shè)計(jì)器卻并不是那么令人滿意。
我們可以在上圖中發(fā)現(xiàn),Visio和SharePoint Designer總是結(jié)伴出現(xiàn),這是以為Visio只是一個工作流建模工具,它的作用只是幫助業(yè)務(wù)人員很方便直觀的“畫”出工作流流程圖,這張流程圖里只有簡單的邏輯,而且沒有包含任何數(shù)據(jù),所以它必須經(jīng)過SharePoint Designer補(bǔ)充加工之后才可以變成真正可以運(yùn)行的SharePoint工作流。
除此之外,我們還可以使用Visio 2010和SharePoint Designer 2010來編輯SharePoint 2010的內(nèi)置工作流(這種編輯并不是嚴(yán)格意義上的“編輯”,而是“復(fù)制并編輯”),對我們來說,這個功能不僅能夠讓我們修改內(nèi)置工作流以滿足我們的需求,也能夠通過查看內(nèi)置工作流的組成來學(xué)習(xí)如何用SharePoint Designer來無代碼工作流。
SharePoint 2010中的工作流類型
在SharePoint 2007時代,工作流必須和列表或文檔庫做關(guān)聯(lián)(或者綁定)之后才能夠使用,這種工作流是一種列表級的工作流,在SharePoint 2010中,它被稱為“列表工作流”。眾所周知,列表工作流最為人所詬病的就是它難以重用,在使用SharePoint Designer設(shè)計(jì)列表工作流時,***步便是選擇需要關(guān)聯(lián)的列表,并且工作流在設(shè)計(jì)完成之后,是無法將它復(fù)制到其他列表去使用的。
針對這個問題,SharePoint引入了一種新的工作流類型:可重用工作流??芍赜帽举|(zhì)上還是一種列表級的工作流,依然需要和列表做關(guān)聯(lián)之后才可以使用,但我們在使用SharePoint Designer 2010來設(shè)計(jì)可重用工作流時,無需事先選擇將要關(guān)聯(lián)的列表,在工作流設(shè)計(jì)完成后,我們可以自由地將它關(guān)聯(lián)到多個列表,甚至導(dǎo)出為一個WSP文件來部署到其他服務(wù)器之上。SharePoint 2010內(nèi)置的幾個工作流就是一種特殊的可重用工作流:全局可重用工作流,既可以在整個網(wǎng)站集的所有網(wǎng)站中重用的工作流,SharePoint Designer 2010可以讓我們輕松地將一個普通的可重用工作流提升為全局可重用工作流。
除了必須和列表相關(guān)聯(lián)之外,列表級工作流還有一個特點(diǎn),就是必須基于一個列表項(xiàng)來啟動。所以有些時候,我們?yōu)榱耸褂靡恍┫到y(tǒng)流程,或者在流程執(zhí)行期間才創(chuàng)建列表項(xiàng)的工作流,就不得不去準(zhǔn)備一個無意義的列表,并且去創(chuàng)建一個無意義的列表項(xiàng),只是為了啟動一個工作流,無論從設(shè)計(jì)方式還是用戶體驗(yàn)來說,這都不是一個令人滿意的解決方案。SharePoint 2010中新增加的“網(wǎng)站工作流”則可以解決這個問題,顧名思義,網(wǎng)站工作流是一種網(wǎng)站級別的工作流,它不需要和列表做關(guān)聯(lián),也不需要基于一個存在的列表項(xiàng)來啟動。如果需要啟動一個網(wǎng)站工作流,可以直接在網(wǎng)站的【網(wǎng)站操作】【網(wǎng)站工作流】中進(jìn)行操作。
工作流創(chuàng)作工具的關(guān)系
由于Visio的引入,SharePoint 2010便有了三個工作流創(chuàng)作工具。其中,Visio憑借其易用直觀的設(shè)計(jì)方式,為業(yè)務(wù)人員提供了設(shè)計(jì)工作流流程圖的良好用戶體驗(yàn)。業(yè)務(wù)人員在Visio 中設(shè)計(jì)好工作流流程圖之后,將其導(dǎo)出成為一個VWI文件,交給IT人員,IT人員再將其導(dǎo)入到SharePoint Designer中,補(bǔ)充邏輯和數(shù)據(jù),使其成為一個可以運(yùn)行的工作流。在這期間,由于各自領(lǐng)域和所用軟件的差異,業(yè)務(wù)人員可能要與IT人員進(jìn)行多次溝通。
如果在將來的某一天,無代碼工作流已經(jīng)無法滿足我們的需求,IT人員就可以將其導(dǎo)出成為一個WSP文件,交給開發(fā)人員,開發(fā)人員再將其導(dǎo)入到Visual Studio中進(jìn)行二次開發(fā),經(jīng)過這樣一個過程之后,無代碼工作流就變成了代碼工作流。
此外,開發(fā)人員還可以使用Visual Studio 2010來為SharePoint Designer開發(fā)自定義操作,來豐富和補(bǔ)充SharePoint Designer的操作庫。
以上便是我在“SharePoint 2010 Day”活動中奉獻(xiàn)的講座:《SharePoint 2010:新一代無代碼工作流》的部分內(nèi)容,本文略去了講座中對于SharePoint Designer 2010新增的“自定義任務(wù)”的生命周期的相關(guān)介紹,以及關(guān)于網(wǎng)站工作流、可重用工作流、Infopath協(xié)同、Visio協(xié)同以及工作流狀態(tài)圖的相關(guān) Demo。如果時間和精力允許,我會將它們單獨(dú)成文。
【編輯推薦】
- 打虎親兄弟 Office 2010與Sharepoint 2010的協(xié)同工作
- 微軟借SharePoint 2010在線編輯器挺進(jìn)網(wǎng)絡(luò)辦公軟件
- 十二步完成SharePoint 2010的部分安裝
- SharePoint 2010 將共享功能更加人性化