activiti

activiti历史任务查询

北城以北 提交于 2020-05-04 10:03:51
一 代码 /** * Copyright (C), 2020-2020, 软件公司 * FileName: TaskQuery.java * Author: cakin * Date: 2020/5/3 * Description: 查询历史任务 */ package com.syc.activiti.chapter10; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.List; import java.util.Map; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.HistoryService; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.history

activiti历史行为查询

淺唱寂寞╮ 提交于 2020-05-04 09:57:37
一 代码 /** * Copyright (C), 2020-2020, 软件公司 * FileName: ActivityQuery.java * Author: cakin * Date: 2020/5/3 * Description: 历史行为查询 */ package com.syc.activiti.chapter10; import java.util.List; import org.activiti.engine.HistoryService; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.history.HistoricActivityInstance; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; /*

35、Activiti整合规则引擎Drools

余生长醉 提交于 2020-05-03 16:32:01
喜欢关注公众号: java乐园 日常生活是由规则驱动的。红灯停绿灯行,这是我们的交通规则;我们站着往上跳,最终还是要落下来,这是地球的引力规则。规则在生活中无处不在。软件开发中我们也需要规则,满足什么规则应该进入什么分支。如果做过风控系统,就知道风控系统里存在非常多的规则(比如:age < 16 || age > 50 -> REJECT )。最便捷的实现就是用 if-else 来写,但是随着规则的增加以及需求的变动,代码将变得越来越难阅读和理解,如果再去修改这些代码,然后测试不够充分的话,将产生严重的生产事故。这时候就要引入Drools等规则引擎了。Drools就是为了解决业务代码和业务规则分离的引擎。 要使用Drools规则引擎,需要先安装安装JBoss Drools Support插件,这里就不多说怎么安装安装JBoss Drools Support插件。下载地址如下: https://download.jboss.org/drools/release/7.3.0.Final/droolsjbpm-tools-distribution-7.3.0.Final.zip 1、 新建项目sc-activiti-drools,对应的pom.xml文件如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:/

云原生范式转变:您准备好了吗?

跟風遠走 提交于 2020-04-30 13:46:51
Open Source Business Automation | Activiti 云原生范式转变:您准备好了吗? The Cloud Native Paradigm Shift: Are You Ready? https://blog.container-solutions.com/the-cloud-native-paradigm-shift-are-you-ready 云原生范式转变:您准备好了吗? 2019年4月3日由皮尼列兹尼克 - 4分钟的读出时间 在Container Solutions,当我们说我们要帮助公司将自己转变为Cloud Native实体时,我们出于特定原因使用该术语。Cloud Native是一项重大的 范式转变 ,不仅仅是将最新的新技术固定在公司多年来一直在做的事情上。 上一次真正的范式转变是敏捷,它发生于20年前,但尚未结束。很少有人真正在做纯粹的敏捷,尽管许多组织都这样认为。大多数人并不真正了解敏捷-并且绝对不练习敏捷。尽管如此,许多人至少已经适应了一些敏捷工具,因此将自己视为敏捷。 更大的担忧是人们普遍认为Cloud Native仅是敏捷的增量阶段,就像下一步一样。但这既不真实,也有潜在危险。CN不是敏捷的一些向前迭代。这是真正的范式转变。它是敏捷的替代品。 为什么这么重要?对于我们来说,这是我们在进行Cloud

Activiti的工作流选型 利弊

拈花ヽ惹草 提交于 2020-04-30 08:37:36
关于Activiti的工作流选型 - F2BPM工作流 - 博客园 https://www.cnblogs.com/f2flow/p/7147712.html F2BPM平台|Java工作流引擎|.Net工作流引擎|F2BPM快速开发平台|F2BPM快速开发平台-广州致博软件科技有限公司 http://www.f2bpm.com/ 急问 工作流的弊端有哪些?_百度知道 https://zhidao.baidu.com/question/50569318.html 大学高校如何使用工作流自动化来降低成本-产品资讯-AlphaFlow流程云 https://www.flowyun.com/htm/news/168.html 来源: oschina 链接: https://my.oschina.net/u/4393652/blog/4258824

深入分析Spring Boot2,解决 java.lang.ArrayStoreException异常

一曲冷凌霜 提交于 2020-04-29 12:53:06
将某个项目从Spring Boot1升级Spring Boot2之后出现如下报错,查了很多不同的解决方法都没有解决: Spring boot2项目启动时遇到了异常: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java: 724) ~[na:1.8 .0_65] at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java: 531) ~[na:1.8 .0_65] at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java: 355) ~[na:1.8 .0_65] at sun.reflect.annotation

java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy

隐身守侯 提交于 2020-04-29 12:52:41
将某个项目从Spring Boot1升级Spring Boot2之后出现如下报错,查了很多不同的解决方法都没有解决: Spring boot2项目启动时遇到了异常: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java: 724) ~[na:1.8 .0_65] at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java: 531) ~[na:1.8 .0_65] at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java: 355) ~[na:1.8 .0_65] at sun.reflect.annotation

【Activiti学习之一】Activiti入门

不羁岁月 提交于 2020-04-28 01:56:25
环境   JDK1.7   MySQL5.6   Tomcat7   Eclipse-Luna   activiti 6.0 一、概念 1、工作流(Workflow):是一系列相互衔接、自动进行的业务活动或任务。采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,大大提高了效率。 2、BPMN即业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)。 BPMN是BPM及workflow的建模语言标准之一。 3、Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。 二、Activiti 6.0 介绍 1、7大接口 RepositoryService:提供一系列管理流程部署和流程定义的API。 RuntimeService:在流程运行时对流程实例进行管理与控制。 TaskService:对流程任务进行管理,例如任务提醒、任务完成和创建任务等。 IdentityService:提供对流程角色数据进行管理的API,这些角色数据包括用户组、用户及它们之间的关系

activiti学习4:流程文件的部署

折月煮酒 提交于 2020-04-27 22:33:40
activiti学习4:流程文件的部署 用bpmn规范定义好一个流程得到流程定义文件后,需要把该文件部署到activiti的数据库后,这个流程才可以使用。 activiti中和流程定义相关的操作都需要使用 RepositoryService 这个服务组件来进行。 activiti中所有的服务组件都需要通过流程引擎对象来获取 一、RepositoryService服务组件 这个组件中提供了一系列管理流程定义和流程部署的api,我们可以使用这个组件中的api来部署流程 1.1 RepositoryService实例对象的获取 使用流程引擎对象的实例方法 processEngine.getRepositoryService(); 来获取RepositoryService @Test public void test1() { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService(); System.out.println(repositoryService); } 二、流程部署信息的描述,Deployment对象 在讲解如何部署流程前

Activiti 删除部署与流程实例

早过忘川 提交于 2020-04-27 21:23:28
Activiti 删除部署与流程实例介绍:    很多新手在刚接触的Activiti的时候,当想删除该流程的时候会感到头痛吧!当然包括我也一样,想删除,那么多表也不知道从哪里删除,瞎弄了好久还是无法删除完。Activiti 删除部署,就是删除上传的流程。删除流程实例,就是删除startProcessInstanceByKey()保存成功的任务。 Activiti 删除部署:   删除部署需要获取到部署Id(有多种方式):       Task task=taskService.createTaskQuery() // 创建任务查询                  .taskId(taskId) // 根据任务id查询                 .singleResult();       String processDefinitionId=task.getProcessDefinitionId(); // 获取流程定义id       /**       *  createProcessDefinitionQuery() // 创建流程定义查询       *  processDefinitionId(processDefinitionId) // 根据流程定义id查询          **/        ProcessDefinition