如何在Camunda中的Javascript脚本任务中使用序列化变量

如何在Camunda中的Javascript脚本任务中使用序列化变量,javascript,java,camunda,script-task,Javascript,Java,Camunda,Script Task,考虑使用如下流程变量: Object type name: java.util.ArrayList Serialization Data Format: application/x-java-serialized-object Value: [{"id": 1, "name": "John"}, {"id": 2, "name": "Jane"] 我正试图在一个脚本任务中编写一个Javascript,它提取一个变量,如上面所述,并使用它。我已经走了多远: var arr = execution

考虑使用如下流程变量:

Object type name: java.util.ArrayList
Serialization Data Format: application/x-java-serialized-object
Value: [{"id": 1, "name": "John"}, {"id": 2, "name": "Jane"]
我正试图在一个脚本任务中编写一个Javascript,它提取一个变量,如上面所述,并使用它。我已经走了多远:

var arr = execution.getVariableTyped("arr", true);

for (var i=0; arr.size(); i++) {
    var item = arr.get(i);
    //Do somthing with `item`
}
//Add an object to the end of the array
arr.add({ "id": 3, "name": "Jack" });

execution.setVariable("arr", arr);
但当我运行此命令时,它会抛出以下错误:

无法完成任务xxx:无法评估脚本:类型错误: ObjectValue[value=[{“id”:1,“name”:“John”},{“id”:2,“name”: “Jane”]],isDeserialized=true, serializationDataFormat=应用程序/x-java-serialized-object, objectTypeName=java.util.ArrayList,serializedValue=X chars]没有 这样的函数“大小”在


在这种情况下,表示它同时具有
大小
添加
。发生了什么事?

检查您正在调用的Camunda API:
(DelegateExecution实现VariableScope)。此方法返回的实例


使用
execution.getVariableType(“arr”,true).getValue();
execution.getVariable(“arr”);
访问实际的数组列表。

谢谢。您还知道如何用Javascript处理
变量
类吗?我尝试了
org.camunda.bpm.engine.variable.Variables
但它说找不到类!?我想调用
org.camunda.bpm.engine.variable.objectValue(v)
,但我不能!