您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > Activiti学习交流
ACTIVITI学习交流会本次学习交流内容1.工作流简介2.工作流规范3.Activiti简介4.Activiti的基本使用介绍数据库结构源码分析5.快速开发平台中目前的应用情况及总体规划工作流简介工作流(WorkFlow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递。当前流行工作流程引擎JBPMActiviti工作流用语简介1.流程定义2.流程实例3.流程任务4.流程分支工作流规范(BPMN2.0)业务流程模型注解(BusinessProcessModelingNotation-BPMN)是业务流程模型的一种标准图形注解。这个标准是由对象管理组(ObjectManagementGroup-OMG)维护的。Activiti遵循Bpmn2.0规范及其扩展规范流程根元素process元素定义的id,它会作为业务流程的key使用用于生成流程发布、启动、并生成流程实例ID,同时也是流程定义的唯一标识事件抛出型:errorend捕获型:start、nonestart、Timerstart、end、noneend说明:start、end事件用来定义流程的开始、结束动作。Nonestart、noneend事件没有指定触发进入该事件,通常用于子流程。TimerStart事件用于启动一次的流程或特定时间间隔启动一次的流程Errorend事件通常用于业务异常建模,当流程执行到errorend节点时,会自动结束当前路径,并抛出ERROR,如果没有找到匹配的error事件会默认noneend结束。用户任务用户任务用来对那些需要人参与完成的工作进行建模。当流程执行到这样的用户任务时,会在分配任务的用户或用户组的任务列表中创建新的任务。XML表示:userTaskid=“theTask”name=“请假申请/用户分配:1.BPMN2.0userTaskid='theTask'name='importanttask'humanPerformerresourceAssignmentExpressionformalExpressionkermit/formalExpression/resourceAssignmentExpression/humanPerformer/userTask多人:userTaskid='theTask'name='importanttask'potentialOwnerresourceAssignmentExpressionformalExpressionuser(kermit),group(management)/formalExpression/resourceAssignmentExpression/potentialOwner/userTask2.Activit扩展直接把mytask用户分配给kermituserTaskid=theTaskname=mytaskactiviti:assignee=kermit/任务候选人(多人)userTaskid=theTaskname=mytaskactiviti:candidateUsers=kermit,gonzo/任务候选组userTaskid=theTaskname=mytaskactiviti:candidateGroups=management,accountancy/顺序流顺序流是两个流程元素的连接XML表示:sequenceFlowid=flow1sourceRef=theStarttargetRef=theTask/带条件的顺序流:带条件的顺序流是以XML中含有conditionExpressio子元素的普通顺序流来表示XML表示:sequenceFlowid=flowsourceRef=theStarttargetRef=theTaskconditionExpressionxsi:type=tFormalExpression![CDATA[${order.price100&&order.price250}]]/conditionExpression/sequenceFlow分支(网关GETWAY)单一分支(XRO)流程执行到这种gateway时,按照输出流定义的顺序对它们进行计。条件为true的顺序流会被选择继续执行。XML表示:exclusiveGatewayid=“exclusiveGw”name=“分支/sequenceFlowid=flow1sourceRef=exclusiveGwtargetRef=theTask1conditionExpressionxsi:type=tFormalExpression${input==1}/conditionExpression/sequenceFlowsequenceFlowid=flow2sourceRef=exclusiveGwtargetRef=theTask2conditionExpressionxsi:type=tFormalExpression${input==2}/conditionExpression/sequenceFlow分支(网关GETWAY)并行分支(parallelgateway)拆分(fork):并行执行所有的输出顺序流,为每一个顺序流创建一个并行执行路径合并(join):所有到达parallelgataway的并发性的执行路径都等待于此,直到每个输入流都执行到。然后,流程经由joininggateway继续向下执行。并行分支(parallelgateway)XML表示:startEventid=theStart/sequenceFlowid=flow1sourceRef=theStarttargetRef=fork/parallelGatewayid=fork/sequenceFlowsourceRef=forktargetRef=receivePayment/sequenceFlowsourceRef=forktargetRef=shipOrder/userTaskid=receivePaymentname=ReceivePayment/sequenceFlowsourceRef=receivePaymenttargetRef=join/userTaskid=shipOrdername=ShipOrder/sequenceFlowsourceRef=shipOrdertargetRef=join/parallelGatewayid=join/sequenceFlowsourceRef=jointargetRef=archiveOrder/userTaskid=archiveOrdername=ArchiveOrder/sequenceFlowsourceRef=archiveOrdertargetRef=theEnd/endEventid=theEnd/ACTIVITI扩展规范监听器:ACTIVITI简介Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理BPM的专家TomBaeyens担任。Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。ACTIVITI基本使用介绍引擎服务基本架构图Activiti表结构流程部署时序图代码:repositoryService.createDeployment().name(test).addInputStream(resourceName,fileStream).deploy();流程启动代码:runtimeService.startProcessInstanceById(actdefId,formInfo);调用服务:runtimeService启动方式:(1)、通过流程定义ID(2)、通过流程定义Key(3)、通过流程定义的messageName(5.9以上版本)流程启动时,在调用ProcessDefinitionEntity时,会先到缓存里去找对应的流程定义。人员分配任务分配时,根据流程定义,首先根据人工活动定义的Assignee,直接进行分配,如果Assignee有值,此时该任务处于已认领状态。然后继续执行任务的候选人分配,候选人分两种:候选组表达式及候选人表达式,解析表达式,进行公共任务分配。任务应该没有状态,标记是已经被认领时,是根据该任务的属性:task.getAssignee()是否有值进行判断对task查询是否存在Assignee人员分配候选组候选人人员分配快速构建平台的应用情况自定义表流程定义自定义表单流程设置流程实例流程任务表单绑定、人员设置、权限设置、条件设置从表中读取业务数据提交业务数据解析freemark模板呈现获取流程定义,判断流程走向主要类设计BpmDefinitionService:流程定义相关操作BpmProRunService:流程实例相关操作BpmDefVarsService:流程变量BpmNodeUserService:流程节点人员设置BpmNodeSetService:流程节点设置FrmFormRightsService:表单权限处理BpmService:流程引擎方法统一封装BpmFormControlService:流程表单解析FlowGraphStatus:流程图个环节任务状态,用于生成流程图BpmProStatusService:流程状态TaskOpinionService:流程任务操作主要表设计T_BPM_DEFINITION:流程定义扩展表T_BPM_DEF_VARS:流程变量表T_BPM_FORM_RUN:未使用T_BPM_NODE_SET:节点设置表T_BPM_NODE_USER:环节任务人员设置表T_BPM_PRO_RUN:实例运行实例扩展表T_BPM_PRO_STATUS:实例状态表T_BPM_TASK_OPINION:未使用T_FRM_FORM_RIGHTS:表单权限表谢谢观看!!
本文标题:Activiti学习交流
链接地址:https://www.777doc.com/doc-1330388 .html