activiti流程开发基本步骤
activit前段生成流程
activit前段生成流程活动是activiti中的核心概念之一,它在工作流引擎中扮演着重要的角色。
在activiti中,我们可以通过前端生成活动来定义工作流程的流转过程。
本文将详细介绍activiti前端生成活动的流程。
一、准备工作在开始前端生成活动之前,我们需要先进行一些准备工作。
首先,我们需要安装activiti的开发环境,并确保环境配置正确。
其次,我们需要了解activiti的基本概念和术语,例如流程定义、任务、网关等。
最后,我们需要明确工作流程的需求和设计,以便在前端生成活动时能够准确地进行配置和设置。
二、打开前端设计器在准备工作完成后,我们可以打开activiti的前端设计器。
前端设计器是一个可视化工具,用于生成和配置活动。
我们可以通过浏览器访问设计器的地址,进入设计器界面。
三、创建流程定义在前端设计器中,我们可以创建一个新的流程定义。
流程定义是工作流程的模板,用于定义活动的流转过程。
我们可以在设计器中选择新建流程定义的选项,并填写流程定义的基本信息,例如名称、描述等。
四、添加活动在流程定义创建完成后,我们可以开始添加活动。
活动是工作流程中的基本单元,代表了一个具体的工作步骤或任务。
我们可以在设计器中选择添加活动的选项,并根据实际需求进行配置和设置。
例如,我们可以设置活动的名称、类型、候选人等属性。
五、连接活动在添加完活动后,我们需要将它们连接起来,形成一个完整的流程。
在设计器中,我们可以通过拖拽和连接线的方式,将活动之间建立起关联关系。
连接线代表了活动之间的流转路径,我们可以设置连接线的条件和方向,以控制流程的走向。
六、配置流程属性除了添加和连接活动,我们还可以在前端设计器中配置流程的其他属性。
例如,我们可以设置流程的启动表单、任务表单、流程变量等。
这些属性的设置可以影响到工作流程的执行和控制。
七、保存并部署流程定义在前端生成活动完成后,我们需要保存并部署流程定义,以便在实际运行中能够使用。
activity流程框架
Activity流程框架的步骤和流程引言Activity流程框架是一种用于描述和管理业务流程的工具。
它可以帮助我们理清业务流程的各个环节,并确定每个环节的输入、输出、参与者和执行顺序。
本文将详细介绍Activity流程框架的步骤和流程,以确保流程清晰且实用。
什么是Activity流程框架Activity流程框架是一种基于活动(Activity)的流程描述方法。
它将业务流程分解为一系列的活动,并通过活动之间的关系来描述业务流程的执行顺序和条件。
Activity流程框架通常以图形的形式展示,其中每个活动由一个矩形框表示,活动之间的流程由箭头表示。
Activity流程框架的步骤和流程Activity流程框架的设计和实施通常包括以下步骤和流程:1. 确定业务流程的目标和范围在开始设计Activity流程框架之前,我们需要明确业务流程的目标和范围。
这包括确定业务流程的输入和输出,以及业务流程所涉及的参与者和资源。
通过明确业务流程的目标和范围,我们可以更好地理解业务需求,并为后续的流程设计做好准备。
2. 识别业务流程的活动在确定了业务流程的目标和范围之后,我们需要识别业务流程的活动。
活动是业务流程的基本单元,它代表了业务流程中的一个环节或任务。
通过识别活动,我们可以将复杂的业务流程分解为一系列的简单活动,从而更好地理解和管理业务流程。
3. 绘制Activity流程图在识别了业务流程的活动之后,我们需要将这些活动绘制成Activity流程图。
Activity流程图是Activity流程框架的主要表达方式,它通过图形的形式展示了活动之间的关系和执行顺序。
在绘制Activity流程图时,我们可以使用各种图形绘制工具,如UML工具、流程图工具等。
4. 定义活动的输入和输出每个活动都有一些输入和输出,它们是活动执行的基础和结果。
在设计Activity 流程框架时,我们需要明确每个活动的输入和输出,以确保活动之间的数据流和信息传递是清晰和准确的。
activity 运行的流程实例
activity 运行的流程实例
Activity 运行的流程实例通常包括以下几个步骤:
1.启动 Activity:在 Android 应用程序中,当用户点击一个按钮或者触发某个事件时,会启动一个新的 Activity。
2.创建 Activity 实例:系统会为新的 Activity 创建一个实例,并调用其 onCreate() 方法来初始化该 Activity。
3.显示 Activity:当 Activity 实例创建完成后,系统会将其显示在屏幕上。
4.处理用户输入:如果用户与 Activity 进行交互(如点击按钮、输入文本等),系统会调用相应的方法来处理用户的输入。
5.销毁 Activity:当 Activity 不再需要或者应用程序退出时,系统会销毁该 Activity 实例。
以上是一个基本的 Activity 运行流程实例,实际使用中可能会有更多的细节和复杂情况需要考虑,比如生命周期管理、Intent 传递、Activity 跳转等。
Activiti使用步骤(IDEA)
Activiti使⽤步骤(IDEA)⼀.Activiti7体系架构通过加载activiti.cfg.xml⽂件得到ProcessEngineConfiguration对象,通过ProcessEngineConfiguration对象可以得到ProcessEngine对象得到该对象后,可以通过流程引擎对象ProcessEngine来得到各种Service,每⼀种Service接⼝有每个⽤途RepositoryService activiti 的资源管理类RuntimeService activiti 的流程运⾏管理类TaskService activiti 的任务管理类HistoryService activiti 的历史管理类ManagerService activiti 的引擎管理类⼆.Activiti使⽤步骤1.流程定义使⽤Activiti Designer⼯具创建流程图新建⼀个BPMNFile流程图,可更改该流程图的ID 和每个任务环节的执⾏⼈,流程图就是⼀个xml⽂件,每⼀个流程需要⽣成⼀张流程图保存, ⾸先将.bpmn⽂件改为.xml⽂件 然后右键该xml⽂件Diagrams--->show BPMN 2.0 Designer就能⽣成⼀张流程图, 将流程图导出保存到项⽬对应⽬录即可,然后将xml改回bpmn即可2.流程部署需要将流程部署到Activiti当中,代表当前有该流程/*** 流程部署* `act_ge_bytearray` 流程定义的资源信息,包含bpmn和png流程⽂件信息* `act_re_deployment` 流程部署信息,包含流程名称,ID,Key等* `act_re_procdef` 流程定义信息*/@Testpublic void deployment() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取RepositoryService对象进⾏流程部署RepositoryService repositoryService = processEngine.getRepositoryService();//进⾏部署,将对应的流程定义⽂件⽣成到数据库当中,作为记录进⾏保存Deployment deployment = repositoryService.createDeployment().addClasspathResource("bpmn/holiday.bpmn") //加载流程⽂件.addClasspathResource("bpmn/holiday.png").name("请假流程") //设置流程名称.key("holidayKey").deploy(); //部署//输出部署信息System.out.println("流程名称:" + deployment.getName());System.out.println("流程ID:" + deployment.getId());System.out.println("流程Key:" + deployment.getKey());}3.创建流程实例流程定义相当于类流程实例相当于类的实例(对象)/*** 启动流程实例* `act_hi_actinst` 已开始和执⾏完毕的活动信息* `act_hi_identitylink` 历史参与者信息* `act_hi_procinst` 流程实例信息* `act_hi_taskinst` 历史任务实例* act_ru_execution 任务执⾏信息* act_ru_identitylink 当前任务参与者* `act_ru_task` 任务信息*/@Testpublic void startInstance() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取到RuntimeService对象RuntimeService runtimeService = processEngine.getRuntimeService();//创建流程实例ProcessInstance holiday = runtimeService.startProcessInstanceByKey("myProcess_1");//红字是流程图的key值//输出实例信息System.out.println("流程部署ID:" + holiday.getDeploymentId());System.out.println("流程实例ID:" + holiday.getId());System.out.println("活动ID:" + holiday.getActivityId());}执⾏效果:`act_hi_actinst` 已开始和执⾏完毕的活动信息`act_hi_identitylink` 历史参与者信息`act_hi_procinst` 流程实例信息`act_hi_taskinst` 历史任务实例* act_ru_execution 任务执⾏信息* act_ru_identitylink 当前任务参与者* `act_ru_task` 任务信息4.⽤户查询代办任务/*** 查看代办任务*/@Testpublic void getTask() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfigurationProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取⼀个TaskService对象TaskService taskService = processEngine.getTaskService();//查询代办业务 createTaskQuery查询任务 taskCandidateOrAssigned查询任务执⾏者 processDefinitionKey:查询流程/*** taskCandidateOrAssigned匹配规则:1.Assigned 2.配置bpmn⽂件中定义的值* taskAssignee匹配规则:1.Assigned*//*List<Task> list = taskService.createTaskQuery().taskCandidateOrAssigned("lisi").processDefinitionKey("holiday").list();*/List<Task> list = taskService.createTaskQuery().taskAssignee("zhangsan").processDefinitionKey("myProcess_1").list();//分页:List<Task> list = taskService.createTaskQuery().taskAssignee("zhangsan").processDefinitionKey("holiday").listPage(i,j);for (Task task : list) {System.out.println("任务名称:" + task.getName());System.out.println("任务执⾏⼈:" + task.getAssignee());System.out.println("任务ID:" + task.getId());System.out.println("流程实例ID:" + task.getProcessInstanceId());}}5.⽤户进⾏任务处理/*** 任务处理:当所有任务处理完毕,对应当前流程实例信息删除,但是可以在历史中查看到该信息*/@Testpublic void completeTask() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取⼀个TaskService对象TaskService taskService = processEngine.getTaskService();//任务处理plete("2505");}先查看代办任务,再调⽤ plete(); ⽅法传⼊代办ID任务就被处理掉了上⼀步zhangsan被处理掉了,没有了代办任务,再查找zhangsan的下⼀步,lisi的代办任务发现lisi有了代办任务,数据库表也更新了处理完所有流程后ru表就为空了,数据都保存到了hi历史表6.流程结束7.当业务流程结束后通过历史可以查看到已经⾛完的流程/*** 查看历史任务*/@Testpublic void getHistory() {//获取ProcessEngine对象默认配置⽂件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取HistoryService接⼝HistoryService historyService = processEngine.getHistoryService();//获取历史任务HistoricActivityInstanceQuery historicActivityInstanceQuery = historyService.createHistoricActivityInstanceQuery();//获取指定流程实例的任务historicActivityInstanceQuery.processInstanceId("2501");//获取任务列表List<HistoricActivityInstance> list = historicActivityInstanceQuery.list();for (HistoricActivityInstance ai : list) {System.out.println("任务节点ID:"+ai.getActivityId());System.out.println("任务节点名称:"+ai.getActivityName());System.out.println("流程实例ID信息:"+ai.getProcessDefinitionId());System.out.println("流程实例ID信息:"+ai.getProcessInstanceId());System.out.println("==============================");}}。
记Activiti入门使用-2流程绘制、导入及开始一个流程
记Activiti⼊门使⽤-2流程绘制、导⼊及开始⼀个流程⼀、流程绘制与导⼊百度啥的找了好多bpmn绘制⼯具,都不尽如⼈意,⼤多数都不能编辑⽹关出⼝的跳转条件,最后还是选择了activiti官⽅的那个绘图的app。
啥都好,就是线不能弯,很难受。
(后来开发的时候惊讶地发现了⽅法,虽然感觉操作不是很友好)要是有好⽤的希望⼤家能够推荐⼀下~下⾯Old Version选择,下载完成后是⼀个zip包,解压后把⾥⾯的activiti-app.war丢到tomcat下⾯启动就⾏,这边使⽤tomcat8.5.49,该war包需要java1.8。
(这边⽤idea直接起war包好像会遇到⼀系列问题,主要是contentPath会变,所以还是直接丢到tomcat下⾯吧)。
1、2、然后选择Create Process3、新建页⾯如下:Model name为流程名称(可重复)Model key为流程Key,实际调⽤中使⽤的即为该key,似乎key可以相同,但是后⾯创建的会有版本号的概念,会⾃动+14、画图就完事了,绘图规则可以⾃⾏了解bpmn5、保存后选择下载,放⼊⼯程⽬录/resources/processes下,修改后缀为bpmn,其实应该是可以直接解析bpmn20.xml⽂件的来着,具体的还在学习~启动项⽬出现:The following process definition files will be deployed: [***.bpmn]即说明流程部署成功。
⼆、如何开始⼀个流程我们以上图的流程为例,这边先提⼏个关键的service类2.1 服务接⼝1、TaskService 在流程进⾏过程中,每个节点的操作⽅法,经常⽤的⽐如:查询处于“领导审批”这个节点的任务,完成这个任务等等。
2、RuntimeService 流程相关服务,基本的功能例如:开始⼀个实例流程等等。
3、RepositoryService 流程部署相关的服务4、HistoryService 历史流程相关的服务2.2 开始流程 如上所说,开始流程我们需要⽤到RuntimeService这个类。
activiti工作流面试题
activiti工作流面试题在进行activiti工作流面试时,通常需要了解activiti的基本概念、特点以及使用方法。
本文将为您介绍一些常见的activiti工作流面试题,并提供详细的回答。
一、activiti是什么?activiti是一个轻量级的开源工作流引擎。
它基于BPMN 2.0标准,提供了一系列的API和工具,用于管理和执行业务流程。
activiti可以帮助企业建立起灵活、可靠的工作流系统,提高业务流程的可视化管理和执行效率。
二、activiti的主要特点有哪些?1. 灵活性:activiti允许用户创建和管理复杂的业务流程,灵活地进行流程设计和调整。
2. 可扩展性:activiti提供了丰富的扩展点和插件机制,用户可以根据自身需求进行二次开发和定制。
3. 可靠性:activiti具有高可靠性和稳定性,可以处理大量并发的工作流任务,并提供事务支持,确保数据的一致性。
4. 可视化:activiti的工作流图像化设计和展示功能,使用户可以直观地了解和管理整个工作流程。
5. 高性能:activiti采用了高效的流程引擎和优化策略,能够快速响应并处理各类工作流任务。
三、activiti的核心组件有哪些?1. 流程引擎(Process Engine):负责流程的创建、管理和执行,是activiti的核心组件。
2. 任务(Task):流程中的具体执行单元,需要执行者按照预定的步骤进行处理。
3. 执行(Execution):流程引擎在执行流程时,会生成一系列的执行实例,用于控制和管理流程的整个执行过程。
4. 流程定义(Process Definition):流程的模板,定义了流程中各个步骤和任务的执行顺序和规则。
5. 任务节点(Task Node):流程图中的任务节点,表示流程中的一个具体任务。
6. 网关(Gateway):决定流程在不同任务节点之间的分支和合并路径,可以控制流程的走向。
四、activiti的工作流程是什么样的?activiti的工作流程可以分为以下几个步骤:1. 流程定义:首先,需要定义一个流程,包括流程名称、各个任务节点、任务之间的顺序和规则等。
activiti工作流基础方法
activiti工作流基础方法
Activiti是一个基于Java的工作流引擎,它提供了一套丰富的API来支持工作流的定义、部署、运行和管理。
以下是Activiti工作流的一些基础方法:
1. 部署流程定义:使用Deployment API可以将BPMN 流程定义文件部署到Activiti引擎中。
部署完成后,可以获取到流程定义的ID,并使用该ID 进行流程实例的创建。
2. 创建流程实例:使用ProcessInstance API可以创建一个新的流程实例。
在创建流程实例时,需要指定流程定义的ID、流程的起始节点ID以及其他相关参数。
3. 启动流程实例:一旦流程实例创建成功,可以使用Start API启动流程实例。
启动后,流程将按照定义的流程逻辑开始执行。
4. 执行任务:在流程执行过程中,会涉及到多个任务节点的处理。
使用Task API可以获取当前任务节点的相关信息,并进行任务的处理。
5. 完成任务:完成任务节点后,需要使用Task API将任务状态更新为已完成。
同时,根据流程定义中的规则,可能会自动创建新的任务节点或者触发其他事件。
6. 查询流程实例:使用ProcessInstance API可以查询指定ID的流程实例的状态信息,包括当前节点、历史记录等。
7. 查询任务:使用Task API可以查询指定ID的任务节点信息,包括任务状态、处理人等。
8. 删除流程实例:当流程实例执行完毕或者需要终止流程时,可以使用Delete API删除流程实例。
以上是Activiti工作流的一些基础方法,它们提供了对流程定义、部署、执行和管理的全面支持,可以帮助您轻松实现工作流的自动化和管理。
activiti工作流使用一般步骤
activiti⼯作流使⽤⼀般步骤activiti⼯作流使⽤的⼀般步骤⼀、在eclipse或Myeclipse中安装activiti插件;⼆、通过activiti连接数据库,有以下两种连接数据库的形式:1.通过java代码链接数据库:public void createTableByOracle(){ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();configuration.setJdbcUrl("jdbc:oracle:thin:@192.168.1.150:1521:orcl");configuration.setJdbcDriver("oracle.jdbc.OracleDriver");configuration.setJdbcUsername("scott");configuration.setJdbcPassword("oracle");configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);ProcessEngine processEngine = configuration.buildProcessEngine();System.out.println("-------------------------------------");System.out.println(processEngine);}2.通过配置⽂件配置链接数据库(1)配置⽂件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context" xmlns:tx="/schema/tx"xmlns:jee="/schema/jee" xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-3.0.xsd/schema/context /schema/context/spring-context-3.0.xsd/schema/tx /schema/tx/spring-tx-3.0.xsd/schema/jee /schema/jee/spring-jee-3.0.xsd/schema/aop /schema/aop/spring-aop-3.0.xsd"><bean id="dataSource"class="org.springframework.jdbc.datasource.SimpleDriverDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://192.168.1.150:3306/officemanage?characterEncoding=utf8" /><property name="username" value="root" /><property name="password" value="123456" /></bean><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"><property name="dataSource" ref="dataSource" /><property name="transactionManager" ref="transactionManager" /><property name="databaseSchemaUpdate" value="true" /></bean></beans>(2)java代码读取配置⽂件链接数据库:public void createTableByXML(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();}三、创建⼯作流的bpmn类型的⽂件:四、部署bpmn和png类型的⼯作流⽂件资源:(注意:⼀个⼯作流程部署⼀次即可,以后只需要启动⼀条流程即可)public void deployTest(){System.out.println("开始部署⼀个审批流程");ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();Deployment deployment = processEngine.getRepositoryService().createDeployment().name("路费报销审批流程").addClasspathResource("choiceProcess.bpmn").addClasspathResource("choiceProcess.png").deploy(); System.out.println("部署流程完毕");}五、启动⼀条流程:public void StartProcess(){System.out.println("开始启动⼀个审批流程");ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey("luFeiBaoXiaoShenPi");System.out.println(processInstance.getId()+"--------"+processInstance.getActivityId());System.out.println("启动流程完毕");}六、查看某个⼈要完成的任务列表:public void queryProcess(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();String assignee0 = "lsy";List<Task> zhangSanList = processEngine.getTaskService().createTaskQuery().taskAssignee(assignee0).orderByTaskCreateTime().asc().list();System.out.println("****************"+assignee0+"个⼈任务列表***********************");for (Task task : zhangSanList) {System.out.println("id:"+task.getId()+",名称:"+task.getName()+",创建时间"+task.getCreateTime()+",⼈物:"+task.getAssignee());}}七、某个⼈完成⾃⼰的某个任务:1.不带变量:public void completeTask(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();processEngine.getTaskService().complete("235009");System.out.println("完成任务");}2.带变量:public void completeTaskByVariables(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();Map<String, Object> variables = new HashMap<String,Object>();variables.put("money", 501);processEngine.getTaskService().complete("265004",variables);System.out.println("完成任务");}⼋、某个⼈查看⾃⼰已完成的任务列表:public void queryHistoryTask(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();List<HistoricTaskInstance> historicList = processEngine.getHistoryService().createHistoricTaskInstanceQuery().taskAssignee("lsy").list();for (HistoricTaskInstance historicTaskInstance : historicList) {System.out.println(historicTaskInstance.getId()+":"+historicTaskInstance.getProcessDefinitionId()+":"+historicTaskInstance.getAssignee()+":"+historicTaskInstance.getExecutionId()+":"+historicTaskInstance.getStartTime()+":"+historicTaskIns }}。
Activiti工作流学习(二)流程实例、执行对象、任务
Activiti⼯作流学习(⼆)流程实例、执⾏对象、任务⼀.前⾔前⾯说明了基本的流程部署、定义,启动流程实例等基本操作,下⾯我们继续来学习流程实例、执⾏对象、任务。
⼆.流程实例、执⾏对象说明整个Activiti的⽣命周期经过了如下的⼏个步骤: 1.流程部署 ---> 2.启动流程实例 --- > 3.执⾏流程对象(⼀个流程实例包含多执⾏对象) ---> 4.完成整个流程说明:三.例⼦演⽰1.完成我的任务2.查询流程状态(判断流程正在执⾏,还是结束)3.查询历史任务4.流程实例、执⾏对象、任务四.对应数据库表------------------------------------------流程实例、执⾏对象、任务--------------------------------------------------正在执⾏的执⾏对象表-- 执⾏ID_ 56 流程实例ID_ 56 流程定义ID_ _3701622B-4133-7B3D-F50F-E14B4F21E847:1:55 正在运⾏的任务定义ID_ 【可变】 USERTASKE736BEF8-4133-7B3D-F510-7B2DE7BEA8C6SELECT T.*, T.ROWID FROM ACT_RU_EXECUTION T;--流程实例历史表开始信息--历史流程定义ID_ 56 流程S实例ID_ 56 业务KEY_10000001 流程定义ID_ _3701622B-4133-7B3D-F50F-E14B4F21E847:1:55 开始任务节点ID_ STARTEVENT52B3145F-C133-7B3D-F50F-E6D48BA60EAESELECT T.*, T.ROWID FROM ACT_HI_PROCINST T;--正在执⾏的任务对象表--任务ID_ 68 执⾏ID_ 56 流程实例ID_ 56 流程定义ID_ _3701622B-4133-7B3D-F50F-E14B4F21E847:1:55 任务节点ID_ USERTASKE736BEF8-4133-7B3D-F510-7B2DE7BEA8C6SELECT T.*, T.ROWID FROM ACT_RU_TASK T;--历史任务流程实例信息--历史任务ID_ 68 流程实例ID_ 56 执⾏实例ID_ 56 流程定义ID_ _3701622B-4133-7B3D-F50F-E14B4F21E847:1:55 任务节点ID_ USERTASKE736BEF8-4133-7B3D-F510-7B2DE7BEA8C6 表单KEY_ /PAGES/HOLIDAY/HOLIDAYMANAGE/H --历史任务ID_ 74 流程实例ID_ 56 执⾏实例ID_ 56 流程定义ID_ _3701622B-4133-7B3D-F50F-E14B4F21E847:1:55 任务节点ID_ USERTASK04A84BE1-1133-7B3D-F511-1D0B7BB0A668 表单KEY_ /PAGES/HOLIDAY/HOLIDAYMANAGE/HO SELECT T.*, T.ROWID FROM ACT_HI_TASKINST T;--所有活动节点历史任务表--历史任务ID_58 流程定义ID_ _3701622B-4133-7B3D-F50F-E14B4F21E847:1:55 流程实例ID_ 56 流程执⾏ID_ 56 任务节点ID_ STARTEVENT52B3145F-C133-7B3D-F50F-E6D48BA60EAE--历史任务ID_67 流程定义ID_ _3701622B-4133-7B3D-F50F-E14B4F21E847:1:55 流程实例ID_ 56 流程执⾏ID_ 56 任务节点ID_ USERTASKE736BEF8-4133-7B3D-F510-7B2DE7BEA8C6 任务ID_ 68--历史任务ID_73 流程定义ID_ _3701622B-4133-7B3D-F50F-E14B4F21E847:1:55 流程实例ID_ 56 流程执⾏ID_ 56 任务节点ID_ USERTASK04A84BE1-1133-7B3D-F511-1D0B7BB0A668 任务ID_ 74SELECT T.*, T.ROWID FROM ACT_HI_ACTINST T;五.流程变量模拟设置获取流程变量的场景设置流程变量获取流程变量流程变量对应数据库表----------------------------------------流程变量信息----------------------------------------------------正在执⾏的流程变量信息SELECT T.*, T.ROWID FROM ACT_RU_VARIABLE T;--历史流程变量信息存放历史表单重要信息--流程实例ID_ 56 执⾏实例ID_ 56 任务ID_SELECT T.*, T.ROWID FROM ACT_HI_VARINST T;历史意见信息、节点参与者信息(任务办理⼈)-------------------------------------------历史意见信息-------------------------------------------------历史审批意见表--任务ID_ 68 流程定义ID_ 56SELECT T.*, T.ROWID FROM ACT_HI_COMMENT T;-----------------------------------------节点参与者信息(任务办理⼈)---------------------------------------------------任务办理⼈表(个⼈任务、组任务)SELECT T.*, T.ROWID FROM ACT_RU_IDENTITYLINK T;--历史任务办理⼈表(个⼈任务、组任务)SELECT T.*, T.ROWID FROM ACT_HI_IDENTITYLINK T;。
activiti json创建流程
activiti json创建流程Activiti是一个流程引擎,可以帮助开发人员轻松地创建和管理业务流程。
在Activiti中,可以使用JSON格式来创建流程定义,方便快捷地描述流程的步骤和变量。
创建流程的第一步是定义流程模型。
通过使用Activiti提供的JSON格式,我们可以定义流程的基本信息,包括流程名称、ID、版本等。
同时,可以定义流程的输入和输出参数,以及流程中的各个任务和分支条件。
在JSON文件中,可以使用节点来表示流程的各个步骤。
节点可以是开始节点、任务节点、网关节点或结束节点。
开始节点用于流程的起始位置,任务节点代表需要执行的任务,网关节点可以根据一定的条件选择不同的路径,而结束节点标志着流程的结束。
每个节点都可以定义一些属性,例如节点的ID、类型、名称等。
还可以定义节点之间的连接关系,通过设置连接线的来源节点和目标节点来描述流程的顺序和流转规则。
在定义任务节点时,可以指定任务的执行人或候选人。
执行人是具体执行任务的人员,候选人是可以执行任务的人员列表。
使用JSON的方式可以轻松地设置任务的执行人和候选人,并对其进行灵活的调整和扩展。
通过使用JSON创建流程,我们可以更加灵活地定义和修改流程。
JSON格式简洁明了,易于理解和维护。
同时,使用Activiti的流程引擎可以实现流程的自动化执行和监控,提高工作效率和管理水平。
使用JSON创建流程是一种简单而灵活的方式,可以帮助我们快速构建和管理业务流程。
通过结合Activiti的流程引擎,我们能够更好地实现流程的自动化执行和监控,提升业务处理的效率和质量。
activiti6 开发流程
activiti6 开发流程Activiti6是一款流程引擎,它能够帮助开发人员快速构建和管理各种业务流程。
本文将介绍Activiti6的开发流程,帮助读者了解如何使用Activiti6进行流程开发。
一、Activiti6简介Activiti6是一款轻量级的开源流程引擎,它是基于Java语言开发的,并且完全符合BPMN 2.0规范。
Activiti6提供了一系列的API和工具,可以帮助开发人员快速构建和管理各种业务流程。
同时,Activiti6还提供了丰富的扩展机制,可以满足不同场景下的需求。
二、Activiti6开发流程1. 环境搭建在开始使用Activiti6进行流程开发之前,我们需要先搭建好开发环境。
首先,我们需要安装Java Development Kit(JDK)和Eclipse IDE。
然后,下载Activiti6的安装包,并将其导入到Eclipse中。
2. 创建流程定义文件在Activiti6中,我们使用BPMN 2.0规范来描述流程。
因此,我们首先需要创建一个流程定义文件,用于描述流程的各个节点和流程之间的关系。
在Eclipse中,我们可以使用Activiti Designer插件来创建流程定义文件。
3. 设计流程图在创建流程定义文件之后,我们可以使用Activiti Designer来设计流程图。
在设计流程图时,我们可以添加各种节点和连线,来描述流程的具体执行过程。
同时,我们还可以为每个节点添加相应的属性,来定义节点的行为。
4. 配置流程执行环境在设计流程图之后,我们需要配置流程的执行环境。
在Activiti6中,流程的执行环境由一系列的配置文件组成,包括数据库配置、引擎配置等。
我们需要根据项目的需求,来配置相应的参数。
5. 编写流程代码在配置流程执行环境之后,我们可以开始编写流程代码了。
在Activiti6中,我们可以使用Java或者JavaScript来编写流程代码。
流程代码主要包括各个节点的执行逻辑、任务的分配和处理等。
Activiti工作流入门详解完整教程
Activiti入门教程详解完整教程1.Activiti介绍Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。
Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。
1.1工作流引擎ProcessEngine对象,这是Activiti工作的核心。
负责生成流程运行时的各种实例及数据,监控和管理流程的运行。
1.2BPMN业务流程建模与标注(Business Process Model and Notation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)2.准备环境2.1Activiti软件环境1) JDK1.6或者更高版本2)支持的数据库有:h2,mysql,oracle,mysql,db2等3)支持Activiti运行的jar包,可以通过maven依赖引入4)开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本2.2安装流程设计器(eclipse插件)1)打开Help →Install New Software →Add输入 Name: Activiti DesignerLocation: /designer/update/输入完成后,单击OK按钮等待下载完成后安装。
安装完成后在菜单选项中会出现Activiti的目录选项2.3 设置eclipse activit插件的画流程图选项打开菜单Windows --> Preferences --> Activiti -->Save 下流程图片的生成方式勾选上Create process definition image when saving the diagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。
idea中activiti bpmn visualizer
Activiti BPMN Visualizer 是一个在 IntelliJ IDEA 中使用的插件,用于创建和编辑 BPMN 流程图。
以下是使用 Activiti BPMN Visualizer 的基本步骤:
1. 创建保存 BPMN 文件的目录:在 IntelliJ IDEA 中,使用插件 Activiti BPMN visualizer 创建一个新的流程图。
这个流程图应该保存在 "resources\activiti" 包下。
2. 创建 BPMN 文件:在新的 "activiti" 包上右键,选择"New" -> "Activiti",然后填写文件名称后回车即可创建完成。
3. 编写具体流程:在创建好的文件中任意位置右键,选择"View BPMN Diagram",打开可视化界面(流程定义的界面)。
然后打开可视化编辑器,右键"start events" -> "start event" 来画一个开始事件。
在绘图界面右键,打开对应的菜单,选择后绘制,选择当前节点,在下方出现对应的属性,根据需要可以配置。
4. 生成图片文件:在流程图中点击右键生成图片。
5. 部署测试:流程图画完之后就可以部署到数据库了。
数据库表自动更新。
请注意,以上步骤可能会因为不同版本的Activiti BPMN Visualizer 或 IntelliJ IDEA 而有所不同。
如果遇到问题,建议查阅 Activiti BPMN Visualizer 的官方文档或寻求专业
人士的帮助。
activiti工作流程介绍
1、activiti工作流简介
Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项 目的正式启动,其首席架构师由业务流程管理BPM的专家 Tom Baeyens 担任。 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始 构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组 (OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实 现。 创始人Tom Baeyens是JBoss jBPM的项目架构师,以及另一位架构师 Joram Barrez,一起加入到创建Alfresco这项首次实现Apache开源许可 的BPMN 2.0引擎开发中来。 Activiti是一个独立运作和经营的开源项目品牌,并将独立于Alfresco开 源ECM系统运行。 Activiti将是一种轻量级,可嵌入的BPM引擎,而且 还设计适用于可扩展的云架构。 Activiti将提供宽松的Apache许可2.0, 以便这个项目可以广泛被使用,同时促进Activiti BPM引擎和的BPMN 2.0的匹配,该项目现正由OMG通过标准审定。 加入Alfresco Activiti项 目的是VMware的SpringSource分支,Alfresco的计划把该项目提交给 Apache基础架构,希望吸引更多方面的 BPM专家和促进BPM的创新。
3、一个简单的流程实例
基于activiti本身的api
然后通过processEngine获得activiti各项服务
3、一个简单的流程实例
(3)、发布一个流程(最直接的方法) 同时删除一个流程过程如下
(4)、获得所有流程定义
这将会获得所有已发布的流程实例信息,如key、id、名称等。 (5)、启动一个流程实例 通过流程定义的id启动
activiti 7 代码构建流程
activiti 7 代码构建流程
Activiti是一个基于Java的开源工作流引擎,可以用于构建业务流程。
下面是使用Activiti 7构建流程的基本步骤:
1. 定义BPMN模型
使用BPMN 标准定义流程的流程图,可以使用Activiti Designer工具或手动编写XML文件。
在BPMN模型中,可以使用各种任务、事件和序列流来定义流程的逻辑。
2. 部署BPMN模型
将定义的BPMN模型部署到Activiti引擎中,可以使用Activiti API或Activiti REST API进行部署。
在部署时,可以将BPMN模型转换为Java类,以便在流程执行时使用。
3. 启动流程实例
使用Activiti API或Activiti REST API启动流程实例。
在启动时,需要指定流程定义的key或ID以及流程实例的名称。
4. 执行流程实例
在流程实例启动后,Activiti引擎将按照BPMN模型定义的逻辑执行任务和事件。
可以使用Activiti API或Activiti REST API来查询流程实例的状态、完成任务或触发事件。
5. 结束流程实例
当流程实例执行完毕或达到结束条件时,可以结束流程实例。
在结束时,需要指定流程实例的ID或key。
以上是使用Activiti 7构建流程的基本步骤,具体实现方式可以根据实际需求进行调整和扩展。
Activiti工作流入门详解完整教程_New
Activiti工作流入门详解完整教程_NewActiviti工作流入门详解完整教程Activiti入门教程详解完整教程1.Activiti介绍Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。
Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。
1.1工作流引擎ProcessEngine对象,这是Activiti工作的核心。
负责生成流程运行时的各种实例及数据,监控和管理流程的运行。
1.2BPMN业务流程建模与标注(Business Process Model and Notation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)2.准备环境2.1Activiti软件环境1)JDK1.6或者更高版本2)支持的数据库有:h2,mysql,oracle,mysql,db2等3)支持Activiti运行的jar包,可以通过maven依赖引入4)开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本2.2安装流程设计器(eclipse插件)1)打开Help →Install New Software →Add 输入 Name: Activiti DesignerLocation:/designer/update/输入完成后,单击OK按钮等待下载完成后安装。
安装完成后在菜单选项中会出现Activiti的目录选项2.3 设置eclipse activit插件的画流程图选项打开菜单Windows --> Preferences --> Activiti -->Save 下流程图片的生成方式勾选上Create process definition image when saving the diagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。
activiti工作流使用手册
活动活动(Activiti)是一个用于管理业务流程和工作流的轻量级、灵活的开源工作流和业务流程管理评台。
它是一个基于Java的评台,可以集成到企业的应用中,通过图形化设计器快速地定义和管理工作流程,提高工作效率,减少人工操作,降低错误率。
本文将介绍Activiti 的基本概念和使用方法,帮助读者快速上手、灵活应用。
一、Activiti简介1. Activiti的定义活动活动(Activiti)是一个开源的工作流引擎,用于管理业务流程和工作流。
它提供了BPMN 2.0(Business Process Model and Notation)标准的实现,使用户可以通过图形化设计器定义和管理工作流程,将流程的定义和执行分离开来,实现业务流程的自动化管理。
2. Activiti的特点- 轻量级:Activiti是一个轻量级的工作流引擎,简化了工作流引擎的复杂性,提高了工作流的执行效率。
- 灵活性:Activiti支持灵活的流程定义和执行,可以根据实际业务需求进行定制化。
- 高性能:Activiti具有高性能的特点,可以处理大规模的业务流程,满足企业的需求。
- 易集成:Activiti可以集成到企业应用系统中,与其他系统进行无缝对接,提高企业的整体业务处理效率。
二、Activiti的安装和配置1. 环境准备在安装Activiti之前,需要准备好Java开发环境,确保系统中已安装了JDK,并设置了JAVA_HOME环境变量。
2. 下载和安装Activiti- 下载Activiti的安装包,可以从冠方全球信息站或开源社区获取最新版本的Activiti安装包。
- 解压安装包,将Activiti的文件解压到指定的目录,如D:/activiti。
3. 配置Activiti- 设置数据库:Activiti需要使用数据库存储流程定义、执行数据等信息,需要配置数据库连接信息。
- 配置日志:根据需要配置Activiti的日志输出级别和输出路径。
activiti工作流使用手册
activiti工作流使用手册一、简介activiti是一个轻量级的Java开源工作流引擎,广泛应用于各类企业应用系统中。
本手册旨在为用户提供一份全面的activiti工作流使用指南,帮助用户快速上手并灵活应用activiti工作流。
二、安装与配置1. 下载activitiactiviti官网提供最新的稳定版本下载,在官网下载页面选择合适的版本,并解压到指定目录。
2. 导入activiti库在项目中导入activiti库,可以使用Maven或其他依赖管理工具,或者手动导入activiti相关的jar包。
3. 配置数据库activiti使用数据库来存储工作流相关的数据,需要配置数据库连接信息。
在项目的配置文件中,根据使用的数据库类型,配置相应的数据源。
4. 配置activiti核心引擎在项目的配置文件中,配置activiti核心引擎。
可以配置引擎的缓存设置、任务执行器等参数,以满足具体业务需求。
三、工作流定义1. 设计流程图使用activiti提供的流程图设计器,或者其他工具设计流程图。
流程图应包含各个环节、任务和流程流转条件。
2. 定义流程根据设计好的流程图,使用activiti提供的API编写Java代码来定义流程。
流程定义包括流程的启动、流程实例的创建、任务分配等。
四、工作流执行1. 启动流程使用activiti提供的API,启动流程实例。
根据流程定义的启动条件,可以设置流程实例的变量、业务参数等。
2. 处理任务根据流程的执行情况,系统将生成一系列待处理的任务。
使用activiti提供的API,查询并处理这些任务。
任务的处理包括任务的审批、任务的分派、任务的执行等。
3. 流程流转处理任务后,根据任务处理结果,流程会自动流转到下一个环节,或者根据设置的流转条件,执行流程中的分支和合并。
5. 监控流程在流程的执行过程中,可以使用activiti提供的监控工具,实时查看流程的执行情况,包括流程实例的状态、任务的处理情况、历史记录等。
三、activiti工作流-流程设计工具
找到右侧sequenceFlow将上面流程用线连起来 ctrl+s保存,会自动生成一张配,png文件 可以下properties里设置整个流程的id(机数据库表中的key),name
选中第二个节点,可以自由设置委派人,就是由谁处理改节点
完成上述动作,基本的流程设计已经完成
请求出错错误代码503请尝试刷新页面重试
三、 activiti工作流 -流程设计工具
首先在diagrams下面新建一个文件夹 然后在这个文件夹下new一个Activiti Diagram
new好后出现bpmn文件, 可以通过右键以xml方式打开bpmn文件查看源码
双击打开文件然后进行流程设计,点击右侧开始节点,结束节点,用户节点,然后用线连起来
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
activiti流程开发指南•一、BPMN•二、activiti主要接口•三、如何实现一个业务流程•四、如何管理所有流程与实例•五、开发流程•六、api一、BPMN1. 什么是BPMN首先BPMN规范是由标准组织BPMI发布的.BPMN 1.0规范发布于2004年5月。
此规范展示了BPMI组织两年多的努力成果。
BPMN的主要目标就是要提供被所有业务用户理解的一套标记语言,包括业务分析者、软件开发者以及业务管理者与监察者。
BPMN还将支持生成可执行的BPEL4WS语言。
所以,BPMN在业务流程设计与流程实现之间搭建了一条标准化的桥梁。
BPMN定义了业务流程图,其基于流程图技术,同时为创建业务流程操作的图形化模型进行了裁减。
业务流程的模型就是图形化对象的网图,包括活动(也可以说工作)和定义操作顺序的流控制。
2. BPMN基础业务流程图由一系列的图形化元素组成。
这些元素简化了模型的开发,且业务分析者看上去非常熟悉。
这些元素每个都有各自的特性,且与大多数的建模器类似。
比如,活动是矩形,条件是菱形。
应该强调的是:开发BPMN的动力就是为了在创建业务流程模型时提供一个简单的机制,同时又能够处理来自业务流程的复杂性。
要处理这两个矛盾的需求的方法就是将标记的图形化方面组织分类为特定的类别。
这里提供标记类别中的一小部分,以便业务流程图的读者可以简单地识别出元素的基本类型从而理解图形。
以下是四种基本的类型:1)流对象2)连接对象3)泳道4)人工信息BPMN2.0概要:/workclass/201206272.asp二、activiti主要接口ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();RuntimeService runtimeService = processEngine.getRuntimeService();RepositoryService repositoryService = processEngine.getRepositoryService();TaskService taskService = processEngine.getTaskService();ManagementService managementService = processEngine.getManagementService();IdentityService identityService = processEngine.getIdentityService();HistoryService historyService = processEngine.getHistoryService();FormService formService = processEngine.getFormService();ProcessEngines.getDefaultProcessEngine()会在第一次调用时初始化并创建一个流程引擎,以后再调用就会返回相同的流程引擎。
使用对应的方法可以创建和关闭所有流程引擎:ProcessEngines.init()和ProcessEngines.destroy()。
ProcessEngines会扫描所有activiti.cfg.xml和activiti-context.xml文件。
对于activiti.cfg.xml文件,流程引擎会使用Activiti的经典方式构建:ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream (inputStream).buildProcessEngine(). 对于activiti-context.xml文件,流程引擎会使用Spring方法构建:先创建一个Spring的环境,然后通过环境获得流程引擎。
所有服务都是无状态的。
这意味着可以在多节点集群环境下运行Activiti,每个节点都指向同一个数据库,不用担心哪个机器实际执行前端的调用。
无论在哪里执行服务都没有问题RepositoryService可能是使用Activiti引擎时最先接触的服务。
它提供了管理和控制发布包和流程定义的操作。
这里不涉及太多细节,流程定义是BPMN 2.0流程的java实现。
它包含了一个流程每个环节的结构和行为。
发布包是Activiti引擎的打包单位。
一个发布包可以包含多个BPMN 2.0 xml文件和其他资源。
开发者可以自由选择把任意资源包含到发布包中。
既可以把一个单独的BPMN 2.0 xml文件放到发布包里,也可以把整个流程和相关资源都放在一起。
(比如,'hr-processes'实例可以包含hr流程相关的任何资源)。
可以通过RepositoryService来部署这种发布包。
发布一个发布包,意味着把它上传到引擎中,所有流程都会在保存进数据库之前分析解析好。
从这点来说,系统知道这个发布包的存在,发布包中包含的流程就已经可以启动了。
除此之外,服务可以•o查询引擎中的发布包和流程定义。
o暂停或激活发布包,对应全部和特定流程定义。
暂停意味着它们不能再执行任何操作了,激活是对应的反向操作。
o获得多种资源,像是包含在发布包里的文件,或引擎自动生成的流程图。
o获得流程定义的pojo版本,可以用来通过java解析流程,而不必通过xml。
正如RepositoryService负责静态信息(比如,不会改变的数据,至少是不怎么改变的),RuntimeService正好是完全相反的。
它负责启动一个流程定义的新实例。
如上所述,流程定义定义了流程各个节点的结构和行为。
流程实例就是这样一个流程定义的实例。
对每个流程定义来说,同一时间会有很多实例在执行。
RuntimeService也可以用来获取和保存流程变量。
这些数据是特定于某个流程实例的,并会被很多流程中的节点使用(比如,一个排他网关常常使用流程变量来决定选择哪条路径继续流程)。
Runtimeservice也能查询流程实例和执行。
执行对应BPMN 2.0中的'token'。
基本上执行指向流程实例当前在哪里。
最后,RuntimeService可以在流程实例等待外部触发时使用,这时可以用来继续流程实例。
流程实例可以有很多暂停状态,而服务提供了多种方法来'触发'实例,接受外部触发后,流程实例就会继续向下执行。
任务是由系统中真实人员执行的,它是Activiti这类BPMN引擎的核心功能之一。
所有与任务有关的功能都包含在TaskService中:•o查询分配给用户或组的任务o创建独立运行任务。
这些任务与流程实例无关。
o手工设置任务的执行者,或者这些用户通过何种方式与任务关联。
o认领并完成一个任务。
认领意味着一个人期望成为任务的执行者,即这个用户会完成这个任务。
完成意味着“做这个任务要求的事情”。
通常来说会有很多种处理形式。
IdentityService非常简单。
它可以管理(创建,更新,删除,查询...)群组和用户。
请注意,Activiti执行时并没有对用户进行检查。
例如,任务可以分配给任何人,但是引擎不会校验系统中是否存在这个用户。
这是Activiti引擎也可以使用外部服务,比如ldap,活动目录,等等。
FormService是一个可选服务。
即使不使用它,Activiti也可以完美运行,不会损失任何功能。
这个服务提供了启动表单和任务表单两个概念。
启动表单会在流程实例启动之前展示给用户,任务表单会在用户完成任务时展示。
Activiti支持在BPMN 2.0流程定义中设置这些表单。
这个服务以一种简单的方式将数据暴露出来。
再次重申,它时可选的,表单也不一定要嵌入到流程定义中。
HistoryService提供了Activiti引擎收集的所有历史数据。
在执行流程时,引擎会保存很多数据(根据配置),比如流程实例启动时间,任务的参与者,完成任务的时间,每个流程实例的执行路径,等等。
这个服务主要通过查询功能来获得这些数据。
ManagementService在使用Activiti的定制环境中基本上不会用到。
它可以查询数据库的表和表的元数据。
另外,它提供了查询和管理异步操作的功能。
Activiti的异步操作用途很多,比如定时器,异步操作,延迟暂停、激活,等等。
三、如何实现一个业务流程1. 静态表单(每个节点绘制对应的表单)o创建工作流实例(process_model)o创建每个节点的jsp表单一般以list页面弹出一个form表单页面就可以,至于表单的字段隐藏或者展示,由表单自己控制。
•o部署流程把process_model导出为BPMN.XML格式,再导入进行流程部署•开始流程保存业务实体leaveManager.saveLeave(entity);开始业务流程// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中identityService.setAuthenticatedUserId(entity.getUserId());//process为流程keyprocessInstance = runtimeService.startProcessInstanceByKey("process", businessKey,variables);•办理流程plete(taskId, variables);其中variables是可以传递在流程间的变量,通过Map<String, Object> variables = taskService.getVariables(taskId)可以获取那些变量。
•待办列表TaskQuery taskQuery =taskService.createTaskQuery().taskCandidateOrAssigned(userId);//自己办理或在该节点对应工作组中的流程•过程中列表ProcessInstanceQuery query =runtimeService.createProcessInstanceQuery().processDefiniti onKey("process").active().orderByProcessInstanceId().desc();List<ProcessInstance> list = query.listPage(pageParams[0], pageParams[1]);•已结束列表HistoricProcessInstanceQuery query =historyService.createHistoricProcessInstanceQuery().process DefinitionKey("process").finished().orderByProcessInstanceE ndTime().desc();List<HistoricProcessInstance> list =query.listPage(pageParams[0], pageParams[1]);四、如何管理所有流程与实例•查看所有已部署的流程repositoryService.createProcessDefinitionQuery().active().o rderByDeploymentId().desc();•查看所有待办tasks =taskService.createTaskQuery().active().orderByTaskId().desc ().list();个人待办tasks =taskService.createTaskQuery().taskCandidateOrAssigned(user.getId()).active().orderByTaskId().desc().list();•查看所有办理中ProcessInstanceQuery dynamicQuery =runtimeService.createProcessInstanceQuery().orderByProcessI nstanceId().desc().active();办理中(本人)ProcessInstanceQuery dynamicQuery =runtimeService.createProcessInstanceQuery().involvedUser(UserUtil.getUserFromSession(sessi on).getId()).orderByProcessInstanceId().desc().active();•查看所有已办HistoricProcessInstanceQuery dynamicQuery =historyService.createHistoricProcessInstanceQuery().finishe d().orderByProcessInstanceEndTime().desc();已办(本人)HistoricProcessInstanceQuery dynamicQuery =historyService.createHistoricProcessInstanceQuery().involve dUser(UserUtil.getUserFromSession(session).getId()).finishe d().orderByProcessInstanceEndTime().desc();五、开发流程1. 绘制流程图•单节点,多用户流程:必须设置下图红框属性,Multi-instance type 代表是单用户还是多用户,, Collection (Multi-instance),代表是用户的集合名称,需要在代码中设置Element variable (Multi-instance),集合中的属性,不需要设置。