使用alfresco Java脚本api或通过Web脚本启动工作流程 [英] start workflow using alfresco java script api or through web script
问题描述
我想以编程方式启动工作流程。因此写了一个网络脚本。
I want to start a workflow programatically. So written a web script.
执行脚本:
function startWorkflow()
{
var workflow = actions.create("start-workflow");
workflow.parameters.workflowName = "activiti$alfGroupReview";
workflow.parameters["bpm:workflowDescription"] = "Please review ";
workflow.parameters["bpm:groupAssignee"] = people.getGroup( "GROUP_site_collaborators");;
var futureDate = new Date();
futureDate.setDate(futureDate.getDate() + 7);
workflow.parameters["bpm:workflowDueDate"] = futureDate;
workflow.execute(document);
return ;
}
对于上述脚本,我收到错误消息未定义文档。我指的是 https://forums.alfresco.com/en/ viewtopic.php?f = 34& t = 42677 和 http://livinginjava.blogspot.in/2008/10/starting-alfresco-workflow-using.html链接。
For the above script, I am getting error "document is not defined". I am referring https://forums.alfresco.com/en/viewtopic.php?f=34&t=42677 and http://livinginjava.blogspot.in/2008/10/starting-alfresco-workflow-using.html links.
所以我更新了脚本到:
function startWorkflow()
{
var nodeRef = "workspace://SpacesStore/25285e6c-2995-49fe-aa50-1270cefc806a";
var docNode = search.findNode(nodeRef);
var workflow = actions.create("start-workflow");
workflow.parameters.workflowName = "activiti$alfGroupReview";
workflow.parameters["bpm:workflowDescription"] = "Please review ";
workflow.parameters["bpm:groupAssignee"] = people.getGroup( "GROUP_aloha_collaborators");;
var futureDate = new Date();
futureDate.setDate(futureDate.getDate() + 7);
workflow.parameters["bpm:workflowDueDate"] = futureDate;
workflow.execute(docNode);
return ;
}
在这里,nodeRef:是文档库中文档的引用。
Here, nodeRef : is ref of a document from document library.
现在新的错误是:
500 Description: An error inside the HTTP server which prevented it from fulfilling the request.
Message: 06270056 Wrapped Exception (with status template): 06270273 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/justransform/startWF.get.js': null
Exception: org.alfresco.scripts.ScriptException - 06270273 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/justransform/startWF.get.js': null
org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:195)
请先谢谢。
推荐答案
如果以下条件,此代码可以正常运行:
This code runs fine if:
- docNode不为null。您应该为此添加一个支票。
- 您的组存在。可能值得为此添加检查。
- 工作流程存在指定的ID。使用工作流控制台进行确认。例如,您提供的ID并非开箱即用的
。如果是自定义的,则可能是您尚未成功部署
工作流,或者您的ID不正确。
不要使用称为工作流的变量。 Alfresco已经定义了一个根域对象,称为工作流。说到这一点,请随时使用工作流JavaScript API 来调用工作流而不是操作。
Also, do not use a variable called "workflow". Alfresco already defines a root-scoped object called "workflow". Speaking of that, feel free to use the workflow JavaScript API to invoke your workflow instead of an action. Either should work, though.
我使用 JavaScript控制台,工作流ID为 activiti $ activitiParallelGroupReview(以及将工作流变量更改为工作流Act之后)。
I ran your code successfully using the JavaScript console and a workflow id of "activiti$activitiParallelGroupReview" (and after changing your workflow variable to workflowAct).
这篇关于使用alfresco Java脚本api或通过Web脚本启动工作流程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!