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);
眼下腳本被很好的執行,工作流是創建,但沒有文檔被添加到工作流程中。由於文檔的名稱在工作流程中正確輸出,因此腳本中的文檔引用不爲空。
我讀過已經這兩個職位,但他們都不是有幫助:
- start workflow using alfresco java script api or through web script
- How to start an Alfresco Workflow through Javascript adding a resource
編輯:我已經能夠縮小它下。我在工作流程中的第一項任務是分配給候選組,而不是個人。
<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>
我試圖通過與受讓人取代candidateGroup改變addCommentTask,將其分配給管理員,它的工作......仍然不知道爲什麼它以這種方式工作,而不是其他。
不會改變任何東西。由於我在workflowDescription中顯示了文檔的名稱,因此可以使用參數。 – Anth0
這是愚蠢的愚蠢。此代碼有效。我的問題在於,我的一些測試用戶在assignedGroup中沒有私人站點內的文件夾的權限......這就解釋了爲什麼直接分配給管理員時它工作。 – Anth0
嗨,沒問題:) –