目前本人正在研发一个基于JAVA技术的OA软件,功能很全,最核心的功能就算是工作流了。说到工作流,自然要想到工作流引擎,感觉自己开发一个,太耗时,因此,想到用网上的开源工作流引擎。搜索了许多工作流引擎,对我来说,感觉最好的还是osworkflow工作流引擎。
为何这样说呢?因为osworkflow是一种基于有限状态机的工作流引擎技术。个人感觉以状态+设定的规则自由灵活地引导工作流转,这正是OA应用所必需的,具有简单灵活等优点,但缺点就是目前其官方网站提供的工作流设计器不好用,需要自己设计,另外,内置的用户管理系统(即用户表,用户组表和角色表)均太过简单,也太过死板,还需要根据自己的应用来
自定义。
下面将以第一个osworkflow demo程序来开始
研究如何应用osworkflow。
首先,到osworkflow的官方网站http://www.opensymphony.com/osworkflow/,下载一个最新的osworkflow-2.8.0.zip,解压后,里面除了源码之外,还提供了一个osworkflow-2.8.0-example.war示例,我们就从这个示例开始下手。
第二步,将osworkflow-2.8.0-example.war重命名成osworkflow_demo.war包。然后将其拷贝到tomcat6.0的webapps目录(如G:\Program Files\Apache Software
Foundation\Tomcat 6.0\webapps)下面。如果tomcat6.0正在运行状态,则tomcat6.0会自动将该war包解压分发到osworkflow_demo目录。
第三步,打开
IE浏览器,输入http://localhost:8080/osworkflow_demo/ ,然后就可以看到效果。
值得一提的是,osworkflow内置的示例程序,用的是
内存模式保存流程步骤,用户数据。用户在此示例网站改动的数据数据均保存在WEB-INF\classes的osuser.xml或者example.xml中,要实现数据的可执久化(即保存到数据库),需要对osworkflow进行更深入的研究。