Actitivi流程框架_项目实战04流程设计与部署

  在上一篇中给大家介绍了小白(我)在项目中如何选择签核表单的生成方式,那么接下来小白想和大家聊聊在项目中是如何设计与部署流程的,这里先说明一下由于环境因素不同,过程略有差异,小白与用户之间的流程商谈环节较为简单,直接由用户通过PTT的形式将用户设计好的流程传达给小白(没有要求用户使用在线的activiti-moduler设计),然后小白就开始在activti-designer模型设计器中有模有样地设计出与ppt大致类似的流程图,当然PPT上有些不明白的地方也会找用户重新洽谈,直到流程设计满意为止,最后再将模型部署到项目服务器中;
在这里插入图片描述

流程模型设计

  具体的模型设计环节就不多说咯,都是基于在eclipse中嵌入的插件activiti-designer UI界面拖曳操作,只是有些细节性的东西需要注意,总结了以下几点:

  1. 流程的ID属性会用来与配置表中的某行对应,需要注意一一对应,在更新业务篇幅中有说明这样操作的目的;

在这里插入图片描述
2. 需要给用户任务节点绑定外置表单名称;
在这里插入图片描述
3. 用户表单的办理人、候选人、候选组可以采用UEL表达式,由流程变量来控制,或者采用任务监听器TaskListener或事件监听器ActivitiEventListener的实现类来动态设定;

在这里插入图片描述
4. 通过设置开始节点的Initiator属性可以将流程的发起人赋值给applyUserId变量,注意代码中需要设置identityService.setAuthenticatedUserId(applyUserId)才能实现绑定;

在这里插入图片描述

identityService.setAuthenticatedUserId(applyUserId);
  1. 由于我在项目中采用sequenceflow连线上的名称作为视图渲染的提交按钮名称,所以需要注意有分支连线地方要注明连线名称,且其名称值就等于该分支的满足条件;
    在这里插入图片描述
流程部署

  流程的部署方式多种多样,但是由于我们采用的是外置表单的形式设计模型,所有在部署时需要同时上传好几个文件,包括xxx.bpmn,xxx.png,xxx.form等,所以使用压缩方式部署更加适合;

public void deploy(MultipartFile flowFile) throws Exception {
		// TODO Auto-generated method stub
		//获取文件名
		String fileName=flowFile.getOriginalFilename();
		
	
		//得到输入流
		InputStream fileInputStream=flowFile.getInputStream();
		//文件的扩展名
		String extension=FolderUtils.getExtension(fileName);
		DeploymentBuilder deployment=repositoryService.createDeployment();
		if(extension.equals("zip")||extension.equals("bar")||extension.equals("rar")) {
			ZipInputStream zip=new ZipInputStream(fileInputStream);
			//压缩方式部署
			deployment.addZipInputStream(zip);
			
		}else {
			//bpmn文件部署
			deployment.addInputStream(fileName, fileInputStream);
		}
		deployment.deploy();
		
		
	}

  部署好后,查看流程数据库表bact_ge_bytearray和act_re_procdef就会多出几行数据,这说明部署成功啦;
在这里插入图片描述

总结
  1. 小白的流程设计中有6大细节需要注意;
  2. 流程部署采用压缩方式比较适宜;

更多有关activiti的项目开发内容请等下次更新,欢迎点评,共同进步哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值