最近对Activiti做了一些深入的研究,对Activiti的流程机制有了些理解,对动态调整流程也有了一些实践方法. 现在好好总结一下,一来是对这段时间自己辛苦探索的一个记录,二来也是为后来者指指路~~~ 如下内容准备采用QA的方式写,很多问题都是当初自己极疑惑的问题,希望能为大家解惑! Q:可以动态调整流程吗? A:可以!可以动态更改流程指向,或者创建新的节点,等等... Q: 更改流程还需要注意什么? A: 必须要实现持久化!否则一旦应用重启,你的流程就犯糊涂了!譬如,你创建了一个新节点,但…
最近在搞openwebflow的工作流节点自由跳转功能,在网上看了一些资料,感觉不是很好,总结原因如下: 直接手动调用SqlSession的操作,感觉会漏掉一些重要的初始化操作(如:启动新节点之后加载其用户授权策略,等): 只有往前(往已执行过的节点)跳转的功能,没有往后节点(往还没有执行的节点)跳转的功能: 新任务不是追加到已有执行路径上,而是覆盖老任务: 那么就自己动手吧!操作流程其实也简单,大概如下: 按照目标节点(activity)定义创建一个新的任务(task),这个创建过程必须和正常…
后台加入工作流步骤(这个不重要,自己实现) package com.blk.integrated.pojo; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationT…
import org.activiti.engine.ProcessEngine; import org.activiti.engine.TaskService; import org.activiti.engine.impl.RepositoryServiceImpl; import org.activiti.engine.impl.RuntimeServiceImpl; import org.activiti.engine.impl.interceptor.Command; import o…
关键词:Assignee.Candidate users.Candidate groups:setAssignee.taskCandidateUser.taskCandidateGroup 主要解决问题:Activiti动态给任务节点设置办理人. 情景: 我们在做工作流开发,学习的时候一般都有这么一个过程: 第一阶段:最开始学习的时候,喜欢在设计流程的时候写死人名(即)办理人,这个阶段是入门级.而且你也会觉得这样做非常 so easy(方便.简单).可是慢慢的,你就会发现,每次需要换人,你就要重…
作者阿里云容器平台技术专家 王程阿里云容器平台技术专家 张晓宇(衷源) ## 引子 不知道大家有没有过这样的经历,当我们拥有了一套 Kubernetes 集群,然后开始部署应用的时候,我们应该给容器分配多少资源呢?很难说.由于 Kubernetes 自己的机制,我们可以理解容器的资源实质上是一个静态的配置.如果我发发现资源不足,为了分配给容器更多资源,我们需要重建 Pod.如果分配冗余的资源,那么我们的 worker node 节点似乎又部署不了多少容器.试问,我们能做到容器资源的按需分配吗?这…
1.1.1. 前言 用户故事:现在有这样一个需求,第一个需求:公司的开发环境,测试环境以及线上环境,我们使用的数据库是不一样的,我们必须能够任意的切换数据库进行测试和发布,对数据库连接字符串我们需要加密,保证我们的数据库连接不能被发现.必须确保我们的数据库不能暴露出去,第二个需求,我们需要监控activiti 工作流引擎,在流程启动的之前,我们要保证我们的所有属性都注入进去,如果有些属性没有注入进去,我们是不能让流程启动起来的.也就是进行必要饿属性检测,如果没有期望的属性,直接报错,在流程实例化…
注:环境配置:activiti自己定义流程之自己定义表单(一):环境配置 在上一节自己定义表单环境搭建好以后,我就正式開始尝试自己创建表单,在后台的处理就比較常规,主要是针对ueditor插件的功能在前端进行改动. 因为自己的前端相关技术太渣.因此好多东西都不会用,导致改动实现的过程也是破费了一番功夫.头皮发麻了好几天. 既然是用别人的插件进行改动,那么我想假设仅仅是单独的贴出我改动后的代码,可能没有前后进行对照好理解,因此这里就把原代码和改动后的同一时候对照着贴出,以便于朋友们能从对照中更快的…
大家好,这篇文章我们来介绍下动态线程池框架(DynamicTp)的adapter模块,上篇文章也大概介绍过了,该模块主要是用来适配一些第三方组件的线程池管理,让第三方组件内置的线程池也能享受到动态参数调整,监控告警这些增强功能. DynamicTp项目地址 目前500多star,感谢你的star,欢迎pr,业务之余给开源贡献一份力量 gitee地址:https://gitee.com/yanhom/dynamic-tp github地址:https://github.com/lyh200/dyn…
(转自:http://blog.sina.com.cn/s/blog_70b9730f01014sgm.html) 需求:根据某种需要,可能需要动态调整listview的页眉页脚,譬如将header作为显示板使用. 难点:listView.addHeaderView()方法必须在setAdapter()方法前调用,否则就会抛异常.至于为什么会抛异常,查看下ListView的源代码即可发现.因此,在设置HeaderView之后又想将headerView移除或者隐藏,则需要绕很大的弯子:将adapt…