天天看點

擴充Activiti 5.12輕松搞定流程執行個體跟随流程版本一起更新

擴充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;
	}      

繼續閱讀