日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 activiti5第三弹-----------脚本任务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先是流程定義圖:

重點關(guān)注一下流程節(jié)點中 Script Task 節(jié)點的 properties中的Main config

這里可以選擇不同的腳本語言,由于其他的部怎么會··就用javascript來吧。

從圖中可以看出只是定義了一個變量x,它的值為 a;

很多人都說這樣定義了這個變量以后就可以在流程中獲得這個變量。所以我進行了測試。結(jié)果如下:

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")));}}

斷言的結(jié)果是錯誤的:


輸出一下的話,可以看到居然是null,鼓搗了半天以后,在xml中發(fā)現(xiàn)了這樣的語句---->

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

標紅的部分貌似在表示,自動把標量方到流程中在這里是被禁止的,那就改為true吧。結(jié)果還是有問題。測試結(jié)果是這樣的


額,這個錯誤找了半天也沒有明白是怎么個意思。自己水平有限,希望有知道的大神賜教。怎么辦呢,然后就看了API,然后看到activiti自己都說這個怎么怎么存在問題,然后說什么最佳實踐是把那個設(shè)置為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());}}
測試結(jié)果:



總結(jié)

以上是生活随笔為你收集整理的activiti5第三弹-----------脚本任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。