Когда какой-либо документ вставлен в папку, я пытаюсь запустить собственный рабочий процесс с прикрепленным к нему документом. Я использую сообщество 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);
На данный момент сценарий хорошо выполнен, рабочий процесс является но ни один документ не добавлен в рабочий процесс. Ссылка на документ в скрипте не является нулевой, так как имя документа правильно выводится в рабочем процессе.
Я прочитал эти две должности уже, но ни один из них не имеют какой-либо помощи:
- start workflow using alfresco java script api or through web script
- How to start an Alfresco Workflow through Javascript adding a resource
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 с правопреемником, присвоив его администратор, и она работала ... По-прежнему не знаю, почему это работает так, а не другое.
ничего не меняет. Парамы работают, так как у меня есть имя документа, отображаемое в описании рабочего процесса. – Anth0
Было глупо глупо. Этот код работает. Моя проблема заключалась в том, что некоторые из моих тестовых пользователей в назначенной группе не имели прав на папку внутри частного сайта ... Это объясняет, почему при назначении непосредственно администратору это сработало. – Anth0
Привет, Нет проблем :) –