osworkflow工作流技术研究

 转载,原文地址:http://bluewens.blog.163.com/blog/static/6991307200991005424525/
         目前本人正在研发一个基于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进行更深入的研究。

      下面我们来研究这个示例网站的使用,顺便领会一下它的设计思路,从中找出窍门,以便以后我们要把osworkflow技术很好地应用在我们的OA中。

      首先,我们登录http://localhost:8080/osworkflow_demo/,自动重置到默认的主页http://localhost:8080/osworkflow_demo/default.jsp。上面的英文说的是要我们创建一个帐号,当然,我们也可以将test作为用户名,test作为密码来登录。主页下面是一张稿件审批流程图,用户登录后,新建流程,每执行一步工作流均按此流程图相符合,并且每执行一步均可点击Viw Live Graph 查看执行效果。

其主要流程是:开始—>初稿->编辑稿件->审稿->发稿.(但值得提示的是,本示例并不是直接走这个流程,而是有一些曲折,详见下述)。因为如果初稿准备的不好或者要进行一些设计,就要走以下的流程。

开始->初稿(First Draft)->稿件设计这时要分出来2步(Foo和Bar),Bar的下步流程是Bax,只有Foo和Bar及Baz均完成,才能进行下一步编辑稿件 Edit Doc,接着是初次审稿Review Doc,初审过后,可能要进行多次的复审(Second Review),如果不进行多次的复审,也可能直接就发稿(Public Doc)了.此时流程就结束了。

总之,这个示例很符合日常工作的场景。

 让我们来以test作为用户名和密码登录一下,体验osworkflow的应用吧。

1.登录http://localhost:8080/osworkflow_demo/nav.jsp,

可以点击Home 返回首页,点击New Workflow 新建流程(本示例新建5个流程,即1,2,3,4,5),点击My Underway Workflows 查看自己下面所有的流程。

在文本框中输入数字,如1,然后选择VIEW,则查看到流程1的执行状态。见下图

Permissions


 

StepActionStatusOwnerStart DateFinish DatePrevious
Publish Doc (14)NONEFinishedtestSat Oct 10 00:59:03 CST 2009null13,
Publish Doc (13)Publish DocumentFinishedtestSat Oct 10 00:59:01 CST 2009Sat Oct 10 00:59:03 CST 200912,
Review Doc (12)Publish DocFinishedtestSat Oct 10 00:58:52 CST 2009Sat Oct 10 00:59:01 CST 200911,
Second Review (11)Finish Second ReviewFinishedtestSat Oct 10 00:58:43 CST 2009Sat Oct 10 00:58:52 CST 200910,
Second Review (10)Sign Up For Second ReviewFinished Sat Oct 10 00:58:35 CST 2009Sat Oct 10 00:58:43 CST 20099,
Review Doc (9)Peer ReviewFinishedtestSat Oct 10 00:57:34 CST 2009Sat Oct 10 00:58:35 CST 20098,
Edit Doc (8)Finish EditingFinishedtestSat Oct 10 00:57:13 CST 2009Sat Oct 10 00:57:34 CST 20097, 5,
Baz (7)Finish BazFinishedtestSat Oct 10 00:57:11 CST 2009Sat Oct 10 00:57:13 CST 20096,
Bar (6)Finish BarFinishedtestSat Oct 10 00:56:43 CST 2009Sat Oct 10 00:57:11 CST 20091,
Foo (5)Finish FooFinishedtestSat Oct 10 00:56:43 CST 2009Sat Oct 10 00:56:58 CST 20091,
First Draft (1)Finish First DraftFinishedtestSat Oct 10 00:54:54 CST 2009Sat Oct 10 00:56:43 CST 2009 
Viw Live Graph


 

Home | New Workflow | My Underway Workflows

 

流程图的数据均保存在WEB-INF\classes\example.xml中,图片效果是从example.lyt.xml文件中将流程进一步解析出来的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值