我对activiti bpmn很陌生。我正在activiti中创建一个流程图。我正在寻找如何将用户名(已完成任务的用户)传递到shell任务参数中。这样我就可以获取并保存在数据库中完成该任务的用户。任何帮助都将不胜感激。提前谢谢。。。
gajydyqb1#
以下是我根据我看到的一篇博客文章为java开发人员准备的东西编辑:https://community.alfresco.com/thread/224336-result-variable-in-javadelegate结果变量选项(1)–在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(); } }
返回的字符串被分配给activiti:resultvariable直接破解数据模型选项(2)–使用执行环境java
public class MyService implements JavaDelegate { public void execute(DelegateExecution execution) throws Exception { String myVar = (String) execution.getVariable("myVar"); execution.setVariable("myVar", myVar.toUpperCase()); } }
相比之下,我们在这里被传递一个“执行”,我们从中提取值,然后旋转它们并将它们放回去。这有点类似于一个servlet,它接受我们在htmlrequest中传递的值,然后基于这些值在响应中执行不同的操作(更有力的类比是servlet过滤器)因此,在您的特定示例中(详细说明如何调用shell脚本),使用表达式语言(el)可能是最简单和最简单的。当然,您要传递的值必须是流程知道的值(否则它怎么能传递一个没有变量的值?)希望有帮助d
8iwquhpp2#
我用过activiti:tasklistener from activiti应用程序需要配置以下属性1。我更改了任务侦听器中的属性。2.我使用java脚本变量来保存task.assignee值。代码snip:-
d4so4syb3#
通常在bpm引擎中,您有一种方法将侦听器连接到这类事件。在activiti中,如果将其嵌入到服务中,可以添加一个额外的eventlistener,然后记录taskcompleted事件,该事件将包含当前登录的用户。https://www.activiti.org/userguide/#eventdispatcher希望这有帮助。
3条答案
按热度按时间gajydyqb1#
以下是我根据我看到的一篇博客文章为java开发人员准备的东西
编辑:https://community.alfresco.com/thread/224336-result-variable-in-javadelegate
结果变量
选项(1)–在xml中使用表达式语言(el)
java
返回的字符串被分配给activiti:resultvariable
直接破解数据模型
选项(2)–使用执行环境
java
相比之下,我们在这里被传递一个“执行”,我们从中提取值,然后旋转它们并将它们放回去。
这有点类似于一个servlet,它接受我们在htmlrequest中传递的值,然后基于这些值在响应中执行不同的操作(更有力的类比是servlet过滤器)
因此,在您的特定示例中(详细说明如何调用shell脚本),使用表达式语言(el)可能是最简单和最简单的。
当然,您要传递的值必须是流程知道的值(否则它怎么能传递一个没有变量的值?)
希望有帮助d
8iwquhpp2#
我用过activiti:tasklistener from activiti应用程序需要配置以下属性1。我更改了任务侦听器中的属性。2.我使用java脚本变量来保存task.assignee值。
代码snip:-
d4so4syb3#
通常在bpm引擎中,您有一种方法将侦听器连接到这类事件。在activiti中,如果将其嵌入到服务中,可以添加一个额外的eventlistener,然后记录taskcompleted事件,该事件将包含当前登录的用户。https://www.activiti.org/userguide/#eventdispatcher
希望这有帮助。