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

建设网上银行个人网上银行登录合肥网站优化平台

建设网上银行个人网上银行登录,合肥网站优化平台,网站推广方案整理,dw软件安装包文章目录 一、任务监听器事件类型配置方式(选)代码实现xml文件创建监听器class方式expression方式delegateExpression 测试流程部署流程启动流程完成任务 一、任务监听器 任务监听器可以在任务创建、任务分配、任务完成、任务删除发生时触发,从而执行相应的逻辑。 事…

文章目录

  • 一、任务监听器
    • 事件类型
    • 配置方式(选)
    • 代码实现
      • xml文件
      • 创建监听器
        • class方式
        • expression方式
        • delegateExpression
      • 测试流程
        • 部署流程
        • 启动流程
        • 完成任务


一、任务监听器

任务监听器可以在任务创建、任务分配、任务完成、任务删除发生时触发,从而执行相应的逻辑。

事件类型

  1. create:创建事件
  2. assignment:指派事件
  3. complete:完成事件
  4. delete:删除事件

配置方式(选)

  1. class:直接配置class全名
  2. expression:spring bean容器对应名字与方法名
  3. delegateExpression:spring bean容器对应名字

代码实现

在这里插入图片描述

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef"><process id="task-listener" name="任务监听器" isExecutable="true"><documentation>测试任务监听器</documentation><startEvent id="sid-30244641-2a1c-43e5-af5b-e77db43488bf" name="开始"><documentation>开始了</documentation></startEvent><userTask id="sid-9e62413f-e04f-4c81-8d0c-e73f17e125ec" name="节点1" activiti:assignee="${applyUserId}" activiti:candidateUsers="${candidateUsers}"><documentation>任务节点1</documentation><extensionElements><activiti:taskListener event="create" class="com.lmw.test.activiti.listener.task.MyTaskListener1"/><activiti:taskListener event="assignment" expression="${myTaskListener2.notify(task)}"/><activiti:taskListener event="complete" delegateExpression="${myTaskListener3}"/></extensionElements></userTask><sequenceFlow id="sid-1af5e647-b03c-4b12-807d-4171dfdf7ae9" sourceRef="sid-30244641-2a1c-43e5-af5b-e77db43488bf" targetRef="sid-9e62413f-e04f-4c81-8d0c-e73f17e125ec" name="顺序流1"><documentation>顺序流1了</documentation></sequenceFlow><userTask id="sid-d903cb09-56c2-4cfe-bd05-5ba0699539d0" name="节点2"><documentation>任务节点2</documentation></userTask><sequenceFlow id="sid-300ac02e-dc56-4988-bdd4-fd94a5bb71f7" sourceRef="sid-9e62413f-e04f-4c81-8d0c-e73f17e125ec" targetRef="sid-d903cb09-56c2-4cfe-bd05-5ba0699539d0" name="顺序流2"><documentation>顺序流2了</documentation></sequenceFlow><endEvent id="sid-ace3a923-023c-4226-875c-2a0a30cc1c50" name="结束"><documentation>结束了</documentation></endEvent><sequenceFlow id="sid-dbf73610-a8b4-4149-828e-4f5bc252c80d" sourceRef="sid-d903cb09-56c2-4cfe-bd05-5ba0699539d0" targetRef="sid-ace3a923-023c-4226-875c-2a0a30cc1c50" name="顺序流3"><documentation>顺序流3了</documentation></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_execution-listener"><bpmndi:BPMNPlane bpmnElement="task-listener" id="BPMNPlane_execution-listener"><bpmndi:BPMNShape id="shape-d4dd6424-1316-4c10-a8f9-f3c501cd4073" bpmnElement="sid-30244641-2a1c-43e5-af5b-e77db43488bf"><omgdc:Bounds x="-442.5" y="-6.75" width="30.0" height="30.0"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="shape-bcd8743b-6857-42d1-bc71-bd3bb6eed795" bpmnElement="sid-9e62413f-e04f-4c81-8d0c-e73f17e125ec"><omgdc:Bounds x="-388.0" y="-31.75" width="100.0" height="80.0"/></bpmndi:BPMNShape><bpmndi:BPMNEdge id="edge-d562b253-050f-4617-bbad-2e16950c15e4" bpmnElement="sid-1af5e647-b03c-4b12-807d-4171dfdf7ae9"><omgdi:waypoint x="-412.5" y="8.25"/><omgdi:waypoint x="-388.0" y="8.25"/></bpmndi:BPMNEdge><bpmndi:BPMNShape id="shape-cd7c00d6-f5f0-4afe-867c-6f576efc286d" bpmnElement="sid-d903cb09-56c2-4cfe-bd05-5ba0699539d0"><omgdc:Bounds x="-259.0" y="-31.75" width="100.0" height="80.0"/></bpmndi:BPMNShape><bpmndi:BPMNEdge id="edge-44a5c4d2-2ab7-48f1-adc7-c7a7a099800c" bpmnElement="sid-300ac02e-dc56-4988-bdd4-fd94a5bb71f7"><omgdi:waypoint x="-288.0" y="8.25"/><omgdi:waypoint x="-259.0" y="8.25"/></bpmndi:BPMNEdge><bpmndi:BPMNShape id="shape-05cc9b19-8019-471d-b31c-bb41c42e3529" bpmnElement="sid-ace3a923-023c-4226-875c-2a0a30cc1c50"><omgdc:Bounds x="-123.0" y="-6.75" width="30.0" height="30.0"/></bpmndi:BPMNShape><bpmndi:BPMNEdge id="edge-923723d0-33e3-4a62-bed9-bb16d4c9b175" bpmnElement="sid-dbf73610-a8b4-4149-828e-4f5bc252c80d"><omgdi:waypoint x="-159.0" y="8.25"/><omgdi:waypoint x="-123.0" y="8.25"/></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>

创建监听器

class方式
public class MyTaskListener1 implements TaskListener {@Overridepublic void notify(DelegateTask delegateTask) {System.out.println("========================MyTaskListener1========================");System.out.println("delegateTask.getProcessInstanceId() = " + delegateTask.getProcessInstanceId());System.out.println("delegateTask.getTaskDefinitionKey() = " + delegateTask.getTaskDefinitionKey());System.out.println("delegateTask.getEventName() = " + delegateTask.getEventName());System.out.println("delegateTask.getName() = " + delegateTask.getName());System.out.println("delegateTask.getAssignee() = " + delegateTask.getAssignee());System.out.println("delegateTask.getVariables() = " + delegateTask.getVariables());}
}
expression方式
@Component
public class MyTaskListener2 {public void notify(DelegateTask delegateTask) {System.out.println("========================MyTaskListener1========================");System.out.println("delegateTask.getProcessInstanceId() = " + delegateTask.getProcessInstanceId());System.out.println("delegateTask.getTaskDefinitionKey() = " + delegateTask.getTaskDefinitionKey());System.out.println("delegateTask.getEventName() = " + delegateTask.getEventName());System.out.println("delegateTask.getName() = " + delegateTask.getName());System.out.println("delegateTask.getAssignee() = " + delegateTask.getAssignee());System.out.println("delegateTask.getVariables() = " + delegateTask.getVariables());}
}
delegateExpression
@Component
public class MyTaskListener3 implements TaskListener {@Overridepublic void notify(DelegateTask delegateTask) {System.out.println("========================MyTaskListener1========================");System.out.println("delegateTask.getProcessInstanceId() = " + delegateTask.getProcessInstanceId());System.out.println("delegateTask.getTaskDefinitionKey() = " + delegateTask.getTaskDefinitionKey());System.out.println("delegateTask.getEventName() = " + delegateTask.getEventName());System.out.println("delegateTask.getName() = " + delegateTask.getName());System.out.println("delegateTask.getAssignee() = " + delegateTask.getAssignee());System.out.println("delegateTask.getVariables() = " + delegateTask.getVariables());}
}

测试流程

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class TestActivityTaskListener {@Autowiredprivate RepositoryService repositoryService;@Autowiredprivate RuntimeService runtimeService;@Autowiredprivate TaskService taskService;private static final String PROCESS_INSTANCE_ID = "5b10eb17-3b4d-11ee-982e-18c04dcd4aee";@Testpublic void deployProcess() {Deployment deploy = repositoryService.createDeployment().addClasspathResource("processes/task-listener.bpmn20.xml").deploy();System.out.println("deploy = " + deploy);}@Testpublic void startProcess() {Map<String, Object> variables = new HashMap<>();variables.put("applyUserId", "user123456");variables.put("candidateUsers", CollectionUtil.newArrayList("zhangsan", "lisi", "wangwu"));String processDefinitionKey = "task-listener";String businessKey = processDefinitionKey + ":" + "100001";ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, businessKey, variables);System.out.println("processInstance = " + processInstance);// 输出当前任务列表this.printTaskList(processInstance.getId());}@Testpublic void completeTask() {// 查询任务Task task = taskService.createTaskQuery().processInstanceId(PROCESS_INSTANCE_ID).singleResult();taskService.complete(task.getId());}private void printTaskList(String processInstanceId) {// 输出当前任务列表taskService.createTaskQuery().processInstanceId(processInstanceId).orderByTaskCreateTime().asc().list().forEach(k -> {System.out.println("===================任务列表===================");System.out.println("任务ID = " + k.getId());System.out.println("任务名称 = " + k.getName());System.out.println("任务负责人 = " + k.getAssignee());System.out.println("任务创建时间 = " + k.getCreateTime());System.out.println("===================身份列表===================");// 输出用户身份关系列表taskService.getIdentityLinksForTask(k.getId()).forEach(link -> {System.out.println("link.getType() = " + link.getType());System.out.println("link.getUserId() = " + link.getUserId());System.out.println("link.getGroupId() = " + link.getGroupId());System.out.println("link.getTaskId() = " + link.getTaskId());});});}}
部署流程

运行 deployProcess
在这里插入图片描述

启动流程

运行 startProcess,可以看到首先监听到任务节点1分配的事件,然后再是创建任务事件(因为有多个监听器顺序不一致)。
在这里插入图片描述

完成任务

运行 completeTask,首先完成的是节点1任务,可以看到监听器监听到任务完成的事件。
在这里插入图片描述

http://www.hengruixuexiao.com/news/42825.html

相关文章:

  • 网站免费在线观看网站建设报价单模板
  • 做导购网站 商品电子商务平台建设
  • 科技特长生有哪些科目网站建设seo
  • vue快速搭建网站沈阳专业seo关键词优化
  • 小视频解析网站怎么做福建优化seo
  • oa办公系统是什么系统兰州seo培训
  • 有哪些网站有收录做红酒的商行seo排名软件价格
  • 广州天河网站制作seo网站推广培训
  • 提供常州网站建设公司全球网站排名前100
  • 濮阳网站设计公司下店拓客团队
  • 做网站英文编辑有前途吗提交网站收录入口
  • 直播平台推广seo短视频加密路线
  • 做企业网站用什么cms最全bt搜索引擎
  • 怎样用jsp做网站 新手教程中国新闻社
  • wordpress同步发布优化搜索曝光次数的方法
  • 景安香港主机可以做几个网站百度做广告推广怎么样
  • 网站建设不开单什么是seo搜索
  • 网站建设维护公司资质设计公司
  • 网站的规划与建设课程设计seo白帽优化
  • 有可以花钱让人做问券的网站吗it培训班真的有用吗
  • 网站建设女王节文案线上营销推广方式有哪些
  • 网站设计模式有哪些同城推广平台有哪些
  • aardio 网站开发广告推广平台赚取佣金
  • 学校的网站怎么做的好企业培训考试
  • 怎么学习做网站网络营销有什么方式
  • 中小学门户网站建设网络营销形式
  • 企业怎么在网站上做宣传搜索引擎优化公司排行
  • wordpress安装显示空白页seozhun
  • 网站提交链接入口高端营销型网站
  • 服务类网站模板网络推广公司是做什么的