2013-06-04 8 views
2

Когда какой-либо документ вставлен в папку, я пытаюсь запустить собственный рабочий процесс с прикрепленным к нему документом. Я использую сообщество Alfresco v4.2.Как запустить рабочий процесс Alfresco с правилом, включая документ

Wokflow отлично работает, если я выбираю документ, затем «Начать рабочий процесс». Документ правильно добавлен в рабочий процесс, и я могу его завершить.

Мое правило на месте и выполнить следующий сценарий, когда какой-либо документ вставлен (код в комментариях, что я пробовал):

//var workflow = actions.create("start-workflow"); 
var wfdef = workflow.getDefinitionByName("activiti$reviewNewFile"); 
//workflow.parameters["bpm:workflowDescription"] = document.name; 
//workflow.parameters.workflowName = "activiti$reviewNewFile"; 
if(wfdef) 
{ 
    var wfparams = new Array(); 
    wfparams["bpm:workflowDescription"] = document.name; 
    var wfpackage = workflow.createPackage(); 
    //var docNode = search.findNode(document.nodeRef); 
    wfpackage.addNode(document); 
    //wfpackage.addNode(docNode); 
    wfdef.startWorkflow(wfpackage,wfparams); 
} 

//workflow.execute(document); 

На данный момент сценарий хорошо выполнен, рабочий процесс является но ни один документ не добавлен в рабочий процесс. Ссылка на документ в скрипте не является нулевой, так как имя документа правильно выводится в рабочем процессе.

Я прочитал эти две должности уже, но ни один из них не имеют какой-либо помощи:

EDIT: Я был в состоянии сузить его вниз. Моя первая задача в рабочем процессе назначается группе кандидатов, а не отдельному человеку. Название группы извлекаются следующим фрагментом кода:

<extensionElements> 
    <activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionListener"> 
     <activiti:field name="script"> 
      <activiti:string> 
       execution.setVariable('wf_secretairesGroup', groups.getGroup('Secretaires').getFullName()); 
      execution.setVariable('wf_responsablesGroup', groups.getGroup('Responsables').getFullName()); 
      </activiti:string> 
     </activiti:field> 
    </activiti:executionListener> 
</extensionElements> 

Часть моего BPMN файл:

<startEvent id="start" name="Start" activiti:formKey="wf:reviewNewFile" /> 

<sequenceFlow id="flow1" name="" sourceRef="start" targetRef="addCommentTask"></sequenceFlow> 

<userTask id="addCommentTask" name="Add comment Task" activiti:candidateGroups="${wf_secretairesGroup}" activiti:formKey="wf:addCommentTask"> 
    <extensionElements> 
    <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener"> 
     <activiti:field name="script"> 
     <activiti:string> 
      execution.setVariable('bpm_comment', task.getVariable('bpm_comment')); 
      execution.setVariable('wf_initiator', person); 
     </activiti:string> 
     </activiti:field> 
    </activiti:taskListener> 
    </extensionElements> 
</userTask> 

Я попытался изменить addCommentTask, заменив candidateGroup с правопреемником, присвоив его администратор, и она работала ... По-прежнему не знаю, почему это работает так, а не другое.

ответ

3

И если вы делаете следующее (изменить массив объекта):

var wfdef = workflow.getDefinitionByName("activiti$reviewNewFile"); 
var wfparams = new Object(); 
wfparams["bpm:workflowDescription"] = document.name; 
wfparams["bpm:assignee"] = people.getPerson("admin"); 
var wfpackage = workflow.createPackage(); 
wfpackage.addNode(document); 
wfdef.startWorkflow(wfpackage,wfparams); 
+0

ничего не меняет. Парамы работают, так как у меня есть имя документа, отображаемое в описании рабочего процесса. – Anth0

+0

Было глупо глупо. Этот код работает. Моя проблема заключалась в том, что некоторые из моих тестовых пользователей в назначенной группе не имели прав на папку внутри частного сайта ... Это объясняет, почему при назначении непосредственно администратору это сработало. – Anth0

+1

Привет, Нет проблем :) –

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

  • Нет связанных вопросов^_^