Alfresco:获取当前表单节点

时间:2015-07-30 15:54:32

标签: javascript workflow alfresco

我正在编写一个脚本来从当前表单(工作流程的开始)获取属性,其类型名称为 activiti $ docWorkflow 。我尝试过以下方法:



var workflow = search.luceneSearch("activiti$docWorkflow");
logger.log("Start Script - selectpeople: " + workflow.properties["docWorkflow:selectpeople"]);
logger.log("Start Script - selectgroup: " + workflow.properties["docWorkflow:selectgroup"]);




但是,工作流程只是以未定义的方式返回。如何重新编写搜索,或使用其他方法获取当前表单节点,以便检索其属性?

1 个答案:

答案 0 :(得分:1)

我相信您正在尝试在启动新工作流程后访问所有这些工作流程详细信息。

有两种方法可以解决这个问题。

1)在工作流启动期间甚至注入Java任务列表器类。您只需要创建该列表器类并按照以下方式将其注入processdefinition。

 <process id="customReviewPooled" name="Custom Review Workflow" isExecutable="true">
<userTask id="reviewTask" name="Review" activiti:candidateGroups="GROUP_Reviewer" activiti:formKey="custom:activitiReviewTask">
  <extensionElements>
    <activiti:taskListener event="create" class="com.abc.cms.bpm.YouClass"></activiti:taskListener>  
    </activiti:taskListener>
  </extensionElements>    
</userTask>
<endEvent id="endevent1" name="End"></endEvent>

2)注入Alfresco Javascript代码

 <process id="customReviewPooled" name="Group Review And Approve" isExecutable="true">
<userTask id="reviewTask" name="Review" activiti:candidateGroups="GROUP_Reviewer" activiti:formKey="customwf:activitiReviewTask">
  <extensionElements>
    <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
      <activiti:field name="script">
               <activiti:string>   

var outcome=task.getVariableLocal('custom_approveRejectOutcome');                       
                  logger.log("custom_approveRejectOutcome:"+outcome);
//Setting in local context
                  execution.setVariable('local_approveRejectOutcome', outcome);                     

            </activiti:string>
          </activiti:field>
    </activiti:taskListener>
  </extensionElements>    
</userTask>
<endEvent id="endevent1" name="End"></endEvent>