1、深圳金证科技股份有限公司OSWorkFlow2.8介绍内容提要3 DEMO基本运作原理2 OSWorkFlow2.8基本原理1 DEMO案例演示4 核心配置文件解析DEMO案例演示http:/localhost:8080/osworkflow/OSWorkFlow2.8基本原理 3-1存放当前步骤信息,每个工作流一条信息存放上一步骤信息,每个工作流一条信息自定义表,存放流转表单信息自定义表,存放各阶段审批信息,和 os_doc是一对多的关系工作流对象编号生成器存放工作组信息表 ,配置 osuser.xml后有效存放工作流历史步骤,每个工作流可能对应多条信息存放工作流前一历史步骤,比 os_hi
2、storystep少一行信息员工、工作组关系对应表,配置 osuser.xml后有效存放工作流历史步骤,每个工作流可能对应多条信息步骤编号生成器员工信息表,配置 osuser.xml后有效工作流基本信息表OSWorkFlow2.8基本原理 3-2osworkflow.xmlWorkflow wf = new BasicWorkflow(un);/初始化工作流 ,un为默认用户workflows.xml工作流配置文件1工作流配置文件2工作流配置文件x工作流配置文件xxOSWorkFlow2.8基本原理 3-3/* 调用工作流对象的 doAction进行事件操作* wf_id long 工作流对象
3、的编号* action_id int 步骤中事件对象的编号* new HashMap() 在本事件中保存临时变量之地方*/wf.doAction(wf_id, action_id, new HashMap(); 判断工作流程实例的状态,如果状态不为 ACTIVATED(1),直接返回。 利用 findCurrentSteps方法得到当前所有步骤列表。 执行 populateTransientMap方法,将 context(WorkflowContext),entry(WorkflowEntry),store(WorkflowStore), configuration(Configuration
4、), descriptor(WorkflowDescriptor)装进 transientVars;将当前要执行的 actionId和currentSteps装进 transientVars;将所有 XML中配置的 register装进 transientVars。 检查全局动作 (Global Action)和当前步骤里面所有动作的有效性。如果有无效动作,直接抛出 InvalidActionException异常。 执行 transitionWorkflow方法传递工作流,如果捕获到 WorkflowException,抛出异常并回滚。 如果动作中没有显式地标明 finish的状态为 tru
5、e,那么这时要执行 checkImplicitFinish方法,查找当前步骤中是否还有有效动作,如果没有一个有效动作,则直接调用 completeEntry方法结束流程并将流程的状态设置成为 COMPLETED(4)。DEMO基本运作原理 5-1 创建 MySql数据库 (名称: workflow) 执行 workflow.sql文件,创建表导入数据 参照配置说明在 Tomcat6.0中创建数据源 将 mysql数据库驱动文件放入 tomcat/lib 在 eclipse中导入 demo/osworkflow的项目 运行该项目运行环境准备DEMO基本运作原理 5-2 登录页面(和工作流没有关系)请注意这里的说明DEMO基本运作原理 5-3 创建新的工作流创建工作流对象DEMO基本运作原理 5-4 处理工作流当前能够进行的 Action事件历史事件处理情况列表历史审批情况列表显示工作流表单信息