专业提供网站制作wordpress 周生生

张小明 2026/1/17 9:09:24
专业提供网站制作,wordpress 周生生,wordpress more-link,个人微信营销文章目录 1、分配任务负责人1.1、固定分配2.2、动态分配--表达式分配2.2.1、UEL 表达式2.2.2、编写代码配置负责人2.2.3、注意事项 2.3、动态分配--监听器分配 2、查询任务2.1、查询任务负责人的待办任务2.2、关联 businessKey 3、办理任务 1、分配任务负责人 1.1、固定分配 …文章目录1、分配任务负责人1.1、固定分配2.2、动态分配--表达式分配2.2.1、UEL 表达式2.2.2、编写代码配置负责人2.2.3、注意事项2.3、动态分配--监听器分配2、查询任务2.1、查询任务负责人的待办任务2.2、关联 businessKey3、办理任务1、分配任务负责人1.1、固定分配在进行业务流程建模时指定固定的任务负责人 如图并在 properties 视图中填写 Assignee 项为任务负责人。实际工作中固定分配任务负责人用的很少只当作了解。2.2、动态分配–表达式分配由于固定分配方式任务只管一步一步执行任务执行到每一个任务将按照 bpmn 的配置去分配任务负责人。2.2.1、UEL 表达式Activiti 使用 UEL 表达式 UEL 是 java EE6 规范的一部分 UELUnified Expression Language即 统一表达式语言 activiti 支持两个 UEL 表达式 UEL-value 和 UEL-method。UEL-value 定义如图assignee 这个变量是 activiti 的一个流程变量或者使用这种方式定义如图user 也是 activiti 的一个流程变量 user.assignee 表示通过调用 user 的 getter 方法获取值。UEL-method 方式如图userBean 是 spring 容器中的一个 bean表示调用该 bean 的 getUserId()方法。UEL-method 与 UEL-value 结合再比如${ldapService.findManagerForEmployee(emp)}ldapService 是 spring 容器的一个 beanfindManagerForEmployee 是该 bean 的一个方法emp 是 activiti流程变量 emp 作为参数传到 ldapService.findManagerForEmployee 方法中。其它表达式支持解析基础类型、 bean、 list、 array 和 map也可作为条件判断。如下${order.price100order.price250}2.2.2、编写代码配置负责人定义任务分配流程变量如图设置流程变量在启动流程实例时设置流程变量如下/** * 设置流程负责人 */TestpublicvoidassigneeUEL(){// 获取流程引擎ProcessEngineprocessEngineProcessEngines.getDefaultProcessEngine();// 获取 RuntimeServiceRuntimeServiceruntimeServiceprocessEngine.getRuntimeService();// 设置assignee的取值用户可以在界面上设置流程的执行MapString,ObjectassigneeMapnewHashMap();assigneeMap.put(assignee0,张三);assigneeMap.put(assignee1,李经理);assigneeMap.put(assignee2,王总经理);assigneeMap.put(assignee3,赵财务);// 启动流程实例同时还要设置流程定义的assignee的值runtimeService.startProcessInstanceByKey(myEvection1,assigneeMap);// 输出System.out.println(processEngine.getName());}执行成功后可以在act_ru_variable表中看到刚才map中的数据2.2.3、注意事项由于使用了表达式分配必须保证在任务执行过程表达式执行成功比如某个任务使用了表达式${order.price 100 order.price 250}当执行该任务时必须保证 order 在流程变量中存在否则 activiti 异常。2.3、动态分配–监听器分配可以使用监听器来完成很多Activiti流程的业务。使用监听器的方式来指定负责人在流程设计时就不需要指定assignee。任务监听器是发生对应的任务相关事件时执行自定义 java 逻辑 或表达式。任务相当事件包括Event的选项包含Create任务创建后触发 Assignment任务分配后触发 Delete任务完成后触发 All所有事件发生都触发定义任务监听类且类必须实现 org.activiti.engine.delegate.TaskListener 接口publicclassMyTaskListenerimplementsTaskListener{Overridepublicvoidnotify(DelegateTaskdelegateTask){if(delegateTask.getName().equals(创建出差申请)delegateTask.getEventName().equals(create)){//这里指定任务负责人delegateTask.setAssignee(张三);}}}DelegateTask对象的内容如下注意事项使用监听器分配方式按照监听事件去执行监听类的 notify 方法方法如果不能正常执行也会影响任务的执行。2、查询任务2.1、查询任务负责人的待办任务代码如下// 查询当前个人待执行的任务TestpublicvoidfindPersonalTaskList(){ProcessEngineprocessEngineProcessEngines.getDefaultProcessEngine();// 流程定义keyStringprocessDefinitionKeymyEvection1;// 任务负责人Stringassignee张三;// 获取TaskServiceTaskServicetaskServiceprocessEngine.getTaskService();ListTasktaskListtaskService.createTaskQuery().processDefinitionKey(processDefinitionKey).includeProcessVariables().taskAssignee(assignee).list();for(Tasktask:taskList){System.out.println(----------------------------);System.out.println(流程实例id task.getProcessInstanceId());System.out.println(任务id task.getId());System.out.println(任务负责人 task.getAssignee());System.out.println(任务名称 task.getName());}}2.2、关联 businessKey需求在 activiti 实际应用时查询待办任务可能要显示出业务系统的一些相关信息。比如查询待审批出差任务列表需要将出差单的日期、 出差天数等信息显示出来。出差天数等信息在业务系统中存在而并没有在 activiti 数据库中存在所以是无法通过 activiti 的 api 查询到出差天数等信息。实现在查询待办任务时通过 businessKey业务标识 关联查询业务系统的出差单表查询出出差天数等信息。//在查询待办任务时通过 businessKey业务标识 关联查询业务系统的出差单表查询出出差天数等信息。/** * 查询个人待办任务 关联businesskey */TestpublicvoidfindProcessinstance(){ProcessEngineprocessEngineProcessEngines.getDefaultProcessEngine();RuntimeServiceruntimeServiceprocessEngine.getRuntimeService();TaskServicetaskServiceprocessEngine.getTaskService();// 查询张三的个人的待办任务 查询结果是一个 任务对象TasktasktaskService.createTaskQuery().processDefinitionKey(myEvection1).taskAssignee(张三).singleResult();// 通过个人task任务对象 查询流程实例idStringprocessInstanceIdtask.getProcessInstanceId();// 通过流程实例id 查询流程实例对象ProcessInstanceprocessInstanceruntimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();// 通过流程实例对象查询关联的bussinesskeyStringbusinessKeyprocessInstance.getBusinessKey();System.out.println(businessKeybusinessKey);}3、办理任务注意在实际应用中完成任务前需要校验任务的负责人是否具有该任务的办理权限/** * 完成任务判断当前用户是否有权限 */TestpublicvoidcompletTask2(){//任务idStringtaskId42502;// 任务负责人Stringassingeejack;//获取processEngineProcessEngineprocessEngineProcessEngines.getDefaultProcessEngine();// 创建TaskServiceTaskServicetaskServiceprocessEngine.getTaskService();// 完成任务前需要校验该负责人可以完成当前任务// 校验方法// 根据任务id和任务负责人查询当前任务如果查到该用户有权限就完成TasktasktaskService.createTaskQuery().taskId(taskId).taskAssignee(assingee).singleResult();if(task!null){taskService.complete(taskId);System.out.println(完成任务);}}“人的一生会经历很多痛苦但回头想想都是传奇”。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

免费网站站泰安房产成交信息网

3分钟掌握VESC配置:电机控制从此变得如此简单 【免费下载链接】vesc_tool The source code for VESC Tool. See vesc-project.com 项目地址: https://gitcode.com/gh_mirrors/ve/vesc_tool 还在为复杂的电机控制器配置而头疼吗?VESC Tool正是为你…

张小明 2026/1/16 6:35:21 网站建设

免费推广网站软件有哪些大站用wordpress

✅想考大数据分析师证书,但心里一堆问号? 别着急刷走!这篇整理了被问的10个高频问题,从“认可度”到“怎么学”,一篇给你讲清楚。 如果你是: 🔹 想转行数据分析的小白 🔹 想系统提升…

张小明 2026/1/16 6:09:39 网站建设

网站负责人姓名做招标网站 如何

有时候,你可能觉得自己的公司网络就像是一条繁忙的高速公路,在高峰期总是堵得水泄不通。这时候,MPLS(多协议标签交换)就成了解决拥堵的一剂良药。但问题是,如何才能让它发挥最大效用呢?很多企业在初次接触MPLS时,往往…

张小明 2026/1/16 6:38:50 网站建设

360极速浏览器网站开发缓存企业展厅设计哪里好

第一章:Open-AutoGLM部署难题全解析在大模型快速发展的背景下,Open-AutoGLM作为一款开源的自动代码生成语言模型,其本地化部署成为开发者关注的重点。然而,由于依赖复杂、环境配置严苛以及资源消耗较大,实际部署过程中…

张小明 2026/1/16 7:23:12 网站建设

微信里的网站怎么做10大装修公司排行榜

互联网大厂Java面试实录:谢飞机的能源与环保求职之旅 第一轮面试 - 基础技术与业务理解 面试官:谢飞机你好,欢迎来到我们公司面试。我们是一家专注于能源与环保技术的互联网平台,涉及智能电网、新能源管理、环境监测、节能减排等多…

张小明 2026/1/15 23:24:52 网站建设

网站开发专业分析wordpress通过编辑器修改页面宽度

老旧工控板卡“起死回生”:从一纸Gerber到可编辑PCB的实战全解析你有没有遇到过这样的场景?产线上一台用了二十多年的PLC突然罢工,查了半天发现是主板上的某个驱动模块坏了。打电话给原厂——早就停产了;找代理商报价——一块备件…

张小明 2026/1/16 5:32:57 网站建设