logo资料库

OSWorkflow开发指南.pdf

第1页 / 共60页
第2页 / 共60页
第3页 / 共60页
第4页 / 共60页
第5页 / 共60页
第6页 / 共60页
第7页 / 共60页
第8页 / 共60页
资料共60页,剩余部分请下载后查看
简介
跑通OSWorkflow2.8例子
所需JAR包
OSWorkflow自身
OSWorkflow核心引用包
OSWorkflow可选包
与Spring2联用所需包
与Hibernate3联用所需包
WorkflowStore
MemoryWorkflowStore
JDBCWorkflowStore
SpringHibernateWorkflowStore
JDBCTemplateWorkflowStore
HibernateWorkflowStore
例子流程图
与Spring联用的OSWorkflow工作流
创建工作流
执行动作
调用接口中的参数和方法详解
Input Map
Workflow接口里面的主要方法
WorkflowDescriptor对象里面的主要方法
OSUser详解
OSUser几大功能
OSUser的优点
OSUser的缺点
OSUser现有例子中的bug
Provider的作用
OSWorkflow包的描述
OSWorkflow数据库的描述
os_currentstep
os_currentstep_prev
os_historystep
os_historystep_prev
os_wfentry
os_entryids
os_stepids
os_propertyentry
os_user
os_group
os_membership
OSWorkflow核心代码剖析
osworkflow.xml加载过程
WorkflowDescriptor对象加载过程
WorkflowStore对象加载过程
Workflow接口中的核心方法
initialize方法
transitionWorkflow方法
doAction方法
如何与现有系统集成
当前调用者如何取得任务列表
OSWorkflow高级功能
全局条件
全局动作
通用动作
自动动作
发送邮件
注册器
触发器
定时器
验证器
流程描述定义规范
head
workfow
step
action
使用GUI设计器
流程配置资源
后记
OpenDoc Series’ OSWorkflow 开发指南 V1.0 作者:陈刚
参与人员: 作者 陈刚 (at) 为 email @ 符号 发布记录 版本 1.0 1.0 1.0 1.0 日期 2007.07.20 2007.07.20 2007.08.14 2007.09.13 OSWorkflow 开发指南 Version 1.0 文档说明 联络 cucuchen520(at)yahoo.com.cn 作者 陈刚 夏昕 曹晓钢 陈克忠 说明 编著 文档格式编排 编辑、校对 审校 合作网站 本文档在合作网站 Matrix, infoq 中文站,JavaEye, CSDN, SpringSide 同步发布。 OpenDoc 版权说明 本文档版权归原作者所有。 在免费、且无任何附加条件的前提下,可在网络媒体中自由传播。 如需部分或者全文引用,请事先征求作者意见。 如果本文对您有些许帮助,表达谢意的最好方式,是将您发现的问题和文档改进意见及时反馈给 作者。当然,倘若有时间和能力,能为技术群体无偿贡献自己的所学为最好的回馈。 Open Doc Series 目前包括以下几份文档: ibatis2 开发指南 Spring 开发指南 Hibernate 开发指南 Webwork2 开发指南 持续集成实践之 CruiseControl Using the Rake Build Language OSWorkflow 中文手册 以上文档可从http://www.redsaga.com获取最新更新信息 October 15, 2007 So many open source projects. Why not Open your Documents? 2
OSWorkflow 开发指南 Version 1.0 简介..........................................................................................................................................................4 跑通OSWorkflow2.8 例子.......................................................................................................................7 所需JAR包...........................................................................................................................................7 OSWorkflow自身 ............................................................................................................................7 OSWorkflow核心引用包.................................................................................................................7 OSWorkflow可选包 ........................................................................................................................7 与Spring2 联用所需包 ....................................................................................................................7 与Hibernate3 联用所需包...............................................................................................................8 WorkflowStore .....................................................................................................................................8 MemoryWorkflowStore ...................................................................................................................8 JDBCWorkflowStore .......................................................................................................................8 SpringHibernateWorkflowStore.....................................................................................................14 JDBCTemplateWorkflowStore.......................................................................................................18 HibernateWorkflowStore................................................................................................................22 例子流程图........................................................................................................................................23 与Spring联用的OSWorkflow工作流 ....................................................................................................24 创建工作流........................................................................................................................................24 执行动作............................................................................................................................................24 调用接口中的参数和方法详解 ............................................................................................................25 Input Map...........................................................................................................................................25 Workflow接口里面的主要方法........................................................................................................25 WorkflowDescriptor对象里面的主要方法 .......................................................................................25 OSUser详解 ...........................................................................................................................................26 OSUser几大功能 ...............................................................................................................................26 OSUser的优点 ...................................................................................................................................26 OSUser的缺点 ...................................................................................................................................26 OSUser现有例子中的bug .................................................................................................................26 Provider的作用 ..................................................................................................................................27 OSWorkflow包的描述...........................................................................................................................27 OSWorkflow数据库的描述...................................................................................................................29 os_currentstep ....................................................................................................................................29 os_currentstep_prev ...........................................................................................................................30 os_historystep.....................................................................................................................................31 os_historystep_prev............................................................................................................................31 os_wfentry..........................................................................................................................................32 os_entryids .........................................................................................................................................32 os_stepids ...........................................................................................................................................32 os_propertyentry.................................................................................................................................32 os_user................................................................................................................................................33 October 15, 2007 So many open source projects. Why not Open your Documents? 3
OSWorkflow 开发指南 Version 1.0 os_group.............................................................................................................................................33 os_membership...................................................................................................................................33 OSWorkflow核心代码剖析...................................................................................................................34 osworkflow.xml加载过程..................................................................................................................34 WorkflowDescriptor对象加载过程 ...................................................................................................37 WorkflowStore对象加载过程............................................................................................................37 Workflow接口中的核心方法............................................................................................................38 initialize方法..................................................................................................................................38 transitionWorkflow方法.................................................................................................................38 doAction方法.................................................................................................................................39 如何与现有系统集成 ............................................................................................................................40 当前调用者如何取得任务列表 ............................................................................................................46 OSWorkflow高级功能...........................................................................................................................47 全局条件............................................................................................................................................47 全局动作............................................................................................................................................47 通用动作............................................................................................................................................47 自动动作............................................................................................................................................48 发送邮件............................................................................................................................................50 注册器................................................................................................................................................54 触发器................................................................................................................................................54 定时器................................................................................................................................................55 验证器................................................................................................................................................56 流程描述定义规范 ................................................................................................................................58 head ....................................................................................................................................................58 workfow .............................................................................................................................................58 step .....................................................................................................................................................59 action..................................................................................................................................................59 使用GUI设计器.....................................................................................................................................59 流程配置资源........................................................................................................................................59 后记........................................................................................................................................................60 简介 OSWorkflow 是 opensymphony 组织开发的一个工作流引擎,目前的版本是 2.8。 OSWorkflow 用纯 Java 语言编写,并且开放源代码。它最大的特点就是极其的灵活。它面向 的人群是具有技术背景的软件开发人员。OSWorkflow 不提倡用可视化工具定义流程。用户 可以根据自己的实际需求,来设计出完全符合自身业务逻辑的系统,而并不需要使用复杂的 代码去实现。换句话说 OSWorkflow 让我们真正解放了,使得我们从底层的代码堆中爬了出 来,轻松地用一套通用的引擎机制去实现各种业务流程。OSWorkflow 提供我们所有工作流 4 October 15, 2007 So many open source projects. Why not Open your Documents?
Version 1.0 OSWorkflow 开发指南 中可能用到的元素例如:步骤(step)、条件(conditions)、循环(loops)、分支(spilts)、 合并(joins)、角色(roles)、函数(function)等等。 首先我们来谈谈步骤:步骤是工作流中很重要的概念。如果我们把工作流比喻成一条 从起点站驶向终点站的公共汽车路线,那么步骤就相当于汽车站台。而汽车有的正在排队等 候进站,有的还没有进站,有的刚出站,这样就形成了所谓的“已完成”、“正在处理”、 “已添加至处理队列”、“未处理”等状态。 另外一个重要的概念就是动作,动作就是工作流中每一步骤中"需要处理的事情",每 一个动作执行完毕以后都有一个结果。公共汽车停站下客就好比一个动作,动作完成以后, 开向下一站,或者加油,或者返程等等就是一个结果。当然,实际上的工作流远比这辆汽车 来的复杂,它涉及到的结果还包括原地踏步停留在同一步骤,或者是流转到另外的步骤中去, 或者是流转到一个分支中去,或者汇集到一个合并中等。如果动作被设置成为 auto,那么 只要触发器满足条件或者有来自外部的事件工作流便可自动执行。 在许多流程中,如果遇到并行处理某些事情,这就是分支。分支一般是指并行处理多件 事情而没有先后顺序。若有一条分支进行了回退处理,整个流程都将回退。 与之相对的,合并就是把几条符合条件的分支聚合起来,使得事情变成"殊途同归"。这 也是非常常见的流程,同时也是最复杂的一种流程。 在步骤、动作和结果中都提供了函数功能,函数按执行的先后时机可分为 pre-functions 和 post-functions。顾名思义,pre-functions 就是在事情发生之前执行的,而 post-functions 就 是在事情发生以后执行的。 验证器是用来验证用户输入的数据是否合法的。它也可以被应用在步骤,动作或结果中。 动作的执行结果可以是有条件的(conditional)也可以是无条件的(unconditional)。对 于有条件结果,可以允许有多个条件。引擎将首先检查是否有满足的条件,它会逐一进行检 查,直到符合的条件被找到才能执行。如果没有一个条件被满足,那么最终引擎将产生无条 件结果。 在每个步骤中调用工作流的人被称之为调用者(caller),而每个步骤都也会有一个所有 者(owner),以代表在当前步骤中负责执行动作的角色或用户。 当前用户在执行当前步骤的时候,这些步骤被保留在当前表中(current),而一旦步骤被 执行完毕,引擎会马上将这个当前步骤从当前表中移到历史表中(history)。 OSWorkfow 的高级特性有发送邮件,注册器功能,通用动作和全局动作,触发器和定时 器等等,以下会一一讲解。 October 15, 2007 So many open source projects. Why not Open your Documents? 5
OSWorkflow 开发指南 Version 1.0 图: OSWorkflow 学习过程中所需掌握的各个概念的关系 October 15, 2007 So many open source projects. Why not Open your Documents? 6
OSWorkflow 开发指南 Version 1.0 跑通 OSWorkflow2.8 例子 所需 JAR 包 OSWorkflow 自身 OSWorkflow 自身(%osworkflow 解压包%\): osworkflow-2.8.0.jar OSWorkflow 核心引用包 OSWorkflow 核心引用包(%osworkflow 解压包%\lib\ core): commons-logging.jar:必要,支持日志。 propertyset-1.4.jar:必要,支持 propertyset 的 aggregate ,cached ,memory ,jdbc ,file ,javabeans ,map ,xml 接口实现,并不支持 hibernate3,如 果要支持 hibernate3,要自己写代码。这个下面再谈。 oscore-2.2.5.jar:必要,提供了一些工具等。 OSWorkflow 可选包 OSWorkflow 可选包(%osworkflow 解压包%\lib\ optional): bsf.jar:支持 bsf,可选。 bsh-1.2b7.jar:支持 beanshell,可选。 ehcache.jar:支持缓存,可选。 osuser-1.0-dev-2Feb05.jar:支持例子里面的用户和群组管理,在涉及到用户和群组的操作建议 加上此包。 与 Spring2 联用所需包 spring2 所需的包(%spring 解压包%\dist) : spring.jar(version:2.05) October 15, 2007 So many open source projects. Why not Open your Documents? 7
与 Hibernate3 联用所需包 OSWorkflow 开发指南 Version 1.0 Hibernate3 所需的包(%hibernate 解压包%\lib) : antlr.jar cglib.jar asm.jar asm-attrs.jars commons-collections.jar hibernate3.jar jta.jar dom4j.jar log4j.jar WorkflowStore 配置 osworkflow 的核心之一就是配置 WorkflowStore。有多种不同的配置方法,下面逐一讲 解。 MemoryWorkflowStore 在官方文档里面有现成的例子可以参照,最重要的也就是要把 persistence class 设置成为 com.opensymphony.workflow.spi.memory.MemoryWorkflowStore 具体来说,在\%webapp%\WEB-INF\classes 下的 osworkflow.xml 中: JDBCWorkflowStore 第一步:web.xml OSWorkflow Example App OSWorkflow Example App SOAPWorkflow October 15, 2007 So many open source projects. Why not Open your Documents? 8
分享到:
收藏