【问题标题】:Alfresco check for adding filesAlfresco 检查添加文件
【发布时间】:2018-11-06 23:13:16
【问题描述】:

有一个审核和批准工作流程 开始表格是附加文件和选定的执行者(Package ItemsPeople selection)。 然后创建一个任务分配给之前选择的执行者。 每个执行者都可以看到分配给它的任务和文件附件。

我需要检查添加文件。虽然执行者尚未添加文件,但它无法批准该任务。 我在创建任务时创建了计数器taskListener event="create"。 他计算发送给执行者的文件。 然后我在任务完成时创建了另一个计数器taskListener event="complete",它还计算文件。 然后我比较这两个计数器,如果它们相等 这意味着执行者没有附加文件,他看到了错误。 但是这种方法只适用于批准任务的第一个执行者。 其余的执行者已经可以在不添加文件的情​​况下批准任务。

我不知道是什么问题。

这是我实现它的代码:

<userTask id="userTask5" name="Revies" activiti:assignee="${zvernennya_reviewnachassignee.properties.userName}" activiti:formKey="zvernennya:reviewnach">
      <documentation>Review task</documentation>
      <extensionElements>
        <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string><![CDATA[
        if (typeof bpm_workflowDueDate != 'undefined') task.dueDate = bpm_workflowDueDate;
        if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;;    
        var count=0;
        for (var i = 0; i < bpm_package.children.length; i++) 
        { 
        count++;
        }
        execution.setVariable ('count', count);
]]></activiti:string>
          </activiti:field>
        </activiti:taskListener>
        <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string><![CDATA[
        if(task.getVariableLocal('zvernennya_reviewnachtransitions') == 'Approve') {
        execution.setVariable('zvernennya_reviewnachapprovalcount', zvernennya_reviewnachapprovalcount + 1);
        }   
                           var count_new=0;
                           for (var i = 0; i < bpm_package.children.length; i++) 
                           {  
                           count_new++;
                           }
                           if (count==count_new) {    
                                var message = "\n\nAttach files!!\n";
                                 throw new Error(message + "\n");
                            }   
]]></activiti:string>
          </activiti:field>
        </activiti:taskListener>
      </extensionElements>
      <multiInstanceLoopCharacteristics isSequential="false" activiti:collection="zvernennya_executers" activiti:elementVariable="zvernennya_reviewnachassignee">
        <completionCondition>${zvernennya_reviewnachapprovalcount &gt;= zvernennya_reviewnachrequiredapprovalcount}</completionCondition>
      </multiInstanceLoopCharacteristics>
    </userTask>

【问题讨论】:

    标签: package listener alfresco


    【解决方案1】:

    我认为您需要在第二个任务侦听器(“完成”)中重新初始化变量“计数”。像这样:

    var count = execution.getVariable ('count');
    var count_new= bpm_package.children.length;
    if (count==count_new) {    
       var message = "\n\nAttach files!!\n";
       throw new Error(message + "\n");
    }  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多