activiti5第三弹-----------脚本任务

首先是流程定义图:

重点关注一下流程节点中 Script Task 节点的 properties中的Main config

这里可以选择不同的脚本语言,由于其他的部怎么会··就用javascript来吧。

从图中可以看出只是定义了一个变量x,它的值为 a;

很多人都说这样定义了这个变量以后就可以在流程中获得这个变量。所以我进行了测试。结果如下:

package final_activiti.progress;import org.activiti.engine.impl.test.PluggableActivitiTestCase;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.engine.test.Deployment;
import org.junit.Test;public class ScriptTaskTest extends PluggableActivitiTestCase {@Test@Deployment(resources = "final_activiti/progress/ScriptTask.bpmn")public void test() {ProcessInstance p = runtimeService.startProcessInstanceByKey("javascript");Task task = taskService.createTaskQuery().singleResult();assertTrue("a".equals(taskService.getVariable(task.getId(), "x")));}}

断言的结果是错误的:


输出一下的话,可以看到居然是null,鼓捣了半天以后,在xml中发现了这样的语句---->

<scriptTask id="scripttask1" name="Script Task" scriptFormat="javascript" activiti:autoStoreVariables="false">
 <script>var x ="a";
 </script>
 </scriptTask>

标红的部分貌似在表示,自动把标量方到流程中在这里是被禁止的,那就改为true吧。结果还是有问题。测试结果是这样的


额,这个错误找了半天也没有明白是怎么个意思。自己水平有限,希望有知道的大神赐教。怎么办呢,然后就看了API,然后看到activiti自己都说这个怎么怎么存在问题,然后说什么最佳实践是把那个设置为fasle,手动把变量加入到流程中。然后重新鼓捣··自己只能做到下面这种程度了,至于那个自动,有待研究,呵呵。


execution.setVariable("x",x);这句话就是把变量放到流程中的语句。

然后是测试代码

package final_activiti.progress;import org.activiti.engine.impl.test.PluggableActivitiTestCase;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.engine.test.Deployment;
import org.junit.Test;public class ScriptTaskTest extends PluggableActivitiTestCase {@Test@Deployment(resources = "final_activiti/progress/ScriptTask.bpmn")public void test() {ProcessInstance p = runtimeService.startProcessInstanceByKey("javascript");Task task = taskService.createTaskQuery().singleResult();assertTrue("a".equals(taskService.getVariable(task.getId(), "x")));assertTrue(10D == (Double) taskService.getVariable(task.getId(), "y"));taskService.complete(task.getId());assertProcessEnded(p.getId());}}

测试结果:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter之性能测试类型

Jmeter之性能测试类型 pipe-clean test在测试环境预先跑确定脚本准确性单用户跑获取baseline容量测试经典的性能测试类型获取系统稳定运行时最大的吞吐量/并发数/响应时间时尽量模拟真实情况&#xff0c;比如加入用户思考时间等压力测试把系统弄挂除非系统无响应&#xff0c;响…

activiti5第四弹----serviceTask中的java服务任务

activiti.cfg.xml内容&#xff1a; <?xml version"1.0"?> <beans default-lazy-init"false"xsi:schemaLocation" http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://ww…

1 ~ express ~ 初始化。安装第三方模块express。中间件

一&#xff0c;初始化 二&#xff0c;安装第三方模块express 三&#xff0c;安装中间件 1&#xff0c;bodyParser : 解析 post 请求数据 2&#xff0c;cookies : 读写 cookie 3&#xff0c;swig &#xff1a;模板解析引擎 4&#xff0c;mongoose &#xff1a; 操作 mongodb 数据…

activiti5第五弹 serviceTask中的webserviceTask 以及 shellTask

web service task是BPMN2.0中的一种任务类型&#xff0c;在activiti5中它并没有专门的标签表示&#xff0c;而是使用了service task 来表示。而且有很多要配置的内容是无法用图形化工具来完成的。要使用web service task&#xff0c;当然要先有web service。所以首先要编写一个…

bloc

示例分为两个文件 main.dart import package:flutter/material.dart;import bloc.dart;void main()>runApp(MyApp());class MyApp extends StatelessWidget { override Widget build(BuildContext context) { return MaterialApp( home: HomePage(), ); }}cla…

activiti5第六弹 手动任务、接收任务、邮件任务

手动任务和接收任务几乎不在程序中做什么事情---只是在流程的历史中留下一点痕迹&#xff0c;表明流程是走过某些节点的。。。而且这两个任务是无法用taskservice查询到的 但是接收任务比手动任务多一个功能&#xff0c;就是确认功能。。。 activiti.cfg.xml配置 <?xml v…

手把手教你用原始方式上传项目至GitHub

小编GitHub&#xff1a;https://github.com/ds1889 首先你得注册一个自己的GitHub账号&#xff0c;注册网址&#xff1a;https://github.com/join 有了自己的账号以后&#xff0c;就可以进行登录&#xff0c;开始创建一个新的项目 创建一个新的项目&#xff0c;填写项目名称&am…

office如何快速删除重复数据

1、首先打开如下文档&#xff0c;在A列删除重复日期星期一&#xff0c;星期二&#xff1b; 2、选中编号栏&#xff0c;&#xff21;1-&#xff21;10&#xff0c;如下图: 3、点击数据——删除重复项&#xff1b;如下图红色剪头所指: 4、删除后&#xff0c;重复项就被删除成功。…

亲依止缘

前前诸善法对后后诸善法以亲依止缘为缘。前前诸善法对后后诸不善法有时以亲依止缘为缘。前前诸善法对后后诸无记法以亲依止缘为缘。 前前诸不善法对后后诸不善法以亲依止缘为缘。前前诸不善法对后后诸善法有时以亲依止缘为缘。前前诸不善法对后后诸无记法以亲依止缘为缘。 前前…

Activiti5第七弹,自己实现一个ProcessEngineConfiguration同时自定义拦截器

首先是我自己定义的MyProcessEngineConfiguration的activiti.cfg.xml文件的内容 <?xml version"1.0"?> <beans default-lazy-init"false"xsi:schemaLocation" http://www.springframework.org/schema/util http://www.springframework.org…

SQL中and和or的区别是?

今天有这样得一个需求&#xff0c;如果登陆人是客服的话&#xff0c;会查询订单是’该客服’以及还没有匹配客服的&#xff0c;刚开始想的是直接在sql语句上拼写 or assigned_id is null 的&#xff0c;测试了一下发现这样的话&#xff0c;前面的其他条件都没有用了 这样的话…

Java编程设计---数组Arrays

数组的的定义 数组是存放在连续存储空间的元素集合 数组定义的格式&#xff1a; int[] arrnew int[5]; int&#xff1a;数组元素的数据类型&#xff0c;可以是基本数据类型&#xff0c;也可以是引用 arr&#xff1a;数组名称 5&#xff1a;数组中元素个数 第一步&#xff1a;定…

装饰器模式 decorator

所有的说明和解释都在代码中有注释来标明 package mode.decorator;/*** * 这里定义一个接口&#xff0c;在接口中定义我们要执行的操作。* * 以后所有的装饰器以及我们要装饰的对象都要实现这个接口。有了这样的大前提&#xff0c;我们就可以其用 Sourcable来定义我们的装饰器和…

bzoj1176: [Balkan2007]Mokia cdq

链接 bzoj 思路 cdq入门题&#xff0c;拆成4个矩阵&#xff0c;然后cdq。 代码 /**************************************************************Problem: 1176User: gryz2016Language: CResult: AcceptedTime:2652 msMemory:13012 kb *************************************…

桥接模式(Bridge)

桥接模式&#xff0c;就是把向多个方向发展的变化由继承的实现变为了耦合的实现。 package mode.bridge.test;/*** * 首先是一个抽象的咖啡类&#xff0c;有一个抽象的倒咖啡的方法* * 在这个类中有一个咖啡伴侣的属性&#xff0c;为什么会有这个属性。因为我们在冲咖啡的时候可…

python 中的if else 和in

python中if else 和in的用法php python a3 //python中‘:’是引入一个缩进的代码块 if a1:print(1) elif a3:print(3) else:print("查不到") python中的in 查看一个对象是否在另一个对象中 a[1,2,3,4,5,6] b3 if b in a:print("b在a中") else: 转载于:http…

15年1月的每天小程序

package everyworkdayprogramming._2015_1_04;public class Java_1_4 {/*** * * 打印出所有的水仙花数&#xff0c;所谓水仙花数是指一个三位数&#xff0c;其各位数字立方和等于该数本身。* * */public static void main(String[] args) {int bit 0, ten 0, hun 0;for (int…

SpringBoot整合升级Spring Security 报错 【The request was rejected because the URL was not normalized】...

前言 最近LZ给项目框架升级&#xff0c; 从Spring1.x升级到Spring2.x, 在这里就不多赘述两个版本之间的区别以及升级的原因。 关于升级过程中踩的坑&#xff0c;在其他博文中会做比较详细的记录&#xff0c;以便给读者参考&#xff0c;不要掉进同样的坑里。 这里我们讨论一个关…

个人测试作业

作业所属课程&#xff1a;https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业地址&#xff1a;https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3340 作业目标&#xff1a;测试其他同学项目 姓名&#xff1a;潘云峰201731062423 所…

安装Nvida 显示环境

查看是否能正确加载nvidia 驱动 在终端输入 &#xff08;glxinfo 需要安装mesa-utils&#xff09; 如果可以正确加载了nvidia驱动 那么在输入的内容中可以看到NVIDIA 字样 如果GPU是IntelGPU 正确加载类似 卸载 老版本 驱动 sudo apt-get purge nvidia* 把显卡驱动加入PPA sudo…