当前位置: 首页 > news >正文

学校网站 建设措施北京网站建设laitang

学校网站 建设措施,北京网站建设laitang,蛋糕教做网站,customizr wordpress如果单纯使用activiti进行流程的自动控制#xff0c;是可以实现的。但是通常我们都需要结合自定义的表#xff0c;便于在流程执行中更加清晰的看到每一个流程实例节点的具体信息。关联自定义表与activiti表才能完成真正的业务 BusinessKey关联 // 定义businessKey Test pub…如果单纯使用activiti进行流程的自动控制是可以实现的。但是通常我们都需要结合自定义的表便于在流程执行中更加清晰的看到每一个流程实例节点的具体信息。关联自定义表与activiti表才能完成真正的业务 BusinessKey关联 // 定义businessKey Test public void addBusinessKey(){// 获取流程引擎ProcessEngine engine ProcessEngines.getDefaultProcessEngine();// 获取启动流程serviceRuntimeService runtimeService engine.getRuntimeService();// 启动流程 并添加businessKey// param1流程ID param2businessKeyProcessInstance processInstance runtimeService.startProcessInstanceByKey(forLeave, 1001);System.out.println(businessKeyprocessInstance.getBusinessKey()); }当我们启动流程的时候activiti将businessKey添加到了act_ru_execution表中。该表就是我们将自定义表和activiti表关联的重点 流程定义的挂起与激活 // 全部流程挂起与激活 Test public void suspendAllprocessInstance(){ProcessEngine engine ProcessEngines.getDefaultProcessEngine();RepositoryService repositoryService engine.getRepositoryService();// 获取流程定义查询对象ProcessDefinition forLeave repositoryService.createProcessDefinitionQuery().processDefinitionKey(forLeave).singleResult();// 查询当前流程任务是否为挂起状态 true挂起状态 falseboolean suspended forLeave.isSuspended();// 流程定义idString id forLeave.getId();if (suspended){// 挂起就激活// param1:流程任务id param2是否挂起 param3激活时间repositoryService.activateProcessDefinitionById(id,true,null);System.out.println(流程定义idid已激活);// 激活状态为1}else {// 激活就挂起// param1流程定义id param2是否暂停 param3暂停时间repositoryService.suspendProcessDefinitionById(id,true,null);System.out.println(流程定义idid已挂起);// 挂起状态为2}可以通过查看运行时执行表act_ru_execution的SUBPENSION_STATE查看状态为1表示该任务已激活状态为2表示已挂起 单个流程实例挂起与激活 Test public void suspendSingleProcess(){ProcessEngine engine ProcessEngines.getDefaultProcessEngine();RuntimeService runtimeService engine.getRuntimeService();ProcessInstance processInstance runtimeService.createProcessInstanceQuery().processInstanceId(27501).singleResult();// true 已挂起 false 已激活boolean suspended processInstance.isSuspended();// 获取流程实例idString id processInstance.getId();// 挂起和激活转换if (suspended){runtimeService.activateProcessInstanceById(id);System.out.println(流程实例idid已激活);}else {runtimeService.suspendProcessInstanceById(id);System.out.println(流程实例idid已挂起);} }可以对比流程定义和流程实例的挂起激活 流程定义是指某一种任务类型该类型的全部待处理任务会全部挂起或者执行。比如请假那么不会单独针对张三或者李四的请假操作而是针对所有的请假流程进行操作。流程定义的挂起与激活通过的是RepositoryService 流程实例是指某一流程定义下的某一个流程比如张三的请假审批流程就是一个流程实例。那么就可以通过单个操作来对张三进行激活和挂起操作。流程实例是通过RunTimeService进行操作。 两者的激活都是通过activatePrecess***ById进行转换挂起都是通过suspendProcess ***ById 任务负责人分配–uel表达式 首先在绘制bpmn时使用${key}表达式再自定义填充key。 填充完毕之后进行流程部署然后在启动流程时利用map集合进行传参。map集合的key对应上述的uel表达式中的keyactiviti会自动帮我们完成该表达式的值替换 // 测试uel表达式分配负责人 Test public void test02(){ProcessEngine engine ProcessEngines.getDefaultProcessEngine();RuntimeService runtimeService engine.getRuntimeService();// 启动时传入负责人// map用于替换bpmn的uel表达式MapString, Object map new HashMap();map.put(assignee0,六六);map.put(assignee1,七七);ProcessInstance vacationIns runtimeService.startProcessInstanceByKey(vacation, map); }如上述程序所示最终可以通过查看act_ru_task表会发现对应的assignee字段是我们预先定义好的key而后面的text字段就是替换后的值value 流程变量 流程变量在流程的审批执行过程中经常会需要一些变量来作为判决跳转下一流程节点的依据这个变量就称之为流程变量。 举例员工想要预支薪水如果预支金额小于月薪那么直接经部门经理审批后上报财务即可反之如果预支金额大于月薪那么需要上报总经理通过后再上报财务即可。此时的预支金额就是流程变量 globa变量是流程变量的默认作用域也就是流程实例globa变量不允许重复如果两次或多次使用了统一globa变量名那么后续的值会覆盖前面的值 local变量针对一个任务task和一个执行实例范围没有globa范围大。local变量由于存在于不同的任务或者不同的实例中所以相互间没有影响变量名可以一致也可以与globa变量名一致 排他网关ExclusiveGateway 网关用于控制流程分支的走向。 排他网关是当流程执行至此网关时所有分支都会判断条件是否为true如果为true则执行该分支。排他网关只会选择一个为true的分支执行如果有多个分支为true那么就会选择id值较小的一个执行 springBoot整合activiti 首先导入依赖资源 !-- activiti整合springboot -- dependencygroupIdorg.activiti/groupIdartifactIdactiviti-spring-boot-starter/artifactIdversion7.1.0.M1/version /dependency配置application.yaml文件 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/activiti?useSSLtrueuseUnicodetruecharacterEncodingUTF-8serverTimezoneUTCusername: rootpassword: 123456type: com.alibaba.druid.pool.DruidDataSourceactiviti:#1.flase默认值。activiti在启动时对比数据库表中保存的版本如果没有表或者版本不匹配将抛出异常#2.true activiti会对数据库中所有表进行更新操作。如果表不存在则自动创建#3.create_drop 在activiti启动时创建表在关闭时删除表必须手动关闭引擎才能删除表#4.drop-create 在activiti启动时删除原来的旧表然后在创建新表不需要手动关闭引擎database-schema-update: true# 检测历史信息表 activiti7默认不生成信息表 此处开启db-history-used: true# 历史记录存储等级history-level: fullcheck-process-definitions: true在主程序处排除掉springSecurity框架 SpringBootApplication(exclude { DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class, SecurityAutoConfiguration.class,ManagementWebSecurityAutoConfiguration.class })最后我们需要保证已经编绘好的bpmn文件位于resources文件夹下的processes目录下否则activiti会找不到文件无法创建表 如下图所示 如果是第一次使用activi的话就直接启动主程序activiti将会自动的在对应数据库中建表并且如果在你的processes包下扫描到了对应的bpmn文件那么activiti也会自动的进行流程部署 测试启动流程 Controller public class TestController {Autowiredprivate RuntimeService runtimeService;Autowiredprivate TaskService taskService;RequestMapping(value /hello/{id})ResponseBodypublic String testHello(PathVariable(id) String id){// 测试完成任务Task task taskService.createTaskQuery().processInstanceId(id).singleResult();taskService.complete(task.getId());return 完成任务人task.getAssignee()获取到的ididget到的idtask.getId();}RequestMapping(value /create)ResponseBodypublic String testCreate(){// 定义负责人名称MapString, Object maps new HashMap();maps.put(a1,五一);maps.put(a2,六一);ProcessInstance holidy runtimeService.startProcessInstanceByKey(holiday, maps);return 流程实例IDholidy.getId()流程实例IDholidy.getProcessInstanceId()流程定义Idholidy.getProcessDefinitionId()流程定义Nameholidy.getProcessDefinitionName();} }
http://www.dnsts.com.cn/news/278618.html

相关文章:

  • 上传文章网站专业做淘宝开店的网站
  • 天津网站策划企业网站建设 广州
  • 阿里云编辑建设好的网站郑州做网站优化外包
  • 装饰行业网站模板厦门酒店团购网站建设
  • 无锡做网站企业简述网站建设及维护全过程
  • 网站卡密代理怎么做东莞推广软件
  • 打开网站后直接做跳转页面如何注册国外网站
  • 做淘宝链接网站建设工程质量安全管理体系网站
  • 帮别人建设网站需要什么资质网络营销是网络销售吗?
  • 深圳营销型网站公司网站建设需求调查表
  • 贵州建设职业技术学院网站什么是网络营销与直播电商
  • 教学资源网站建设方案编程培训就业班
  • 斐讯k3做网站wordpress主题 卢松松
  • 海南建设工程股份有限公司网站搜索风云排行榜
  • 宁波网站设计首选荣盛网络汉中建设工程招投标
  • 如何给自己网站做外链石家庄论坛建站模板
  • 长春哪家做网站做的好51ppt模板网官网
  • 沭阳住房城乡建设局网站山西专业网站建设大全
  • 湛江专业建站联系方式增加浏览量的软件
  • 做seo营销网站龙岩做网站公司在哪里
  • 学校网站建设意义上海正规做网站公司报价
  • 网站如何做外部链接网站建设及维护涉及哪些内容
  • 介绍几个有趣的网站wordpress 08影院1.0
  • 百度网站推广网络wordpress多语言版本
  • 做免费网站怎么赚钱简单的静态网页模板
  • 宁夏网站营销推广花店网站模板免费下载
  • 西安知名网站制作公司丹徒网站建设服务
  • 泛站群设计导航网站 左侧菜单栏
  • 淘宝优惠券发布网站怎么做建设工程敎育那个网站
  • 怎样做网贷网站罗湖平台网站建设费用