2012-05-09 1 views
0

Я хочу обновить пользовательские свойства рабочего процесса (workflowStatus) при переходе задачи. Подробно, когда я одобряю рабочий процесс workflowStatus, изменен на «Approved», и в то время, когда я отклоняю, это свойство изменилось на «Отклонено».Обновление свойств рабочего процесса Alfresco во время перехода

Как мне это сделать? Запись с помощью Javascript или другого отдельного java-файла, такого как AlfrescoJavaScript ?? Я использую рабочий процесс jbpm.

ответ

1

Теперь я могу решить эту проблему. Я пишу свой собственный класс действий для каждого перехода, например CustomWorkflowApprove и CustomWorkflowReject. В этом классе я обновляю свойства рабочего процесса. Часть моего processdefinition.xml выглядит следующим образом:

<task-node name="approve2"> 
<task name="dmswf:reviewTask2" swimlane="approver2"> 
    <event type="task-create"> 
     <script> 
      if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate; 
      if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority; 
     </script> 
    </event> 
</task> 
<transition name="approve" to="approved" > 
    <action class="org.ace.dms.bean.CustomWorkflowApprove"/> 
</transition> 
    <transition name="reject" to="rejected" > 
     <action class="org.ace.dms.bean.CustomWorkflowReject"/> 
    </transition> 
</task-node> 

Это мой класс CustomWorkflowAction.

package org.ace.dms.bean; 

    import org.alfresco.repo.workflow.jbpm.JBPMSpringActionHandler; 
    import org.jbpm.graph.exe.ExecutionContext; 

    public abstract class CustomWorkflowAction extends JBPMSpringActionHandler { 

     public static final String APPROVE = "Approved"; 
     public static final String REJECT = "Rejected"; 
     public static final String WORKFLOWSTATUS = "dmswf_workflowStatus"; 

     public void updateWorkflowProperties(ExecutionContext context, 
       String workflowStatus) { 
//update custom workflow property dmswf_workflowStatus, you can update any workflow property here 
      context.setVariable(WORKFLOWSTATUS, workflowStatus); 
     } 
    } 

Это мой класс CustomWorkflowApprove.

package org.ace.dms.bean; 

import org.jbpm.graph.exe.ExecutionContext; 
import org.springframework.beans.factory.BeanFactory; 

public class CustomWorkflowApprove extends CustomWorkflowAction { 

    @Override 
    public void execute(ExecutionContext context) throws Exception { 
     updateWorkflowProperties(context, CustomWorkflowAction.APPROVE); 
    } 

    @Override 
    protected void initialiseHandler(BeanFactory factory) { 
     // TODO Auto-generated method stub 
     System.out.println("Initialzize Handler"); 
    } 

} 
Смежные вопросы