问候社区,我正在使用alfresco 6.0.0 Community Edition,并且我希望将任务完成事件中附加到任务的文档移动到另一个节点。我从这里https://community.alfresco.com/thread/204737-workflow-parallel-group-review-with-move找到了有关此“移动”功能的信息,因此我目前正在做以下事情:开始过程将项目附加到使用 / tasks / {taskId} / items(POST) 露天REST API的方法。完成任务我将文件移动到的bpmn部分如下:<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener"> <activiti:field name="script"> <activiti:string> java.lang.System.out.println(bpm_package.children.length); for (var i = 0; i < bpm_package.children.length; i++){ bpm_package.children.move("b162be92-fb36-44f0-83c1-4432b8261c5a"); } </activiti:string> </activiti:field> </activiti:taskListener>其中b162be92-fb36-44f0-83c1-4432b8261c5a是我创建的文件夹的节点ID。不幸的是,当我完成此任务时,出现以下错误: 节点类型:{http://www.alfresco.org/model/content/1.0}内容,节点方面:[{http://www.alfresco.org/model/content/1.0}可引用,{http://www.alfresco.org/model/system/1.0}已本地化] 0.0 2018-11-15 15:43:24,936错误[impl.interceptor.CommandContext] [http-apr-8080-exec-3]关闭命令上下文时出错 org.activiti.engine.ActivitiException:调用TaskListener时发生异常:调用TaskListener时发生异常:10150807无法执行提供的脚本:10150806 TypeError:找不到函数在对象Node Type中移动:{http://www.alfresco.org/model/system/1.0} content,Node Aspects:[{}可审核,{http://www.alfresco.org/model/content/1.0}可引用,{http://www.alfresco.org/model/content/1.0}已本地化]。 (AlfrescoJS#10) 在org.activiti.engine.impl.persistence.entity.TaskEntity.fireEvent(TaskEntity.java:742) 在org.activiti.engine.impl.persistence.entity.TaskEntity.complete(TaskEntity.java:184) 在org.activiti.engine.impl.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:52) 在org.activiti.engine.impl.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:24) 在org.activiti.engine.impl.cmd.NeedsActiveTaskCmd.execute(NeedsActiveTaskCmd.java:59) 在org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24) 在org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:57) 在org.activiti.spring.SpringTransactionInterceptor $ 1.doInTransaction(SpringTransactionInterceptor.java:47) 在org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:131) 在org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45) 在org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31) 在org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40) 在org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35) 在org.activiti.engine.impl.TaskServiceImpl.complete(TaskServiceImpl.java:178) 在org.alfresco.rest.workflow.api.impl.TasksImpl.update(TasksImpl.java:821) 在sun.reflect.GeneratedMethodAccessor1556.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498)有人可以阐明这一点吗?任何帮助是极大的赞赏 :) (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 解决了问题在于move函数期望一个节点元素,而不是我传递给它的id(字符串)。固定代码如下:<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener"> <activiti:field name="script"> <activiti:string> for (var i = 0; i < bpm_package.children.length; i++){ var p = bpm_package; var doc = p.children[i]; var myNode = initiatorhome.childByNamePath("foldertomove/testFolder"); <!-- the names of the nodes under the root directory where the file should be moved to--> doc.move(myNode); } </activiti:string> </activiti:field> </activiti:taskListener> (adsbygoogle = window.adsbygoogle || []).push({});