`

Activiti 学习总结内容

 
阅读更多
Activiti总结内容

常用方法汇总
sequenceFlow id='test' sourceRef='' targetRef=''
serviceTask id='serviceTaskId' activiti:expression='#{beanName.method}'
自动调用beanName对应的bean的method方法
<bean id='beanName' class='com.cn.xwL.Teyst'>
这个bean还需要在ProcessEngineConfiguration中进行配置
--部署一个流程图
repositoryService.createDeploy().addClasspathResource(resourceName).deploy();
--开启一个流程
runtimeService.startProcessInstanceByKey("processId");
--获得一个流程实例也是用runtimeService
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(findTaskById(taskId).getProcessInstanceId())
.singleResult();
-- Task对象可以转化成TaskEntity
TaskEntity taskEntity = (TaskEntity) taskService.createTaskQuery().taskId(taskId).singleResult();
-- 节点ID
String activityId = taskEntity.getTaskDefinitionKey();
-- 流程定义ID
String definitionId = taskEntity.getProcessDefinitionId();
-- 取得 流程定义对象
ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService)
.getDeployedProcessDefinition(taskEntity.getProcessDefinitionId());
-- 获得所有节点定义
List<ActivityImpl> activityList = processDefinition.getActivities();
-- 根据节点ID,获取对应的活动节点
ActivityImpl activityImpl = ((ProcessDefinitionImpl) processDefinition).findActivity(activityId);
-- 获得某个节点流出的顺序流信
List<PvmTransition> pvmTransitionList = activityImpl.getOutgoingTransitions();
--获得一个任务
Task task = taskService.createTaskQuery().singleResult();
--获得表单信息
StartFormData sfd = FormService.getStartFormData(processDefinitionId) ;
TaskFormData tfd = FormService.getTaskFormData(taskId) ;
--可以获得配置好的表单地址
String formKey = tfd.getFormKey();
-- 查询taskId节点发起的任务集合
List<Task> tasks = taskService.createTaskQuery().parentTaskId(taskId)
.taskDescription("jointProcess").list();
--参数集合 并完成任务
HashMap<String, Object> variables = new HashMap<String, Object>();
taskService.complete(taskId,variables);
--查询流程实例中已经完成的任务集合 按完成时间降序排序
List<HistoricActivityInstance> historicActivityInstances = historyService
.createHistoricActivityInstanceQuery().activityType("userTask")
.processInstanceId(processInstance.getId())
.activityId(activityId).finished()
.orderByHistoricActivityInstanceEndTime().desc().list();

顺序流 sequenceFlow sourceRef targetRef

分支 排他分支 带X的菱形 不带X的菱形 都可以表示排他分支

<exclusiveGateway id='exclusive'>
<parallelGateway id='fork'> 都是有两个并行分支 分别表示拆分和合并 会签就是并行分支
<parallelGateway id='join'>

<sequenceFlow id='' sourceRef='exclusive' targetRef=''>
<conditionExpression xsi:type="tFormalExpression">${input==1}</conditionExpression> input表示从上一个节点所传的参数
</sequenceFlow>

<userTask id='' activiti:assignee="user1">  assignee是直接分配给某人 而 <userTask id=='' activiti:candidateUsers='user1,user2'> 是指定user1和user2为候选人两个都可以完成任务
activiti:candidateGroups指定任务候选组
同样可以在任务上面添加任务监听器 <activiti:taskListener event='create' class='XXX'>

public class XXX implements TaskListener{
       public void notify(DelegateTask delegateTask){
              delegateTask.setAssignee("");
              delegateTask.setCandidateUsers();
       }
}

java服务任务

serviceTask (用来调用外部类) 必须实现JavaDelegate或ActivitiBehavior类
<serviceTask id='' name='' activiti:class="xx.xx.xx.XXX" 或 activiti:delegateExpression="${beanName}">

exclusiveGateway
parallelGateway

指定人和候选人有区别  指定就是叫确定某个人

public class MyBehavior implements ActivityBehavior{
       public void execute(ActivitiExecution execution){
              String varValue = (String)execution.getVariable("var");
              PvmTransition transition = execution.getActivity().findOutgoingTransition("name");
              -- 执行某个顺序流
              execution.take(transition);
       }
}


任务监听器只能适用与用户任务(userTask) <extensionElements>的标签中
<activiti:taskListener event='' class=''>
event属性必须要有 选项有 create assignment complete


子流程的所有信息都必须在subProcess标签中实现
可以通过callActiviti标签把子流程嵌入到相应的流程当中


表单数据(FormData) 分别包括 StartFormData sfd = FormService.getStartFormData()
TaskFormData tfd = FormService.getTaskFormData(taskid);

外部表单可以通过<userTask activiti:formKey='xxxx.html' 来定义
可以通过TaskFormData.getFormKey()方法来获取

历史相关对象

HistoricProcessInstance --流程实例历史信息
HistoricActivitiInstance -- 节点实例历史信息(包括任务实例)
HistoricTaskInstance --任务实例历史信息
HistoricDetails  --流程中所使用的变量信息

历史信息配置
<bean id='processEngineConfiguration'>
<property name='history' value='audit'/>
</bean>

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    002_activiti学习总结.zip

    这个"002_activiti学习总结.zip"文件显然包含了一份关于Activiti的学习笔记,可能涵盖了从基础到进阶的各种概念。以下是对这些知识点的详细说明: 1. **流程定义(Process Definition)**:流程定义是Activiti的...

    工作流Activiti5学习总结

    【工作流Activiti5学习总结】 工作流管理系统(Workflow Management System, WfMS)是企业信息化建设中的重要组成部分,它负责协调和管理业务流程。Activiti5是一款开源的工作流引擎,由Alfresco公司开发,它基于...

    工作流Activiti的学习总结(十二) activiti官方十分钟快速学习

    在本篇博客“工作流Activiti的学习总结(十二)activiti官方十分钟快速学习”中,作者分享了关于Activiti工作流引擎的快速学习经验。Activiti是一个开源的、基于Java的企业级工作流引擎,它被广泛应用于自动化业务...

    最详解!Activiti学习文档

    Activiti学习文档 #### 概述 Activiti是一个开源的工作流引擎,用于构建业务流程自动化应用。它支持完整的业务流程管理生命周期,并且提供了丰富的API来满足不同的应用场景需求。本文档将深入探讨Activiti的核心...

    activiti流程学习总结

    ### Activiti流程学习总结 #### 一、工作流的基本概念 在深入了解Activiti之前,我们需要先理解工作流的概念。工作流是一种将业务过程部分或全部自动化的方法,它可以帮助组织提高工作效率,减少错误,并且能够更...

    activiti工作流学习总结

    ### Activiti工作流学习总结 #### 一、Activiti学习资源汇总 - **官方网站**: 提供了Activiti的最新版本信息、文档和技术支持等。地址为:[http://www.activiti.org/](http://www.activiti.org/) - **下载页面**: ...

    工作流引擎Activiti使用总结

    工作流引擎Activiti是开源的工作流引擎,这是一份简单的使用总结,希望对大家有用。

    工作流Activiti的学习总结(八)Activiti自动执行的应用

    标题中的“工作流Activiti的学习总结(八)Activiti自动执行的应用”表明本文将探讨如何在Activiti工作流引擎中实现任务的自动化执行。Activiti是一个开源的工作流和业务流程管理(BPM)系统,广泛应用于企业级应用...

    Activiti学习文档(二)之画流程图并部署流程

    总结来说,“Activiti学习文档(二)之画流程图并部署流程”会带你走过从设计到实施一个完整流程的整个过程,包括理解BPMN符号、使用工具绘制流程图、编写部署脚本,以及如何在实际环境中运行和管理流程实例。...

    activiti学习资料

    总结,这个学习资料包提供了全面了解和掌握 Activiti 的资源,包括理论知识、实践操作以及与流行开发框架的集成。无论是新手还是经验丰富的开发者,都能从中受益,提升在业务流程自动化方面的技能。

    Activiti 使用总结

    以上是对Activiti使用的一些核心知识点的总结,对于学习和使用Activiti的朋友来说,这些都是理解和应用 Activiti 必不可少的基础。通过深入理解和实践,你可以利用Activiti构建出高效、灵活的业务流程管理系统。

    activiti学习资料文档

    这个“activiti学习资料文档”可能包含详细的教程、示例代码、案例分析等内容,帮助你全面掌握Activiti的各个方面。通过深入学习,你可以成为一名熟练的Activiti开发者,有效地设计、实现和管理企业的业务流程。记得...

    工作流Activiti的学习总结(九)Activiti手工执行的应用(ReceiveTask实现方式)

    总结,Activiti中的ReceiveTask是一个等待外部事件触发的节点,它使得流程能够灵活响应外部世界的变化。通过熟练掌握ReceiveTask的使用,开发者可以构建出更加动态和响应式的业务流程。同时,深入研究源码和利用提供...

    Activiti5学习笔记

    ### Activiti5学习笔记核心知识点解析 #### 一、Activiti5概述与环境搭建 **Activiti5**是一款开源的工作流引擎,基于Java语言开发,主要用于实现业务流程管理(BPM)和工作流自动化。其核心特性包括流程建模、...

    Activiti 学习笔记六:流程执行历史记录

    总结,理解并充分利用 Activiti 的流程执行历史记录功能,是深入掌握 Activiti 并提升业务流程管理效率的重要步骤。通过查询和分析历史数据,我们可以更好地了解流程运行状态,发现问题,优化流程,并为企业的决策...

    activiti5.20.0个人学习总结

    Activiti是一个轻量级的、易用的BPM(Business Process Management,即业务流程管理)框架,它允许开发者通过使用Java类库实现工作流引擎。Activiti的目的是提供一种轻便、灵活的工具,帮助开发者构建BPM应用程序,...

    Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)

    本学习笔记主要聚焦在开始活动节点以及如何判断流程是否结束,同时涵盖了查询历史流程实例的相关内容。 一、开始活动节点(Start Event) 在 Activiti 流程图中,开始活动节点(Start Event)标志着流程的起始点。...

    Activiti 学习笔记九:并行网关(parallelGateWay)

    总结,Activiti 中的并行网关是构建复杂流程设计的重要工具,它可以提高流程执行的效率,适应多任务并行处理的需求。理解并熟练运用并行网关,能帮助我们更好地设计和优化业务流程。在实际应用中,应根据具体业务...

Global site tag (gtag.js) - Google Analytics