activiti入门小结

因为实习会用到activiti的知识,于是学习了activiti。

 

入门步骤 -> 1.学习相关知识点 -> 2.安装eclipse插件 -> 3.敲实例代码,熟悉代码和数据库。

1.activiti是什么?

activiti是一个用于开发企业协同工作相关业务的框架,开发像下图所示工作流程的系统。

activiti包括一系列的数据库(五种,共21张数据表)和开发用的api。

数据库:

以act_ge开头的表 ---------通用数据表,存放通用信息

以act_re开头的表 --------- 仓库表,存放流程信息,部署信息等。

以act_ru开头的表 --------- 运行表,存放一个流程实例化(就是运行起来)后的相关信息,有任务表,变量表等。

以act_id开头的表 --------- 身份表,存放身份,身份组信息等。

以act_hi开头的表 -------- 历史表,存放历史信息,比如已经完成的任务,或者完成的实例化流程。

api:

RepositoryService类,RuntimeService类,TaskService类,HistoryService类,IdentityService类,ManagementService类。

2.安装eclipse插件

安装插件在网上有很多教程,但是我仍然弄了很久。在安装插件的时候要注意下面几个问题

  1. 除非翻了墙,不然不要用网络安装,最好下载插件安装。
  2. 最好用2012一下版本的myeclipse安装,我之前就因为用的2017怎么也安装不上,最后发现是2017已经安装的一个插件与activiti插件冲突。(可以试试解压activiti插件压缩包,将文件中的冲突插件删除再压缩,然后安装,如果不行就卸了安装2012版吧)

3.敲示例代码

网上发现的一个不错的博客,照着敲很快就可以弄懂Activiti进阶(一)——HelloWorld

我在敲完之后将示例代码都保存为了snippets,可以方便后续开发,忘了的时候也可以拿来看看。

snippets的代码如下

<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<snippets>
    <category filters="*" id="category_1563588489731" initial_state="0" label="Activiti" largeicon="" smallicon="">
        <description><![CDATA[Activiti工作流开发相关代码]]></description>
        <item category="category_1563588489731" id="item_1563588942171" label="activiti_HistoricProcessInstanceFind">
            <description><![CDATA[查询历史实例变量]]></description>
            <content><![CDATA[//查询历史实例
//		List<HistoricProcessInstance> list = processEngine.getHistoryService()
//				.createHistoricProcessInstanceQuery()
//				.processDefinitionId("myProcess:5:504")
//				.list();
//		
//		if(list != null && list.size() > 0){
//			for(HistoricProcessInstance hp : list){
//				System.out.println(hp.getId()+"  "+hp.getStartTime()+"  "+hp.getEndTime());
//			}
//		}]]></content>
        </item>
        <item category="category_1563588489731" id="item_1563588896546" label="activiti_addVariable">
            <description><![CDATA[添加流程变量]]></description>
            <content><![CDATA[//		//添加流程变量
//		String processInstanceId  = "1501";
//		String assignee = "张三";
//		TaskService taskService = processEngine.getTaskService();
//		
//		Task task = taskService.createTaskQuery()
//				.processInstanceId(processInstanceId)
//				.taskAssignee(assignee)
//				.singleResult();
//		
//		taskService.setVariable(task.getId(), "请假人", assignee);
//		taskService.setVariable(task.getId(), "请假天数", 3);
//		taskService.setVariable(task.getId(), "请假日期", new Date());]]></content>
        </item>
        <item category="category_1563588489731" id="item_1563588827866" label="activiti_ProcessDefinitionFind">
            <description><![CDATA[查询流程定义]]></description>
            <content><![CDATA[//查询流程定义
//		List<ProcessDefinition> list = processEngine.getRepositoryService()
//				.createProcessDefinitionQuery()
//				.processDefinitionKey("myProcess")
//				.orderByProcessDefinitionVersion().desc()
//				.list();
//		
//		if(list != null && list.size()>0){
//			for(ProcessDefinition pd:list){
//				System.out.println("流程定义的ID:"+pd.getId());
//				System.out.println("流程定义的名字:"+pd.getName());
//				System.out.println("流程定义的Key:"+pd.getKey());
//				System.out.println("流程定义的部署ID:"+pd.getDeploymentId());
//				System.out.println("流程定义的资源名称:"+pd.getResourceName());
//				System.out.println("流程定义的版本:"+pd.getVersion());
//				System.out.println("#################################################");
//			}
//		}]]></content>
        </item>
        <item category="category_1563588489731" id="item_1563588756642" label="activiti_complete">
            <description><![CDATA[activiti完成个人任务]]></description>
            <content><![CDATA[//		String taskId = "1804";
//		Map<String, Object> variables = new HashMap<String, Object>();
//		variables.put("message", "重要");
//		processEngine.getTaskService().complete(taskId, variables);
//		System.out.println("完成任务:"+taskId);]]></content>
        </item>
        <item category="category_1563588489731" id="item_1563588714298" label="activiti_task">
            <description><![CDATA[acitviti查询个人任务]]></description>
            <content><![CDATA[//		String assignee = "总经理";
//		List<Task> tasks = processEngine.getTaskService()
//				.createTaskQuery()
//				.taskAssignee(assignee)
//				.list();
//		if(tasks != null && tasks.size() > 0){
//			for(Task task:tasks){
//				System.out.println("任务ID:"+task.getId());
//				System.out.println("任务的办理人:"+task.getAssignee());
//				System.out.println("任务名称:"+task.getName());
//				System.out.println("任务的创建时间:"+task.getCreateTime());
//				System.out.println("流程实例ID"+task.getProcessInstanceId());
//				System.out.println("####################################");
//			}
//		}]]></content>
        </item>
        <item category="category_1563588489731" id="item_1563588666594" label="acitiviti_instanceInstance">
            <description><![CDATA[acitivti实例化进程]]></description>
            <content><![CDATA[//		String processDefinitionId = "myProcess:9:1705";
//		ProcessInstance pi = processEngine.getRuntimeService()
//				.startProcessInstanceById(processDefinitionId);
//		System.out.println("流程实例ID:" + pi.getId());//流程实例ID:101
//		System.out.println("流程实例ID:" + pi.getProcessInstanceId());//流程实例ID:101
//		System.out.println("流程定义ID:" + pi.getProcessDefinitionId());//MyProcess:1:4]]></content>
        </item>
        <item category="category_1563588489731" id="item_1563588614818" label="acitivit_deploy">
            <description><![CDATA[acitivit部署]]></description>
            <content><![CDATA[//		Deployment deployment = processEngine.getRepositoryService()
//				.createDeployment()
//				.addClasspathResource("diagrams/helloWorld.bpmn")
//				.addClasspathResource("diagrams/helloWorld.bmp")
//				.deploy();
//		
//		System.out.println("部署ID:" + deployment.getId());//部署ID:1
//		System.out.println("部署时间:" + deployment.getDeploymentTime());//部署时间]]></content>
        </item>
        <item category="category_1563588489731" id="category_15635884897311563588560524" label="activiti.cfg.xml" snippetProvider="org.eclipse.wst.common.snippets.ui.TextSnippetProvider">
            <description><![CDATA[activiti.cfg.xml 的配置模板]]></description>
            <content><![CDATA[<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">



  <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">



    <property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />

    <property name="jdbcDriver" value="org.h2.Driver" />

    <property name="jdbcUsername" value="sa" />

    <property name="jdbcPassword" value="" />



    <property name="databaseSchemaUpdate" value="true" />



    <property name="asyncExecutorActivate" value="false" />



    <property name="mailServerHost" value="mail.my-corp.com" />

    <property name="mailServerPort" value="5025" />

  </bean>



</beans>]]></content>
        </item>
    </category>
</snippets>

打开Snippet的View,右键点击Customize,再点import导入上述文件即可。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值