activiti

Activiti中彻底解决待办事项列表查询复杂、API不友好的设计方案

落爺英雄遲暮 提交于 2019-12-06 13:59:18
我们使用工作流引擎,一个非常重要的功能就是获取待办事项列表,在Activiti中,我们可以通过TaskService的相关API进行查询,这些API设计优雅,但是实际使用中往往不够方便,也缺乏灵活性,达不到技术解决方案的要求,主要有如下几个问题: 1.多数情况无法通过调用一个API满足需求,这时一个现实问题就是需要对结果集进行合并然后排序,这样就显得比较麻烦; 2.和项目业务表关联困难; 3.Activiti中相关查询返回的是Activiti定义的实体,这些实体包含的信息可能不够; 4.Activiti中的实体,可能和项目中的对象关系映射(ORM)冲突; 鉴于上述原因,在一些大规模的项目中,Activiti提供的查询API,实际使用价值不大,我们需要另外寻找解决方案。在Activiti的查询API中,也提供原始SQL的查询接口,但是大量使用后,会发现代码不够优雅,维护困难。这个问题其实从开发者角度,查询时用用户的id,用最简单的SQL查询出来所有想要的信息是最理想的。 分析上述缺点和需求后,我们认为通过API方式进行查询的话,总是有各种缺陷,因此把目标放在数据库上,如果能通过定义视图的方式解决问题,那么将彻底解决查询的方便性、灵活性、通用性问题。 经过分析Activiti的数据库表,我们发现并不复杂,和待办事项有关系的表,包括ACT_RU_TASK、ACT_RU

扩展activiti删除ACT_HI_*历史表

感情迁移 提交于 2019-12-06 12:50:56
本人博客开始迁移,博客整个架构自己搭建及编码 http://www.cookqq.com/listBlog.action activiti自带了很多表,如图: ACT_HI_*:HI 表示历史数据 (History) 表,包括过期的流程实例,过期的变量和过期的任务等。 历史表中没有创建外键,可以很好的控制历史表。 在项目中,有可能不需要保存历史记录,也就是这些 ACT_HI_* 表可以删除了。 删除 ACT_HI_*历史表,重新启动项目后报错: 严重: Error while closing command context org.activiti.engine.ActivitiException: Activiti database problem: Tables missing for component(s) history at org.activiti.engine.impl.db.DbSqlSession.dbSchemaCheckVersion(DbSqlSession.java:713) at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:1097) at org.activiti.engine.impl

业务规则校验DEMO(规则引擎Drools+工作流引擎Activiti 的实现)

做~自己de王妃 提交于 2019-12-06 12:49:59
根据业务需求,需要一些规则校验。 此篇使用规则引擎Drools结合工作流引擎Activiti来实现一个简单的规则校验。 activiti.cfg.xml配置: <property name="customPostDeployers"> <list> <bean class="org.activiti.engine.impl.rules.RulesDeployer" /> </list> </property> gradle配置: //Drools compile 'org.drools:knowledge-api:6.4.0.Final' compile 'org.drools:drools-compiler:6.4.0.Final' compile 'org.drools:drools-core:6.4.0.Final' compile 'org.mvel:mvel2:2.2.8.Final' 1.Activiti流程定义 2.创建Drools规则文件 LiumiRules.drl 3.用错误测试数据测试,校验不通过 4.用正确测试数据测试,校验通过 来源: oschina 链接: https://my.oschina.net/u/1386987/blog/740399

activiti实战读书笔记——第十章 之 调用活动与事件子流程

有些话、适合烂在心里 提交于 2019-12-06 09:10:25
1、调用活动是在一个流程中调用另一个独立的流程,这样可以到达流程的通用性的目的(被调用的流程可以在各处重复使用)。 使用callActiviti元素调用活动,属性calledElement的值定义了外部流程的流程ID,使用activiti:in标签定义输入变量。 <callActivity id="callactivity-payment" name="付款" calledElement="payment"> <extensionElements> <activiti:in source="applyUserId" target="applyUserId"></activiti:in> <activiti:in source="listing" target="usage"></activiti:in> <activiti:in source="amountMoney" target="amountMoney"></activiti:in> </extensionElements> </callActivity> 使用普通的顺序流就可以把调用活动和其他元素连接起来: <sequenceFlow id="flow24" sourceRef="contactSupplier" targetRef="callactivity-payment"></sequenceFlow>

Configure Activiti to reuse the existing user/group data in Spring Boot

£可爱£侵袭症+ 提交于 2019-12-06 08:19:46
问题 I am using Spring Boot 1.4.3.RELEASE. I have already created a simple MVC application to manage users and groups. Now, I am trying to integrate Activiti 5.21.0 within my project, and REUSE the existing user/group tables by Activiti. I have extended the default UserEntityManager and GroupEntityManager classes from Activiti like below: CustomUserEntityManager.java import java.util.List; import org.activiti.engine.impl.Page; import org.activiti.engine.impl.UserQueryImpl; import org.activiti

Specify separate datasource for Activiti in a Spring Boot app

假如想象 提交于 2019-12-06 05:57:25
How would I use two separate dataSources in my Spring Boot application? I would like one dataSource to be used by my application, to be used for persisting my models and a separate dataSource for use by the Activiti engine, so it can keep it's entities in a separate database. As of now Activiti's tables and my app's tables are created in the same database. [Edited]: I know I can define two separate DataSource beans like: @Bean public DataSource appDataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("org.hsqldb.jdbcDriver"); dataSource.setUrl("xxx");

What are the differences between open source BPM tools (such as Activiti, bonita) & Windows Workflow Foundation

久未见 提交于 2019-12-06 03:56:35
问题 I was trying to find a free and open source BPM tool which is based on asp.net, but unfortunately i fail to find such a tool. But recently I read an article about Windows Workflow Foundation, so does it provide functionality that are similar to open source BPM tools such as Activiti , bonita, Joget, etc. Or Windows Workflow Foundation can not be used to build as full business process workflow as in Activiti and other open source BPM tools. 回答1: The first thing to remember is that WF is not a

activiti6.0官网activiti-app使用教程(二)

廉价感情. 提交于 2019-12-06 02:14:35
接着上篇文字的创建自定义表单和流程,本文主要介绍怎么发布、启动和处理流程 进入kickstart app,点击Apps菜单,然后点击右上角的create App按钮,创建个自己的app 选择上篇文章中创建的流程定义,如下图所示: 别忘了点击保存 保存后,可以看到所有自己定义的app列表如下 选择刚刚创建的这个app,点击进入,然后点击右上角的publish按钮,即可将该流程进行发布 发布后,点击应用首页,可以看到刚刚自己发布的流程 接着要启动该流程了 点击上图中自己刚发布的app,可以看到如下图所示页面 然后可以看到自己发布的流程了,点击start process即可,自定义的流程就发布了 可以看到现在正在进行的任务如下: 也可以查看流程图 此时自定义的流程已经启动完毕了,接着需要分别用lily和boss两个用户登录系统,进行相应的任务处理 首先用lily用户登录,然后点击刚启动的流程 可以看到目前当前用户的任务 填写完成后,点击complete,可以看到流程走到boss用户了 用boss用户登录,可以看到如下界面 当boss用户点击审批结果和complete按钮后,此任务即结束了,一个完整的流程走完了 来源: oschina 链接: https://my.oschina.net/u/1762811/blog/2249561

Jfinal集成Spring插件

可紊 提交于 2019-12-05 22:04:21
最近公司使用Jfinal开发项目,不知道什么原因Jfinal和其他的几个插件集成的时候,事物管理并不那么随心,所以就选择了Spring作为Jfinal的插件来管理事物.废话不多说,直接上代码. public class MyConfig extends JFinalConfig{ @Override public void configConstant(Constants me) { IocKit.processJFinalConfig(this); loadPropertyFile("db.properties"); me.setEncoding("UTF-8"); me.setDevMode(getPropertyToBoolean("devMode", true)); } @Override public void configRoute(Routes me) { System.out.println("configRoute"); me.add("/blog", BlogController.class); } @Override public void configPlugin(Plugins me) { SpringPlugin springPlugin = new SpringPlugin("classpath*:spring/applicationContext-*

mysql进行activiti自动生成数据库表时出现的各种问题

扶醉桌前 提交于 2019-12-05 19:43:19
最近项目上需要用到activit,后来网上了解了下需要创建对应的23张表,是可以通过一个代码来自动生成的,但是我操作的过程中遇到了很多问题: 首先生成库的代码如下: // 使用代码创建activiti需要的23个表 @Test public void creteTable() { ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration .createStandaloneProcessEngineConfiguration(); // 连接数据库的配置 // 配置数据库驱动:对应不同数据库类型的驱动 processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver"); // 配置数据库的JDBC URL processEngineConfiguration .setJdbcUrl("jdbc:mysql://localhost:3306/activiti?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8"); // 配置连接数据库的用户名 processEngineConfiguration.setJdbcUsername(