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