这是我为Java开发人员准备的内容,我认为这是我看到的博客文章
编辑: https://community.alfresco.com/thread/224336-result-variable-in-javadelegate
结果变量
选项(1) C在XML中使用表达式语言(EL)
<serviceTask id="serviceTask" activiti:expression="#{myService.toUpperCase(myVar)}" activiti:resultVariable="myVar" />
Java的
public class MyService { public String toUpperCase(String val) { return val.toUpperCase(); } }
返回的String分配给activiti:resultVariable
直接黑客数据模型
选项(2) C使用执行环境
public class MyService implements JavaDelegate { public void execute(DelegateExecution execution) throws Exception { String myVar = (String) execution.getVariable("myVar"); execution.setVariable("myVar", myVar.toUpperCase()); } }
相比之下,我们正在通过一个 execution ,我们正在从中汲取价值并将它们弄平并将它们放回去。
这有点类似于Servlet获取我们在HTMLRequest中传递的值,然后基于它们在响应中执行不同的操作。 (一个更强大的类比将是一个servlet过滤器)
因此,在您的特定实例中(使用表达式语言(EL)来说明如何调用shell脚本)可能是最简单和最简单的。
当然,您想要传递的值必须是进程知道的值(否则它如何传递一个没有变量的值?)
希望有所帮助。 :d
通常在BPM引擎中,您可以将侦听器挂钩到这些类型的事件。在Activiti中,如果要将其嵌入到服务中,则可以添加额外的EventListener,然后记录将包含当前登录用户的taskCompleted事件。 https://www.activiti.org/userguide/#eventDispatcher
希望这可以帮助。