当在文件夹中插入任何文档时,我正在尝试启动附加文档的自定义工作流程。我使用Alfresco社区v4.2。
如果选择文档然后“启动工作流程”,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);
目前脚本执行得很好,创建了一个工作流程,但没有向工作流程添加任何文档。脚本中的文档引用不为空,因为文档的名称在工作流中正确输出。
我已经阅读过这两篇文章,但没有一篇有任何帮助:
编辑:我已经能够缩小范围了。我在工作流程中的第一个任务是分配给候选组而不是个人。组名由以下代码检索:
<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>
我尝试通过将acceptGroup替换为受让人,将其分配给管理员并且工作正常来更改addCommentTask ...仍然不知道为什么它以这种方式工作而不是其他工作。
答案 0 :(得分:4)
如果您执行以下操作(将数组更改为对象):
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);