注:(1)环境搭建: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查询出创建模型时生成的相关文件,然后进行一定的转换后进行部署:

  1. /**
  2. * 根据模型id部署流程定义
  3. *
  4. * @author:tuzongxun
  5. * @Title: deploye
  6. * @param @param activitiModel
  7. * @param @param redirectAttributes
  8. * @param @return
  9. * @return Object
  10. * @date Mar 17, 2016 12:30:05 PM
  11. * @throws
  12. */
  13. @RequestMapping(value = "/deploye.do", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
  14. @ResponseBody
  15. public Object deploye(@RequestBody ActivitiModel activitiModel,
  16. HttpServletRequest req) {
  17. Map<String, Object> map = new HashMap<String, Object>();
  18. boolean isLogin = this.isLogin(req);
  19. if (isLogin) {
  20. String modelId = activitiModel.getId();
  21. try {
  22. Model modelData = repositoryService.getModel(modelId);
  23. ObjectNode modelNode = (ObjectNode) new ObjectMapper()
  24. .readTree(repositoryService
  25. .getModelEditorSource(modelData.getId()));
  26. byte[] bpmnBytes = null;
  27. BpmnModel model = new BpmnJsonConverter()
  28. .convertToBpmnModel(modelNode);
  29. bpmnBytes = new BpmnXMLConverter().convertToXML(model);
  30. String processName = modelData.getName() + ".bpmn20.xml";
  31. Deployment deployment = repositoryService.createDeployment()
  32. .name(modelData.getName())
  33. .addString(processName, new String(bpmnBytes)).deploy();
  34. if (deployment != null && deployment.getId() != null) {
  35. map.put("isLogin", "yes");
  36. map.put("userName",
  37. (String) req.getSession().getAttribute("userName"));
  38. map.put("result", "success");
  39. }
  40. } catch (Exception e) {
  41. e.printStackTrace();
  42. }
  43. } else {
  44. map.put("isLogin", "no");
  45. }
  46. return map;
  47. }

4.angular js前台代码,这里实际上只是在之前的模型列表页面调用了一个方法,因此前端代码依旧是上篇中的代码,只是其中的方法这里调用罢了:

  1. angular.module('activitiApp')
  2. .controller('modelCtr', ['$rootScope','$scope','$http','$location', function($rootScope,$scope,$http,$location){
  3. $scope.init=function(){
  4. $http.post("./modelList.do").success(function(result) {
  5. if(result.isLogin==="yes"){
  6. $rootScope.userName=result.userName;
  7. console.log(result.data);
  8. $scope.modelList=result.data;
  9. }else{
  10. $location.path("/login");
  11. }
  12. });
  13. }
  14. //部署流程定义,这里主要就是用这个方法
  15. $scope.deploye=function(model){
  16. console.log(model);
  17. $http.post("./deploye.do",model).success(function(deployResult){
  18. $location.path("/processList");
  19. });
  20. }
  21. $scope.update=function(modelId){
  22. window.open("http://localhost:8080/activitiTest2/service/editor?id="+modelId);
  23. }
  24. }])

5.部署之前,我们可以看到原本创建一个模型的时候,数据库中只会在model表和bytearray两张表分别出现一条和两条数据。而当成功部署以后,bytearray表中会再次增加两条数据,同时act_re_procdef和act_re_deployment这两张表也都会各自出现一条对应的数据。bytearray表此时数据如下图:

act_re_procdef表中数据如下:

act_re_deployment中数据如下:

需要说明的是,这些数据在后续的操作中都需要用到,假如有缺少的,必定会影响后续的操作。

activiti自定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义的更多相关文章

  1. activiti自定义流程之Spring整合activiti-modeler5.16实例(九):历史任务查询

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建        (2)创建流程模型:activiti自定义流程之Spring ...

  2. activiti自定义流程之Spring整合activiti-modeler5.16实例(八):完成个人任务

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建        (2)创建流程模型:activiti自定义流程之Spring ...

  3. activiti自定义流程之Spring整合activiti-modeler5.16实例(七):任务列表展示

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建        (2)创建流程模型:activiti自定义流程之Spring ...

  4. activiti自定义流程之Spring整合activiti-modeler5.16实例(六):启动流程

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建        (2)创建流程模型:activiti自定义流程之Spring ...

  5. activiti自定义流程之Spring整合activiti-modeler5.16实例(五):流程定义列表

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建        (2)创建流程模型:activiti自定义流程之Spring ...

  6. activiti自定义流程之Spring整合activiti-modeler5.16实例(三):流程模型列表展示

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建        (2)创建流程模型:activiti自定义流程之Spring ...

  7. activiti自定义流程之Spring整合activiti-modeler5.16实例(二):创建流程模型

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建 1.maven导包,这里就没有什么多的好说了,直接代码: <depe ...

  8. activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建

    项目中需要整合activiti-modeler自定义流程,找了很多资料后,终于成功的跳转到activiti-modeler流程设计界面,以下是记录: 一.整合基础:eclipse4.4.1.tomca ...

  9. activiti自己定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义

    注:(1)环境搭建:activiti自己定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建         (2)创建流程模型:activiti自己定义流程之Spr ...

随机推荐

  1. Brainstorm in one sentence

    [1]佚名|台湾学生占领立法院 人會長大三次 第一次是發現世界不是為自己而轉的時候. 第二次是在發現即使再怎麼努力,終究還是有些事令人無能為力的時候. 第三次是在,明知道有些事可能會無能為力,但還是會 ...

  2. asp.net 中json字符串转换

    List<ATTVal> Replys = JsonParser.FromJson<List<ATTVal>>(attrValueStr);

  3. Harris角点(转载)

    1. 不同类型的角点 在现实世界中,角点对应于物体的拐角,道路的十字路口.丁字路口等.从图像分析的角度来定义角点可以有以下两种定义: 角点可以是两个边缘的角点: 角点是邻域内具有两个主方向的特征点: ...

  4. 图像处理之image stitching

    背景介绍 图像拼接是一项应用广泛的图像处理技术.根据特征点的相互匹配,可以将多张小视角的图像拼接成为一张大视角的图像,在广角照片合成.卫星照片处理.医学图像处理等领域都有应用.早期的图像拼接主要是运用 ...

  5. avalon框架

    http://www.cnblogs.com/rubylouvre/p/4783966.html

  6. php常用配置(php.ini)

    查看php配置文件的位置 # /usr/local/php/bin/php -i | head php配置文件中的注释是用;号 1.disable_functions(php要禁用的函数) phpin ...

  7. 关押罪犯(2010年NOIP全国联赛提高组)

    题目描述 Description S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极 不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用&qu ...

  8. PHP字符串

    <?php $string1 = <<<EVILXR 我有一只小毛驴,我从来也不骑. 有一天我心血来潮,骑着去赶集. 我手里拿着小皮鞭,我心里正得意. 不知怎么哗啦啦啦啦,我摔 ...

  9. 【P1835】小红花

    很简单的题,然而我没想到,在NOIP上怎么办嘛QAQ 话说这题不知道怎么分类啊……先扔到玄学里边把…… 原题: Fj在圣诞节来临之际,决定给他的奶牛发一些小红花.现在Fj一共有N头奶牛,这N头牛按照编 ...

  10. (转)8 Tactics to Combat Imbalanced Classes in Your Machine Learning Dataset

    8 Tactics to Combat Imbalanced Classes in Your Machine Learning Dataset by Jason Brownlee on August ...