gpt4 book ai didi

alfresco - Activiti中如何通过CallActivity正确传递变量?

转载 作者:行者123 更新时间:2023-12-05 06:56:56 24 4
gpt4 key购买 nike

我正在从主进程调用子进程。我正在使用 Alfresco Activiti 7.1.0.M3.1。子进程开始时没有问题,但是当我尝试使用 execution.getVariables() 获取其中的变量时或者execution.getVariable("par1")我什么也得不到。 (空 map 或 null)这是我在主进程中设置变量的方式:

<callActivity id="callactivity1" name="Call activity" calledElement="myProcess2" >
<extensionElements>
<activiti:in source="var1i" target="par1"></activiti:in>
<activiti:out source="par1" target="var1i"></activiti:out>
<activiti:executionListener event="start" delegateExpression="${executionListener}"></activiti:executionListener>
<activiti:executionListener event="end" delegateExpression="${executionListener}"></activiti:executionListener>
</extensionElements>
</callActivity>

我在 callActivity 中找到了一个标志:callActivity.isInheritVariables() 带有这个标志 true(它不能从 Eclipse 中设置,只能从 java 中设置),然后是变量传递给子进程,但名称与主进程 (var1i) 中的名称相同。当我在子进程中更改此变量时,它不会返回到主进程。

我仔细阅读了文档:https://www.activiti.org/userguide/#bpmnCallActivity并完全按照上面写的去做。它似乎不起作用。

我看到了编写自己的实现 CallActivityBehavior 并将其设置为引擎的方法,它会起作用,但在文档中它应该在默认配置下起作用。我错过了什么?

最佳答案

首先,您已尝试通过以下方式访问根流程实例;

ExecutionEntity thisEntity = (ExecutionEntity) execution;

ExecutionEntity pi= (ExecutionEntityImpl) thisEntity.getRootProcessInstance()

请查看下面的链接

https://hub.alfresco.com/t5/alfresco-process-services/is-there-any-way-to-pass-transient-variable-to-inner-call/td-p/50564

关于alfresco - Activiti中如何通过CallActivity正确传递变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65009960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com