CamundaのProcess内のタイプJavascriptのScript Taskで2 つの配列をマージしようとしています。これが私のスクリプトです:
var arr1 = execution.getVariableTyped("arr1", true);
var arr2 = execution.getVariableTyped("arr2", true);
var merged = [];
for (var i1 in arr1) {
var found = false;
for (var i2 in merged) {
if (arr1[i1].id == merged[i2].id) {
found = true;
break;
}
}
if (!found) {
merged.push(arr1[i1]);
}
}
for (var i1 in arr2) {
var found = false;
for (var i2 in merged) {
if (arr2[i1].id == merged[i2].id) {
found = true;
break;
}
}
if (!found) {
merged.push(arr2[i1]);
}
}
execution.setVariable("arr1", merged);
execution.removeVariable("arr2");
上記のスクリプトが実行されると、例外がスローされます。
タスク b4fb856a-6a92-11e5-9774-005056c00008 を完了できません: 変数 'arr1' でオブジェクトをシリアライズできません: SPIN/JACKSON-JSON-01009
何故ですか?何が問題で、どうすれば修正できますか? とにかくそのようなスクリプトをデバッグする方法はありますか?