Pet*_*ter 5 javascript bpmn camunda
我在论坛/文档(比如这个)上看到很多 JavaScript 参考和代码片段,其中该execution对象用于一系列有用的事情,例如:
execution.createIncident(String incidentType, String configuration);
execution.resolveIncident(String incidentId);
execution.setVariable("name", value);
Run Code Online (Sandbox Code Playgroud)
但是,我在任何地方都没有看到如何实例化该execution对象的示例,当我尝试使用它时,我收到如下错误:
The process could not be started. :
Cannot instantiate process definition Finswitch_Tx:14:42ef803b-67df-11e8-a127-0242ac11001b: Unable to
evaluate script: ReferenceError: "execution" is not defined in <eval> at line number 7
Run Code Online (Sandbox Code Playgroud)
请给我一个如何实例化对该对象的访问的示例?
因此,在 Camunda 论坛上提供一些帮助后,对此问题有了更全面的回答。
根据此文档,当前范围内可用的所有流程变量都可按名称供脚本使用,以及一些特殊变量:execution、task和connector。
文档中不清楚的是连接器输出变量中的脚本在子(连接器)范围中运行,因此虽然connector对象可用,但对象execution不可用。执行实例上的一些功能可以像这样访问:
var execution = connector.getParentVariableScope();
var activityId = execution.getCurrentActivityId();
Run Code Online (Sandbox Code Playgroud)
但是,我看到返回的对象实际上是一个AbstractVariableScope,所以我不确定它可以使用到什么程度。
同样,在Task Listener的脚本中,任务实例是可用的,它对应于 DelegateTask 接口。这里execution可以按如下方式访问实例:
task.execution.getCurrentActivityId();
Run Code Online (Sandbox Code Playgroud)
在Execution Listener中,execution可以直接访问实例。
execution.setVariable("testVar", true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2497 次 |
| 最近记录: |