java 服务任务 有三种实现方式1. activiti:class 要实现 javaDelegate或ActivityBehavior
2. activiti:delegateExpression 也要实现上面两个类
3. activiti:expression 直接调用javaBean第一种方式在前面博客中已经实现过了,这里实现一下2和3这两个方式activiti:delegateExpression的实现方式:1. bmpn中的serviceTask中引用类
<process id="leaveBill" name="leaveBillprocess" isExecutable="true"><startEvent id="startevent1" name="Start"></startEvent><endEvent id="endevent1" name="End"></endEvent><userTask id="usertask1" name="User Task"></userTask><sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow><serviceTask id="servicetask1" name="Service Task"></serviceTask><sequenceFlow id="flow2" sourceRef="usertask1" targetRef="servicetask1" activiti:delegateExpression="${myDelegate}"></sequenceFlow><sequenceFlow id="flow3" sourceRef="servicetask1" targetRef="endevent1"></sequenceFlow>
</process>2. 定义myDelegate
public class Mydelegate  implements JavaDelegate,Serializable{@Overridepublic void execute(DelegateExecution execution) {System.out.println("自定义java类");}}RuntimeService runtimeService = engine.getRuntimeService();Deployment de = rs.createDeployment().addClasspathResource("test.bpmn").deploy();ProcessDefinition defi = rs.createProcessDefinitionQuery().deploymentId(de.getId()).singleResult();Map<String,Object> vars=new HashMap<>();
vars.put("myDelegate", new Mydelegate());
ProcessInstance pi = runtimeService.startProcessInstanceByKey(de.getKey(),vars);实现activiti:expression 直接调用javaBean
1. 定义bmpn文件<serviceTask id="servicetask2" name="Service Task"activiti:expression="${myBean.print(execution)}" ></serviceTask><sequenceFlow id="flow3" sourceRef="servicetask1" targetRef="servicetask2"
activiti:expression="${execution.setVariable('myName',myBean.name)}"></sequenceFlow>2. 定义自定义类public class MyBean  implements Serializable{private static final long serialVersionUID = 4888650505758480822L;private String name="test";public String getName() {return name;}public void print(Execution exe) {System.out.println("执行流id"+exe.getId());}
}RuntimeService runtimeService = engine.getRuntimeService();Deployment de = rs.createDeployment().addClasspathResource("test.bpmn").deploy();ProcessDefinition defi = rs.createProcessDefinitionQuery().deploymentId(de.getId()).singleResult();Map<String,Object> vars=new HashMap<>();
vars.put("myBean", new Mydelegate());
ProcessInstance pi = runtimeService.startProcessInstanceByKey(de.getKey(),vars);
runtimeService.getVariable(pi.getId(), "myName");

activiti java service task 服务任务相关推荐

  1. java 压缩jar 仓库,java服务安装(一):使用java service wrapper及maven打zip包

    tags: java jsw maven zip 1.概述 使用java开发程序,在windows平台下,一般有web应用,后台服务应用,桌面应用: web应用多数打成war包在web容器(如tomc ...

  2. JSW Java_java服务安装(一):使用java service wrapper及maven打zip包

    1.概述 使用java开发程序,在windows平台下,一般有web应用,后台服务应用,桌面应用: web应用多数打成war包在web容器(如tomcat,jetty等)中运行 桌面应用一般打成jar ...

  3. java service wrapper jar 服务_javaservice wrapper 实现注册服务功能

    2.例子1 a.创建HelloWorld_HOME文件夹,在下面编写例子程序HelloWorld.java public class HelloWorld { public static void m ...

  4. Java Service Wrapper 发布Java程序为Windows服务

    下载Windows版本:https://www.krenger.ch/blog/java-service-wrapper-3-5-37-for-windows-x64/ 转自:F:\java\bhGe ...

  5. Java Service Wrapper将java程序设置为服务

    有时候我们希望我们java写的程序作为服务注册到系统中,Java Service Wrapper(下面简称wrapper)是目前较为流行的将Java程序部署成Windows服务的解决方案, 本文将讨论 ...

  6. 集成新版(5.17+)Activiti Modeler与Rest服务

    声明: 此教程适合Activiti 5.17+版本. 本博客所涉及的内容均可在kft-activiti-demo中找到. 在线demo可以访问 http://demo.kafeitu.me:8080/ ...

  7. 《Activiti 深入BPM工作流》--- 什么是activiti的Service, 如何创建?

      <activiti 深入BPM工作流>--- 什么是activiti的Service, 如何创建? 一. 问题       上一篇博文中我们介绍了工作流引擎是如何创建的? (参考:如何 ...

  8. JAVA层HIDL服务的获取原理-Android10.0 HwBinder通信原理(九)

    摘要:本节主要来讲解Android10.0 JAVA层HIDL服务的获取原理 阅读本文大约需要花费19分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的 ...

  9. JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理(八)

    摘要:本节主要来讲解Android10.0 JAVA层HIDL服务的注册原理 阅读本文大约需要花费22分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的 ...

最新文章

  1. IP数据报-格式-分片
  2. python游戏贪吃蛇_Python写的贪吃蛇游戏例子_python
  3. gRPC amp; Protocol Buffer 构建高性能接口实践
  4. 如何在 SAP 电商云 Spartacus 代码里获取 Routes 路由信息
  5. 10个非常有用的CSS hack和技术
  6. jQuery自己定义绑定的魔法升级版
  7. Alats2种局部刷新的比较
  8. 【每日一读】EMNLP2020:如何提高事件检测(ED)模型的鲁棒性和泛化能力?
  9. 初识Vocaloid3
  10. 隐马尔可夫模型(Hidden Markov Model)
  11. 千万级敏感词过滤设计
  12. multisim变压器反馈式_基于Multisim 负反馈放大电路的仿真实验分析
  13. element ui实现抽屉效果_抽屉效果的导航菜单
  14. ABC182 E - Akari(扫描)
  15. 这个帖子记录一下java代码转换成易语言代码的坑[持续更新]
  16. C++各种运行时错误
  17. 苹果ppt_熬夜看完苹果发布会,我居然学会了用PPT做霓虹灯特效?!
  18. my firefox常用的插件介绍
  19. 三星Galaxy折叠屏系列及生态新品:打造智能生活方式
  20. I. chino with mates

热门文章

  1. EOS Dapps已成黑客攻击事件
  2. 【深度学习kears+tensorflow】电影评论分类:二分类问题
  3. 深度学习知识点总结:深度学习常用公式总结
  4. Halcon学习笔记-工业相机千兆网线和USB优劣对比
  5. 合同和协议的区别_合同的内容包括哪些,合同和协议的区别
  6. 在sqli-liabs学习SQL注入之旅(第十一关~第二十关)
  7. BUG之母——美国海军首位女少将传奇
  8. html大于号是什么选择器,什么是“”(大于号)CSS选择器是什么意思?什么是“”(大于号)CSS选择器是什么意...
  9. cgroup-net_cls子系统分析
  10. golang长连接和短连接的那些事儿