轉(zhuǎn)帖|其它|編輯:郝浩|2011-05-10 17:56:48.000|閱讀 938 次
概述:工作流的版本控制是非常重要的技術(shù)。當(dāng)一個(gè)工作流處于閑置時(shí)(指等待觸發(fā)條件,如等待某人審批),工作流的屬性會被保存到數(shù)據(jù)庫,這稱之為持久化。當(dāng)它需要重新開始執(zhí)行時(shí),它的屬性會從數(shù)據(jù)庫中取出,工作流才得以繼續(xù)執(zhí)行。版本控制如此重要是因?yàn)椋ぷ髁鞒志没螅绻淖兞斯ぷ髁鞯某绦蚣?就不能保證當(dāng)工作流重新恢復(fù)時(shí),它能夠匹配新的程序集。一旦匹配不上,工作流將會終止。最好的做法是每一次修改都創(chuàng)建一個(gè)新的工作流版本。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
你創(chuàng)建了一個(gè)工作流,并且將它部署到生產(chǎn)環(huán)境。幾個(gè)月后,業(yè)務(wù)需要做一些小的改變。你打開工作流代碼,增加了一些Activities使得它滿足了新的需求,然后重新部署到生產(chǎn)環(huán)境。令你感到震驚的事情發(fā)生了,所有的流程實(shí)例都中斷了!你陷入了深深的狂亂中,因?yàn)槟愦_信已經(jīng)對修改的部分充分進(jìn)行了單元測試,并且找不到產(chǎn)生錯(cuò)誤的原因。你沒有進(jìn)行版本控制!
工作流的版本控制是非常重要的技術(shù)。當(dāng)一個(gè)工作流處于閑置時(shí)(指等待觸發(fā)條件,如等待某人審批),工作流的屬性會被保存到數(shù)據(jù)庫,這稱之為持久化。當(dāng)它需要重新開始執(zhí)行時(shí),它的屬性會從數(shù)據(jù)庫中取出,工作流才得以繼續(xù)執(zhí)行。版本控制如此重要是因?yàn)椋ぷ髁鞒志没螅绻淖兞?工作流的程序集,就不能保證當(dāng)工作流重新恢復(fù)時(shí),它能夠匹配新的程序集。一旦匹配不上,工作流將會終止。最好的做法是每一次修改都創(chuàng)建一個(gè)新的工作流版本。
大致的思路是每次生成項(xiàng)目都使程序集的版本號增加,而不是永遠(yuǎn)都是1.0.0.0。將新的程序集添加到GAC。最后指定舊版本的工作流不能創(chuàng)建新實(shí)例,然后把新工作流添加到對應(yīng)的列表。這樣,老版本的工作流沒有發(fā)生改變,因此不會對已經(jīng)持久化的工作流產(chǎn)生危害。
如果你沒有創(chuàng)建新版本而僅僅只是更新了工作流,所有運(yùn)行中的工作流實(shí)例將會被刪除。老版本工作流將會被移除。不要更新工作流而不創(chuàng)建新版本,除非你完全確認(rèn)你不在需要正在運(yùn)行的實(shí)例。
跟隨下列步驟,為已經(jīng)存在的工作流創(chuàng)建一個(gè)新版本:
此方法用于Visual Studio 創(chuàng)建的工作流,如果是用SharePoint Designer創(chuàng)建的工作流會自動進(jìn)行版本控制。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載