activiti 中的service
1. script task 执行脚本任务(java自身脚本不在此列 如需关注看 javaservice)
scriptFormat :
1. javascript(JDK 自带的脚步解析特性) 虽然早就知道 但是还未去看过
2. groovy -- groovy 脚本
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.1</version>
</dependency>
添加流程变量
<script>
def scriptVar = "test123"
execution.setVariable("myVar", scriptVar) // 推荐使用
</script>
不支持的变量名称列表
out, out:print, lang:import, context, elcontext
service 返回值 使用的是 activiti:resultVariable 这里使用的脚本引擎是juel
<scriptTask id="theScriptTask" name="Execute script" scriptFormat="juel" activiti:resultVariable="myVar">
<script>#{echo}</script>
</scriptTask>
2. java service task 顾名思义 java 的业务处理 这个可能是最常用的了 扩展啥的
首先 定义的javaservice 需要继承
org.activiti.engine.delegate.JavaDelegate 或者 org.activiti.engine.impl.pvm.delegate.ActivityBehavior
指定javaservice 关联的对象
<serviceTask id="javaService"
name="My Java Service Task"
activiti:class="org.activiti.MyJavaDelegate" />
可以使用 表达式 activiti:delegateExpression(要求继承以上接口) 和 activiti:expression(无接口要求)
<serviceTask id="javaService"
name="My Java Service Task"
activiti:expression="#{printer.printMessage(execution, myVar)}" />
其中 myVar 过程变量名称 可以传送给指定的printer.printMessage 方法
-- 表名称解析,目前已经增加到25张表
http://shusanzhan.iteye.com/blog/2009357