调用活动 - 表达 - 如何

时间:2016-04-14 14:59:53

标签: java spring activiti

我有一个关于如何解决我手中的这种情况的问题。问题是,我试图定义一个自定义进程,以便重复特定的功能,但使用“父”进程指定的动态表达式。让我们将自定义进程称为“B”,将调用B活动的进程称为“A”,然后......在我的A进程中,我调用B进程,指定最近在服务任务中使用的目标表达式“customExpression” B过程。问题是我不知道如何在服务任务中使用这个“customExpression”。

在A流程中

<process id="A" name="A" isExecutable="true">
<startEvent id="startevent1" name="Start"></startEvent>
<callActivity id="callactivity1" name="Custom Service Task" calledElement="B">
  <extensionElements>
    <activiti:in sourceExpression="${customSpringService.execute(execution)}"></activiti:in>
  </extensionElements>
</callActivity>
<sequenceFlow id="flow10" sourceRef="startevent1" targetRef="callactivity1"></sequenceFlow>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow11" sourceRef="callactivity1" targetRef="endevent1"></sequenceFlow>
</process>

在B流程中

<process id="B" name="B" isExecutable="true">
<startEvent id="startevent1" name="Start"></startEvent>
<serviceTask id="serviceTask1" name="Service Task 1" activiti:expression="${customExpression}"></serviceTask>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow7" sourceRef="startevent1" targetRef="serviceTask1"></sequenceFlow>
<sequenceFlow id="flow8" sourceRef="serviceTask1" targetRef="endevent1"></sequenceFlow>
</process>

我希望能够很好地解释自己...... 非常感谢您的支持。

https://forums.activiti.org/content/call-activity-expression-how

已发布问题

2 个答案:

答案 0 :(得分:1)

最后,我尝试了Mark(来自activiti论坛)提出的解决方案,并且它完美运行......

这是服务的代码

LIBRARY

} 这是服务任务中的一个

$('iframe').contents()

我没有直接指定“$ {accountService.getAccount(execution)}”作为方法参数,而是使用从父进程传递的变量。

答案 1 :(得分:0)

查看文档:{​​{3}} 在这里,您可以找到如何在ServiceTasks中使用表达式的解释。

我认为你错过了callactivty的用法。请看一下规格: http://www.activiti.org/userguide/#bpmnJavaServiceTask