为了让shark适用于中国国情的工作流应用,目前已完成或改造技术点如下:技术点名称 1.交接班当班值长精确移交任务 2. 取下一活动ID3.查阅流程历史活动记录 4.过期活动提示,有新任务弹出提示用户5.根据当前活动取下一活动的参与者映射人员6. 强大参与者映射,可映射外部(企业自己数据库)组织机构,人员, 角色,资格等7. 任务关联业务数据8. 任务只发给指定人9. 各步骤流程图10. 更简单化的流程配置文件11 快速读取任务列表(比shark默认的方法快)12. 根据不同活动跳转不同的URL13. 根据当前活动决定页面可以编辑什么元素。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没有提供这个业务方法,需要自己实现。