在转换期间更新Alfresco工作流属性

时间:2012-05-09 03:31:41

标签: alfresco

我想在任务转换中更新自定义工作流属性(workflowStatus)。 详细说明,当我批准工作流程时,workflowStatus更改为“已批准”,并且在我拒绝时,此属性更改为“已拒绝”。

我该怎么办? 使用Javascript或其他单独的java文件(如AlfrescoJavaScript)编写? 我使用jbpm工作流程。

1 个答案:

答案 0 :(得分: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");
    }

}