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