Переместить прикрепленный к документу задачи на другой узел - PullRequest
0 голосов
/ 15 ноября 2018

Приветствую сообщество, я использую alfresco 6.0.0 Community Edition, и я хотел бы переместить документ, прикрепленный к задаче, в другой узел при завершении события задачи.

Я нашел здесь https://community.alfresco.com/thread/204737-workflow-parallel-group-review-with-move об этой функции "перемещения", поэтому в настоящее время я делаю следующее:

  1. Запустить процесс
  2. Прикрепите элемент к задаче, которую я создал, используя

/ tasks / {taskId} / items (POST) метод API REST на открытом воздухе.

  1. Завершить задачу

Ниже часть моего 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 &lt; 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 - идентификатор узла созданной мной папки.

К сожалению, когда я завершаю эту задачу, я получаю следующую ошибку:

Тип узла: {http://www.alfresco.org/model/content/1.0}content, Аспекты узла: [{http://www.alfresco.org/model/content/1.0}auditable, {http://www.alfresco.org/model/system/1.0}referenceable, {http://www.alfresco.org/model/system/1.0}localized] 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: Не удалось найти перемещение функции в объекте Тип узла: {http://www.alfresco.org/model/content/1.0}content, Аспекты узла: [{* http://www.alfresco.org/model/content/1.0}auditable, {http://www.alfresco.org/model/system/1.0}referenceable, {http://www.alfresco.org/model/system/1.0}localized]. (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) at sun.reflect.GeneratedMethodAccessor1556.invoke (неизвестный источник) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498)

Может ли кто-нибудь пролить свет на это, пожалуйста? Любая помощь с благодарностью :)

1 Ответ

0 голосов
/ 15 ноября 2018

решаемые

Проблема заключалась в том, что функция move ожидает элемент узла, а не идентификатор, который я ему передал (String).

Фиксированный код ниже:

<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
             <activiti:string> 
                for (var i = 0; i &lt; 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>
...