您的位置:

详解Activiti-Explorer

Activiti是一个流程引擎框架,可以轻松地在应用中集成工作流管理,使得复杂流程变得简单。Activiti-Explorer是Activiti的一个Web应用程序,提供了一种基于Web的用户界面,方便用户进行流程定义、部署、执行以及流程实例管理等操作。

一、数据源配置

在使用Activiti-Explorer之前,需要对数据源进行配置。在activiti-explorer.war/WEB-INF/classes/activiti-standalone-context.xml文件中,可以配置JNDI数据源或直接使用数据库连接信息,如下所示:

<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
	<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti_explorer?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull"/>
	<property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>
	<property name="jdbcUsername" value="root"/>
	<property name="jdbcPassword" value="123456"/>
</bean>

在配置数据源之后,启动Activiti-Explorer时就可以根据上述配置连接数据库。

二、流程定义与部署

Activiti-Explorer支持流程的定义与部署操作。在页面上,可以使用左侧的菜单“Deployment”进行部署相关操作。用户可以上传BPMN2.0格式的流程定义文件或在页面上进行流程定义。在上传或定义完成后,用户可以通过“Process Definitions”查看当前部署的流程定义信息。

<deployment name="expense reimbursement">
	<process name="expense reimbursement">
		<startEvent id="start" name="提交申请"/>
		<userTask id="audit" name="审核"/>
		<exclusiveGateway id="gateway" name="审核结果">
			<condition expression="${approved}"/>
		</exclusiveGateway>
		<userTask id="pay" name="支付"/>
		<endEvent id="end" name="完成"/>
		<sequenceFlow id="flow1" sourceRef="start" targetRef="audit"/>
		<sequenceFlow id="flow2" sourceRef="audit" targetRef="gateway"/>
		<sequenceFlow id="flow3" sourceRef="gateway" targetRef="pay">
			<conditionExpression>${approved}</conditionExpression>
		</sequenceFlow>
		<sequenceFlow id="flow4" sourceRef="gateway" targetRef="end">
			<conditionExpression>${!approved}</conditionExpression>
		</sequenceFlow>
	</process>
</deployment>

上述代码为一个BPMN2.0流程定义文件的示例,定义了Expense Reimbursement的流程。

三、流程实例管理

Activiti-Explorer可以管理流程实例的启动、暂停、恢复、删除等操作。在页面上,可以使用左侧的菜单“Process Instances”进行相关操作。用户可以查看当前流程实例执行情况,包括执行状态、执行时间、执行人等信息。

<processInstance id="1" processDefinitionId="expense_reimbursement">
	<variable name="applicant" value="张三"/>
	<variable name="amount" value="1000"/>
	<variable name="approved" value="true"/>
	<activity name="提交申请" assignee="张三" startTime="2019-12-01 10:00:00" endTime="2019-12-01 10:30:00"/>
	<activity name="审核" assignee="李四" startTime="2019-12-01 10:30:00" endTime="2019-12-01 11:00:00"/>
	<activity name="支付" assignee="王五" startTime="2019-12-01 11:00:00" endTime="2019-12-01 11:30:00"/>
	<activity name="完成" assignee=""/>
</processInstance>

上述代码为一个流程实例示例,记录了当前实例的执行情况,包括流程变量、执行活动、执行人、开始时间、结束时间等信息。

四、历史记录查询

Activiti-Explorer可以查询流程的历史记录,包括流程定义、流程实例、任务、变量等信息。用户可以使用左侧的菜单“History”进行相关查询操作。用户可以查询指定时间段内的历史记录。

<historicProcessInstance id="1" processDefinitionId="expense_reimbursement">
	<startTime>2019-12-01 10:00:00</startTime>
	<endTime>2019-12-01 11:30:00</endTime>
	<durationInMillis>5400000</durationInMillis>
	<processVariables>
		<variable name="applicant" value="张三"/>
		<variable name="amount" value="1000"/>
		<variable name="approved" value="true"/>
	</processVariables>
</historicProcessInstance>

上述代码为一个历史记录示例,记录了流程实例的开始时间、结束时间、执行时间、流程变量等信息。

五、任务管理

Activiti-Explorer可以管理任务的认领、办理、委托、转交等操作。在页面上,可以使用左侧的菜单“Task”进行相关操作。用户可以查看当前任务及任务的执行情况,包括执行状态、执行时间、执行人等信息。

<task id="1" name="审核" assignee="李四" createTime="2019-12-01 10:30:00">
	<processDefinitionId>expense_reimbursement</processDefinitionId>
	<processInstanceId>1</processInstanceId>
	<description>审核张三的报销单</description>
	<dueDate>2019-12-02 10:30:00</dueDate>
</task>

上述代码为一个任务示例,记录了当前任务的执行情况,包括任务名称、任务描述、任务执行人、任务创建时间、任务到期时间等信息。

六、用户管理

Activiti-Explorer可以管理用户的账号、角色、组等信息。在页面上,可以使用左侧的菜单“Identity”进行相关操作。用户可以添加、修改、删除用户及用户组等信息。

<user id="1" firstName="张" lastName="三" email="zs@163.com">
	<groups>
		<group id="2" name="审批组"/>
	</groups>
</user>

上述代码为一个用户示例,记录了用户的基本信息及所属用户组信息。

总结

通过本篇文章的介绍,我们了解了Activiti-Explorer的主要功能及使用方法。Activiti-Explorer提供了丰富的流程定义、部署、实例、历史、任务及用户管理等功能,使得用户能够轻松地进行工作流管理。