camunda工作流引擎流程定义部署 流程定义查询 激活流程实例

1.通过xml字符串部署流程定义

    /*** 通过xml字符串部署流程定义* @param processModelVo* @return* @throws IOException*/@PostMapping("/addProcessMode")public AjaxResult addProcessMode(@RequestBody ProcessModelVo processModelVo) throws IOException {System.out.println(processModelVo.getXml());String str = processModelVo.getXml();String path = "D:\\bootproject\\RuoYi-Vue\\ruoyi-admin\\src\\main\\resources\\BPMN\\";String name = IdUtil.simpleUUID() + ".bpmn";String fileName = path + name;createFile(fileName, str);FileInputStream fileInputStream = new FileInputStream(fileName);Deployment deploy = repositoryService.createDeployment().addInputStream(processModelVo.getName() + ".bpmn", fileInputStream).name(processModelVo.getName()).deploy();System.out.println(deploy.getId());fileInputStream.close();File file = new File(fileName);if (file.delete()) {System.out.println("Deleted the file: " + fileName);} else {System.out.println("Failed to delete the file.");}//log.info("流程部署成功,id:{},name:{}",deploy.getId(),deploy.getName());System.out.println(deploy.getId());return StrUtil.isNotEmpty(deploy.getId()) ? AjaxResult.success("添加成功") : AjaxResult.error();}public boolean createFile(String fileName, String str) throws IOException {File file = new File(fileName);if (!file.exists()) {file.createNewFile();// 能创建多级目录}FileWriter fw = null;try {//创建字符输出流对象,负责向文件内写入fw = new FileWriter(fileName);//将str里面的内容读取到fw所指定的文件中fw.write(str);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (fw != null) {try {fw.close();return true;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}return false;}

2.使用camunda的rest api查询部署的流程定义
http://localhost/dev-api/engine-rest/process-definition?pageNum=1&pageSize=10

3.通过流程定义id启动实例

    /*** 启动流程实例* /flowTask/startProcess** @param ychDemoQjsq* @return*/@PostMapping("/startProcess")public AjaxResult startProcess(@RequestBody YchDemoQjsq ychDemoQjsq) {//请假流程String processDefinitionKey = "Process_1";//不检验租户权限ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();processEngine.getProcessEngineConfiguration().setTenantCheckEnabled(false);//这设置发起人或审批人Map<String, Object> variables = new HashMap<String, Object>();variables.put("start", SecurityUtils.getUsername());identityService.setAuthenticatedUserId(SecurityUtils.getUserId().toString());ProcessInstance processInstance = runtimeService.startProcessInstanceById(ychDemoQjsq.getProcessInstanceId(), variables);//业务表单的保存ychDemoQjsq.setCreateBy(SecurityUtils.getUsername());ychDemoQjsq.setCreateTime(new Date());ychDemoQjsq.setProcessId(processInstance.getId());iYchDemoQjsqService.insertYchDemoQjsq(ychDemoQjsq);Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).active().singleResult();taskService.complete(task.getId(), variables);return AjaxResult.success();}

camunda工作流引擎流程定义部署 流程定义查询 激活流程实例相关推荐

  1. Camunda工作流引擎三

    本篇继续拓宽对 Camunda 工作流的学习! <Camunda 工作流引擎一> <Camunda 工作流引擎二> 提要 文章目录 提要 正文 组任务 网关 排他网关 并行网关 ...

  2. Camunda 工作流引擎 demo

                                            CamundaDemo 本Demo采用springBoot和camunda内嵌的方式. 在SpringBoot中加入ca ...

  3. Camunda工作流引擎一

    实习工作中需要用到工作流引擎,去实现业务审批流的功能模块,由于 Flowable 不支持 MariaDB (重要原因之一),所以项目中选择了 Camunda 工作流引擎. 由于没有接触过工作流引擎,所 ...

  4. Activiti7工作流引擎:进阶篇(九) 内嵌子流程 SubProcess

    知识传送门 >>>>>>>>>>>>>>>>>>> 为什么普通人要想成佛就得经过九九八 ...

  5. Camunda工作流引擎之bpmn设计器定制

    在 Vue.js应用中,基于 bpmn-js. 定制 vue-bpmn-modeler 前段时间,由于公司业务需要工作流引擎,但是由于之前的工作流引擎是第三方付费的,又遇到客户需要本地地方部署,所以需 ...

  6. Camunda工作流引擎简记

    本文转载自玩转Camunda之实战篇-赶紧收藏起来吧_哔哩哔哩_bilibili 其中部分内容,经过本人修改 一.工作流相关介绍 BPM(BusinessProcessManagement),业务流程 ...

  7. RoadFlow工作流引擎安装与部署

    从官方网站 http://roadflow.net 下载RoadFlow解压后得到如下文件夹(此图为WebForm文件夹,MVC类似): 还原数据库: 数据库备份文件位于db文件夹下的:WEBFORM ...

  8. 工作流引擎设计之退回任务定义

    退回(Rollback Work Item) 退回是针对本人(工作流参与者)的"待办任务"的操作,即参与者主动退回待办任务列表中的任务. 为什么要退回? 参与者接受任务后,发现不应 ...

  9. Activiti7工作流引擎:基础篇(六) 任务监听器和流程监听器

    知识传送门 >>>>>>>> 你只有一定要,才一定会得到. 一:任务监听器TaskListener 任务监听器是处理业务逻辑的重要的地方,当任务创建.设 ...

最新文章

  1. POJ-2948 Martian Mining 动态规划
  2. AnsroidStudio中提示:Failed to find configured root that contain
  3. kubesphere3.0的安装完整文档
  4. 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板
  5. 捷达vs7测试_捷达VS7——品质硬核!
  6. 第七章信息系统安全工程考试要点及真题分布
  7. PHP结合Redis来限制用户或者IP某个时间段内访问的次数
  8. OpenCV系列(一)之图像平滑
  9. redis主从,哨兵回忆手册
  10. 升级python(2.7-3.6.2)
  11. [linux]redhat7.6 安装telnet
  12. 苹果Mac文件自动化整理工具:Hazel
  13. Oracle数据把持和控制言语详解-1
  14. 日志管理系统之保存日志到数据库
  15. 汇编语言学习:如何理解“物理地址=段地址X16+偏移地址”
  16. 谷歌地球二次开发基础平台
  17. win10网络诊断为DNS服务器未响应,Windows10网络诊断DNS服务器未响应的解决办法
  18. socks5 python_用Python写socks5服务器端
  19. 【JetBrain】JetBrain系列软件设置背景图
  20. 贪婪洞窟2服务器维护,贪婪洞窟211月30日更新维护公告 贪婪洞窟211月30日更新了那些内容...

热门文章

  1. Redis Cluster集群配置
  2. linux图形界面切换账户,linux图形界面和字符界面相互转换
  3. 14.实战+补充知识+PS增强+DW(到此 前端工程师【基础篇】 完结)
  4. 企业激励的3种模式分析与运用
  5. 解释linux中的三种重定向,Linux重定向及反弹shell详解
  6. error: cannot bind non-const lvalue reference of type
  7. html-withimg-loder
  8. (二十二)岁月无声 - 6
  9. 【区块链 | Uniswap】3.剖析DeFi交易产品之Uniswap:V2下篇
  10. 用终端来给屏幕下个雪❄️吧!