本人長(zhǎng)期在國(guó)內(nèi)的shark工作流QQ群中解答各種問(wèn)題,以下是曾經(jīng)解答過(guò)的問(wèn)題匯總:
為了讓shark適用于中國(guó)國(guó)情的工作流應(yīng)用,目前已完成或改造技術(shù)點(diǎn)如下:
技術(shù)點(diǎn)名稱(chēng)
1.交接班當(dāng)班值長(zhǎng)精確移交任務(wù)
2. 取下一活動(dòng)ID
3.查閱流程歷史活動(dòng)記錄
4.過(guò)期活動(dòng)提示,有新任務(wù)彈出提示用戶(hù)
5.根據(jù)當(dāng)前活動(dòng)取下一活動(dòng)的參與者映射人員
6. 強(qiáng)大參與者映射,可映射外部(企業(yè)自己數(shù)據(jù)庫(kù))組織機(jī)構(gòu),人員, 角色,資格等
7. 任務(wù)關(guān)聯(lián)業(yè)務(wù)數(shù)據(jù)
8. 任務(wù)只發(fā)給指定人
9. 各步驟流程圖
10. 更簡(jiǎn)單化的流程配置文件
11 快速讀取任務(wù)列表(比shark默認(rèn)的方法快)
12. 根據(jù)不同活動(dòng)跳轉(zhuǎn)不同的URL
13. 根據(jù)當(dāng)前活動(dòng)決定頁(yè)面可以編輯什么元素。
14. 根據(jù)頁(yè)面編輯了什么元素,決定下一步活動(dòng)的自動(dòng)扭轉(zhuǎn)。
15.當(dāng)前活動(dòng)有人處理,其他此活動(dòng)參與者只能瀏覽
16.避免數(shù)據(jù)庫(kù)死鎖,出現(xiàn)阻塞。
17. 流程圖漢化
18. 給shark提速
19. 用簡(jiǎn)單方法實(shí)現(xiàn)會(huì)簽功能
20. 帶不同業(yè)務(wù)數(shù)據(jù)的首頁(yè)任務(wù)(工作項(xiàng))列表
shark DEMO 下載:
http://www.01g.net/download/shark.rar(1)
我的shark server為什么在啟動(dòng)后會(huì)一直顯示這句:NameServer is (re)started!答:因?yàn)槟銉?nèi)存中有一個(gè)實(shí)例. 在任務(wù)管理器中關(guān)掉 namesrv 或者重啟一次計(jì)算機(jī)就可以了。
(2)
我想修改admin的默認(rèn)密碼enhydra為別的值,在哪里可以改答:默認(rèn)第一次啟動(dòng)時(shí)隨便輸入什么密碼,以后都是這個(gè)密碼。以后可以在Shark管理器里更改。
(3)
Shark的參與者映射是用好Shark的關(guān)鍵之一,你是怎么做到的?答:目前有三種模式,一是使用它的表,二是使用自己的組織機(jī)構(gòu)人員表(改源碼),三使用自己的組織機(jī)構(gòu)人員表(改配置)
(4)
如何在Shark中建立一個(gè)外部事務(wù)?答:SharkTransaction st = Shark.getInstance().createTransaction();
(5)
Shark的工作流數(shù)據(jù)集與屬性各有何作用?答:工作流數(shù)據(jù)集用于流程活動(dòng)之間交換數(shù)據(jù)用,是可變的,而屬性只存在于每個(gè)活動(dòng),下個(gè)活動(dòng)是不能訪(fǎng)問(wèn)得到的。
(6)
怎么實(shí)現(xiàn)流程的回退?答:如果回到上一步,可這個(gè)活動(dòng)的參與者映射的人全部拒收這個(gè)任務(wù),如果回到指定的活動(dòng),要在XPDL里定義,并根本條件流轉(zhuǎn)。
(7)
在shark中,任務(wù)可以移交給一群人嗎?答:不可以.一次只能移交一人。
(8)
Shark一定要用DODS來(lái)實(shí)現(xiàn)嗎?答:還可以用Hibernate.
(9)
Shark可以實(shí)現(xiàn)完全自由的流程嗎?答:不可以,因?yàn)橐话愎ぷ髁飨到y(tǒng)就是約束業(yè)務(wù)按流程走,如果太自由無(wú)規(guī)則的,就不需要工作流了。
(10)
在Shark中如何顯示流程圖信息?答:Shark提供了JAWE類(lèi)可以用,但必須要將XPDL文件放到reposite/external目錄中,JAWE類(lèi)可以讀取XPDL文件根據(jù)傳來(lái)的包ID,流程ID,和活動(dòng)ID來(lái)繪制流程圖。
(11)
Shark支持會(huì)簽流程嗎?怎樣實(shí)現(xiàn)?答:支持,這只與流程設(shè)計(jì)有關(guān),在設(shè)計(jì)XPDL時(shí)多想想需求多動(dòng)腦子來(lái)解決。
(12)
Shark的性能問(wèn)題,如何提速?答:如果沒(méi)必要用Corba,就不要打開(kāi)Corba服務(wù),可省內(nèi)存,如果不想查看日志,就關(guān)掉DatabaseManger 和 SharkExcuction日志寫(xiě)入文件,另外內(nèi)存等參數(shù)可在shark目錄shark.conf中配置,還可以關(guān)掉審計(jì)流程,這些都可以提速不少。
(13)
在業(yè)務(wù)中如何調(diào)用Shark,或Shark如何執(zhí)行業(yè)務(wù)方法?答:目前,有兩種方式:一是在業(yè)務(wù)方法中調(diào)用shark函數(shù)推動(dòng)流程,二是在shark中定義ToolAgent映射業(yè)務(wù)方法,到這個(gè)活動(dòng)時(shí)自動(dòng)調(diào)用業(yè)務(wù)方法。這兩種方法各有利弊,應(yīng)根據(jù)實(shí)際情況來(lái)做選擇。
(14)
如何讓業(yè)務(wù)事務(wù)與shark事務(wù)保持一致?答:可先執(zhí)業(yè)務(wù)方法,再執(zhí)行shark, 如果業(yè)務(wù)出錯(cuò),回滾業(yè)務(wù),而shark尚未執(zhí)行。如果業(yè)務(wù)通過(guò),shark推動(dòng)流程出錯(cuò),回滾shark和業(yè)務(wù)事務(wù)。將業(yè)務(wù)與shark放在一個(gè)try { }catch 中。
(15)
Shark支持EJB嗎?答:支持,需要下載并安裝 enhydra-enterprise-6.5-1.exe.
(16)
怎樣讓流程圖顯示中文?答:shark提供的JAWE類(lèi)庫(kù)可以生成流程圖,但默認(rèn)是UTF-8編碼,必須要轉(zhuǎn)成GBK才可以顯示中文。
(17)
任務(wù)可以移交給角色嗎?答:到1.1.2為止, shark沒(méi)有提供這個(gè)業(yè)務(wù)方法,需要自己實(shí)現(xiàn)。
文章來(lái)源:
http://www.01g.net/blog/default.asp?id=8