activiti自己定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义
(2)创建流程模型:activiti自己定义流程之Spring整合activiti-modeler5.16实例(二):创建流程模型
(3)流程模型列表展示:activiti自己定义流程之Spring整合activiti-modeler5.16实例(三):流程模型列表展示
1.maven导包及spring的一些基本配置与之前的没有什么变化,依然沿用就好。
2.与流程定义相关的有3张表,各自是act_ge_bytearray、act_re_procdef和act_re_deployment。
当然了,假设更准确的说,在我的自己定义流程中,流程定义须要用到流程模型相关的数据,也能够说流程定义相关的就有四张表,也包含model表。
3.后台业务代码,依据前端传入的deploymentId部署流程定义。这里还是使用repositoryService进行操作。大致上的过程就是依据deploymentId查询出创建模型时生成的相关文件,然后进行一定的转换后进行部署:
/*** 依据模型id部署流程定义* * @author:tuzongxun* @Title: deploye* @param @param activitiModel* @param @param redirectAttributes* @param @return* @return Object* @date Mar 17, 2016 12:30:05 PM* @throws*/@RequestMapping(value = "/deploye.do", method = RequestMethod.POST, produces = "application/json;charset=utf-8")@ResponseBodypublic Object deploye(@RequestBody ActivitiModel activitiModel,HttpServletRequest req) {Map<String, Object> map = new HashMap<String, Object>();boolean isLogin = this.isLogin(req);if (isLogin) {String modelId = activitiModel.getId();try {Model modelData = repositoryService.getModel(modelId);ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId()));byte[] bpmnBytes = null;BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode);bpmnBytes = new BpmnXMLConverter().convertToXML(model);String processName = modelData.getName() + ".bpmn20.xml";Deployment deployment = repositoryService.createDeployment().name(modelData.getName()).addString(processName, new String(bpmnBytes)).deploy();if (deployment != null && deployment.getId() != null) {map.put("isLogin", "yes");map.put("userName",(String) req.getSession().getAttribute("userName"));map.put("result", "success");}} catch (Exception e) {e.printStackTrace();}} else {map.put("isLogin", "no");}return map;}
4.angular js前台代码。这里实际上仅仅是在之前的模型列表页面调用了一个方法,因此前端代码依然是上篇中的代码,仅仅是当中的方法这里调用罢了:
angular.module('activitiApp') .controller('modelCtr', ['$rootScope','$scope','$http','$location', function($rootScope,$scope,$http,$location){ $scope.init=function(){$http.post("./modelList.do").success(function(result) {if(result.isLogin==="yes"){$rootScope.userName=result.userName;console.log(result.data); $scope.modelList=result.data;}else{$location.path("/login");}});} //部署流程定义,这里主要就是用这种方法$scope.deploye=function(model){console.log(model);$http.post("./deploye.do",model).success(function(deployResult){$location.path("/processList");});}$scope.update=function(modelId){window.open("http://localhost:8080/activitiTest2/service/editor?
id="+modelId); } }])
5.部署之前。我们能够看到原本创建一个模型的时候,数据库中仅仅会在model表和bytearray两张表分别出现一条和两条数据。
而当成功部署以后。bytearray表中会再次添加两条数据,同一时候act_re_procdef和act_re_deployment这两张表也都会各自出现一条相应的数据。bytearray表此时数据例如以下图:
act_re_procdef表中数据例如以下:
act_re_deployment中数据例如以下:
须要说明的是,这些数据在兴许的操作中都须要用到,假如有缺少的。必然会影响兴许的操作。
转载于:https://www.cnblogs.com/gccbuaa/p/7158417.html
activiti自己定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义相关推荐
- activiti自己定义流程之Spring整合activiti-modeler实例(七):任务列表展示
1.通过上一节的操作,能够知道流程启动以后会同一时候生成一个流程实例和用户任务.这个用户任务保存在act_ru_task和act_hi_task表中,从表明能够看出ru是runtime,hi是hist ...
- activiti自定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义
注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建 (2)创建流程模型:activiti自定义流程之Sprin ...
- Spring整合Activiti工作流
代码地址如下: http://www.demodashi.com/demo/11911.html 一. 前期准备 安装必要的开发环境 eclipse/intellij+maven 3.5.x + to ...
- camunda工作流引擎流程定义部署 流程定义查询 激活流程实例
camunda工作流引擎流程定义部署 流程定义查询 激活流程实例 1.通过xml字符串部署流程定义 /*** 通过xml字符串部署流程定义* @param processModelVo* @retur ...
- Spring整合CXF webservice restful 实例
webservice restful接口跟soap协议的接口实现大同小异,只是在提供服务的类/接口的注解上存在差异,具体看下面的代码,然后自己对比下就可以了. 用到的基础类 User.java [源码 ...
- 【Camunda 三】Camunda部署流程定义
说在前面 该专栏将会持续更新,最终会做成一个完整的项目[前端流程设计器,后端流程引擎服务] 感兴趣的朋友点赞收藏 一.画图 上文我们提到一个Camunda Modeler,安装一下,方便我们获取xml ...
- 《Flowable流程引擎从零到壹》引入日志框架和部署流程定义
14天学习训练营导师课程: 邓澎波<Flowable流程引擎-基础篇[2022版]> 邓澎波<Flowable流程引擎-高级篇[2022版]> 学习笔记<Flowable ...
- JAVAWEB开发之工作流详解(二)——Activiti核心API的使用(流程定义和流程实例的管理、流程变量、监听器...)以及与Spring的集成
管理流程定义 设计流程定义文档 bpmn文件 设置方式可以直接使用插件图形化界面进行设置 为某任务节点指定任务执行者 保存后的BPMN文件可以使用XML编辑器打开 BPMN 2.0根节点是defini ...
- Spring中部署Activiti流程定义的三种姿势
摘要:本文对工作流Activiti框架中流程定义的部署进行了详细说明介绍. 本文分享自华为云社区<项目中工作流部署详细解析!Spring中部署Activiti流程定义的三种姿势>,作者:攻 ...
最新文章
- ECCV 2020 论文大盘点-6D 位姿估计篇
- Android系统中自定义按键的短按、双击、长按事件
- 微服务化之缓存的设计
- java 固定电话正则_java针对电话号码正则匹配实例
- C#中LINQ技术的简单小例
- layer绑定回车事件(转)
- Unity3D 动态加载 图片序列正反播放
- 华为6x手机计算机软件没有了,只用一招,教你将华为手机变成电脑,这波操作没几个人知道...
- 看风水用什么罗盘最好_兰花用什么土最好
- python编写函数showmsg(n、name)_Python语言答案
- (转)Three.JS学习 9:WEBVR 入门demo
- IOS捷径早安,创建自动化可实现自动化叫醒
- CQOI2007]涂色paint(BZOJ 1260) 区间动态规划 DP 逆向思维
- 邮箱如何撤回已发送的邮件?
- JAVA滁州市住房公积金管理中心网站计算机毕业设计Mybatis+系统+数据库+调试部署
- word 对文中的图表进行链接、插入题注。
- windows设置开机延时自启动程序
- 技术员 Ghost Win10 x64 装机版/纯净版 201710
- C语言作用域(变量生存的空间)学习
- 三维激光扫描和逆向软件配合在某剧院旋转楼梯铝板装饰前钢结构骨架整体精度检测的应用
热门文章
- MyEclipse 中配置struts2.2.1的方法
- CentOS5.6系统下mysql5安装
- 如何搭建以太坊私有链
- 解释型和编译型编程语言_解释型和编译型编程语言:有什么区别?
- npm i和npm_让您的NPM套件包含Jest和Codecov☂️
- 非凡推崇_2015年值得推崇的25位编码者
- LVS_DR实现(负载均衡)及LVS_DR+keepalived实现(高可用+负载均衡)
- 蜜蜂实训平台c语言考试答案,北理c语言上机答案(全)
- with as python_python - with as的用法
- UI培训技术分享:设计大神都在用的10种技法!