如何在Camunda JavaScript服务任务中实例化'execution'对象?
我在论坛/文档()上看到了大量JavaScript引用和代码片段,如何在Camunda JavaScript服务任务中实例化'execution'对象?,javascript,bpmn,camunda,Javascript,Bpmn,Camunda,我在论坛/文档()上看到了大量JavaScript引用和代码片段,执行对象用于一系列有用的事情,例如: execution.createIncident(String incidentType, String configuration); execution.resolveIncident(String incidentId); execution.setVariable("name", value); 但是,我从未见过如何实例化执行对象的示例,当我尝试使用它时,会出现如下错误: The p
执行
对象用于一系列有用的事情,例如:
execution.createIncident(String incidentType, String configuration);
execution.resolveIncident(String incidentId);
execution.setVariable("name", value);
但是,我从未见过如何实例化执行
对象的示例,当我尝试使用它时,会出现如下错误:
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
var execution = connector.getParentVariableScope();
var activityId = execution.getCurrentActivityId();
无法启动该进程:
无法实例化流程定义Finswitch_Tx:14:42ef803b-67df-11e8-a127-0242ac11001b:无法
评估脚本:ReferenceError:“执行”未在第7行中定义
请给我一个如何实例化对该对象的访问的示例?从camunda获得的delegateExecution/delegateTask对象是非常复杂的上下文挂钩,camunda根据当前执行状态创建并将其交给挂钩(侦听器和委派)。 你不能自己创造。
如果您需要访问它,请将代码放在任务/ExecutionListener或委托中,这样您就可以自动访问它了。因此,在经过一段时间之后,您可以得到更全面的答案 根据,当前范围内可用的所有流程变量都可以通过名称向脚本提供,以及一些特殊变量:
执行
、任务
和连接器
文档中不清楚的是,连接器的输出变量中的脚本在子(连接器)作用域中运行,因此当connector
对象可用时,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
var execution = connector.getParentVariableScope();
var activityId = execution.getCurrentActivityId();
但是,我看到从中返回的对象实际上是一个AbstractVariableScope
,所以我不确定这可以用到什么程度
类似地,在任务侦听器的脚本中,任务实例可用,它对应于DelegateTask接口。此处可按如下方式访问执行
实例:
task.execution.getCurrentActivityId();
在执行侦听器中,可以直接访问执行
实例
execution.setVariable("testVar", true);
那么,这些对象是否仅在某些可以使用JavaScript的地方可用?可能它们不可用于JavaScript类型的服务任务输出变量<代码>连接器是可用的,它与执行一起被称为“特殊变量”之一