Activiti工作流笔记(3)
Activiti工作流的流程部署和删除流程部署
流程部署代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | /** * 部署流程 */ public class ActivitiTest { RepositoryService repositoryService; RuntimeService runtimeService; @Before public void setUp() throws Exception { //获取流程引擎,配置文件必须命名为activiti.cfg.xml ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); //获取流程定义 repositoryService = processEngine.getRepositoryService(); //获取运行时 runtimeService = processEngine.getRuntimeService(); } /** * 第一种部署流程方式 * select * from act_re_deployment;-- 部署信息表 * select * from act_ge_bytearray;-- 二进制数据表 * select * from act_re_procdef;-- 流程定义数据表 * 如果key相同,再次部署会在原有的key的流程上做版本的累加,版本号+1 * 如果key不同,再次部署,版本号从1开始 */ @Test public void deployActiviti(){ //创建部署对象 DeploymentBuilder deploymentBuilder = repositoryService.createDeployment(); //加载流程的配置文件和图片 deploymentBuilder.addClasspathResource( "diagrams/activiti.bpmn" ) .name( "申请事假" ) .category( "申请" ) .addClasspathResource( "diagrams/activiti.png" ); //部署流程 deploymentBuilder.deploy(); } /** * 第二种流程部署方式,使用zip压缩包方式部署流程 */ @Test public void deployActivitiWithZip(){ //创建部署对象 DeploymentBuilder deploymentBuilder = repositoryService.createDeployment(); InputStream in = this .getClass().getClassLoader().getResourceAsStream( "diagrams/activiti.zip" ); ZipInputStream zipInputStream = new ZipInputStream(in); //加载流程的配置文件和图片 deploymentBuilder.addZipInputStream(zipInputStream) .name( "申请事假" ) .category( "申请" ); //部署流程 deploymentBuilder.deploy(); } /** * 删除流程部署 */ @Test public void deleteActivitiDeploy(){ //如果流程已经启动,那么删除会报错 //repositoryService.deleteDeployment("201");相当于deleteDeployment("201", false) //级联删除:是:true 否:false //false:有正在运行流程是删除会报错<br> //true:有正在运行流程也会被删除 repositoryService.deleteDeployment( "201" , true ); } } |
执行deployActiviti:
1 2 3 4 5 6 7 | insert into ACT_RE_DEPLOYMENT(ID_, NAME_, CATEGORY_, DEPLOY_TIME_) values (?, ?, ?, ?) > <br>Parameters: 1(String), 申请事假(String), 申请(String), 2017-02-17 10:21:56.156( Timestamp )> insert into ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) values (?, 1, ?, ?, ?, ?) > <br>Parameters: 2(String), diagrams/activiti.bpmn(String), java.io.ByteArrayInputStream@940b84(ByteArrayInputStream), 1(String), false (Boolean)> insert into ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) values (?, 1, ?, ?, ?, ?) > <br>Parameters: 3(String), diagrams/activiti.png(String), java.io.ByteArrayInputStream@1a5ec6c(ByteArrayInputStream), 1(String), false (Boolean)> insert into ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, SUSPENSION_STATE_) values (?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) > <br>Parameters: activiti_leave:1:4(String), http://www.activiti.org/test(String), 请假(String), activiti_leave(String), 1( Integer ), 1(String), diagrams/activiti.bpmn(String), diagrams/activiti.png(String), null , false (Boolean), 1( Integer )> |
部署流程操作的表:
act_re_deployment --部署信息表
act_ge_bytearray --二进制数据表
act_re_procdef --流程定义数据表
别荒废时间,谁知道明天会发生什么呢
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 基于DeepSeek R1 满血版大模型的个人知识库,回答都源自对你专属文件的深度学习。
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!