扩展Activiti 5.12轻松搞定流程实例跟随流程版本一起升级

简介: 扩展Activiti 5.12轻松搞定流程实例跟随流程版本一起升级,本文详细介绍之 本功能依托于bboss 3.6.2分支和Activiti 5.12.0版本。 为activiti组件org.
扩展Activiti 5.12轻松搞定流程实例跟随流程版本一起升级,本文详细介绍之
本功能依托于 bboss 3.6.2分支和 Activiti 5.12.0版本。

为activiti组件org.activiti.engine.repository.DeploymentBuilder增加以下接口方法:
Deployment deploy(int deploypolicy);
参数deploypolicy为int类型,用来指定流程部署策略,有三个值:
DeploymentBuilder.Deploy_policy_default
DeploymentBuilder.Deploy_policy_upgrade
DeploymentBuilder.Deploy_policy_delete
这三个值作为常量定义在部署接口org.activiti.engine.repository.DeploymentBuilder中。他们的含义分别为:
DeploymentBuilder.Deploy_policy_default 没有执行完毕的旧版本实例任务仍然根据旧版本流程定义运行
DeploymentBuilder.Deploy_policy_upgrade 没有执行完毕的旧版本实例任务迁移到新版本流程定义运行
DeploymentBuilder.Deploy_policy_delete 直接取消没有执行完毕的旧版本实例任务

原来的部署接口方法任然保留:
Deployment deploy();

以下是两个简单的使用扩展接口部署流程示例:
public Deployment deployProcDefByZip(String deploymentName,
			ZipInputStream processDef,int upgradepolicy) {
		DeploymentBuilder deploymentBuilder = processEngine
				.getRepositoryService().createDeployment().name(deploymentName);
		deploymentBuilder.addZipInputStream(processDef);		
		/**
		 * 参数upgradepolicy可以为以下常量值:
		 *  DeploymentBuilder.Deploy_policy_default 
	 	 *	DeploymentBuilder.Deploy_policy_upgrade 
	     *  DeploymentBuilder.Deploy_policy_delete 
	     *
		 */			
		return deploymentBuilder.deploy(upgradepolicy);
	}


public Deployment deployProcDefByPath(String deploymentName,
			String xmlPath, String jpgPath,int deploypolicy) {
		Deployment deploy = null;
		/**
		 * 参数deploypolicy可以为以下常量值:
		 *  DeploymentBuilder.Deploy_policy_default 
	 	 *	DeploymentBuilder.Deploy_policy_upgrade 
	     *  DeploymentBuilder.Deploy_policy_delete 
	     *
		 */
		if(jpgPath != null && !jpgPath.equals(""))
		{
			deploy = repositoryService.createDeployment()
					.name(deploymentName).addClasspathResource(xmlPath)
			.addClasspathResource(jpgPath).deploy(deploypolicy);
		}
		else
		{
			deploy = repositoryService.createDeployment()
				.name(deploymentName).addClasspathResource(xmlPath).deploy(deploypolicy);
		}

		return deploy;
	}
目录
相关文章
18activiti - 流程管理定义(删除key相同的所有不同版本的流程定义)
18activiti - 流程管理定义(删除key相同的所有不同版本的流程定义)
59 0
|
5月前
|
缓存 前端开发
ProFlow 流程编辑器框架问题之创建一个自定义节点如何解决
ProFlow 流程编辑器框架问题之创建一个自定义节点如何解决
59 1
|
7月前
|
运维 Serverless 网络安全
Serverless 应用引擎产品使用合集之能否用一个顶层函数,在云端动态的增加函数脚本或删除脚本
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
8月前
|
前端开发
基于jeecgboot的flowable流程增加节点自动跳过功能
基于jeecgboot的flowable流程增加节点自动跳过功能
536 2
|
8月前
|
小程序 开发者
社区每周丨交易组件新增扩展组件介绍文档及开发成员管理能力优化
社区每周丨交易组件新增扩展组件介绍文档及开发成员管理能力优化
74 11
17activiti - 流程管理定义(查询最新版本的流程定义)
17activiti - 流程管理定义(查询最新版本的流程定义)
61 0
|
缓存 运维 jenkins
上线操作规范——基础版本
最近团队成员的上线操作让人头疼。几个特别突出的问题: 1、上线准备不足,设计文档中没有体现、也没有考虑到可能的资源依赖,导致临操作了才想起来做资源申请; 2、暗箱操作... 一再要求上线时需要在群内周知,以便前后端、测试、产品共同配合完成,但依然不加理会,总是要主动询问才回复已操作; 3、发布完成就认为上线完成,有时甚至不做基本的校验...
329 0
|
XML 数据格式
如何使用流程 中的 DataObject 并为流程设置租户
如何使用流程 中的 DataObject 并为流程设置租户
「业务架构」BPMN简介第三部分-流程和连接对象
「业务架构」BPMN简介第三部分-流程和连接对象
|
Prometheus Kubernetes Cloud Native
Flagger(应用自动发布)介绍和原理剖析
## 简介 [Flagger](https://github.com/weaveworks/flagger)是一个能使运行在k8s体系上的应用发布流程全自动(无人参与)的工具, 它能减少发布的人为关注时间, 并且在发布过程中能自动识别一些风险(例如:RT,成功率,自定义metrics)并回滚. ## 主要特性 ![features](https://intranetproxy.ali
4535 0