我无法通过网络脚本启动工作流程。
我创建了文件workflow.get.js:
var nodeId = args.nodeid; //fdadc86f-d996-472d-8267-850a63573b02
var workflowName = args.w; //jbpm$wf:adhoc
var document = search.findNode("workspace://SpacesStore/" + nodeId);
var workflowAction = actions.create("start-workflow");
workflowAction.parameters.workflowName = workflowName;
workflowAction.parameters["bpm:workflowDescription"] = "Please edit: " + document.name;
workflowAction.parameters["bpm:assignees"] = [people.getPerson("admin"), people.getPerson("admin")];
var futureDate = new Date();
futureDate.setDate(futureDate.getDate() + 7);
workflowAction.parameters["bpm:workflowDueDate"] = futureDate;
workflowAction.execute(document);
workflow.get.desc.xml
<webscript>
<shortname>Start Workflow</shortname>
<description>Testando Start Workflow</description>
<url>/workflow?nodeid={idfile}&&w={namewf}</url>
<format default="html">argument</format>
<authentication>admin</authentication>
<transaction>required</transaction>
</webscript>
和workflow.get.html.ftl
The ${args.w} started!
当我点击http:// localhost:8080 / alfresco / service / workflow?nodeId = fdadc86f-d996-472d-8267-850a63573b02&amp; w = jbpm $ wf:adhoc返回错误
06190076 Wrapped Exception(带状态模板):06190474无法执行脚本&#39; /triggerworkflow.get.js(在存储库存储工作区:// SpacesStore / Company Home / Data Dictionary / Web Scripts)&#39; :06190473无法找到方法org.alfresco.repo.jscript.ScriptAction.execute(org.mozilla.javascript.Undefined)。 (在存储库商店workspace:// SpacesStore / Company Home / Data Dictionary / Web Scripts)#11)
异常:org.alfresco.error.AlfrescoRuntimeException - 08200041 TypeError:无法读取属性&#34; name&#34;从null (workspace:// SpacesStore / Company Home / Data Dictionary / Web Scripts Extensions / Workflow / workflow.get.js#7)
org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:469)
异常:org.alfresco.scripts.ScriptException - 08200042无法执行脚本&#39; /Workflow/workflow.get.js (在存储库存储工作区:// SpacesStore / Company Home / Data Dictionary / Web Scripts Extensions)&#39;:08200041 TypeError:无法读取 财产&#34;名称&#34; from null(workspace:// SpacesStore / Company Home / Data Dictionary / Web Scripts Extensions / Workflow / workflow.get.js#7)
org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:183)
异常:org.springframework.extensions.webscripts.WebScriptException - 08200035 Wrapped Exception(带状态模板): 08200042无法执行脚本&#39; /Workflow/workflow.get.js(在存储库存储工作区:// SpacesStore / Company Home / Data Dictionary / Web Scripts Extensions)&#39; :08200041 TypeError:无法读取属性&#34; name&#34; from null(workspace:// SpacesStore / Company Home / Data Dictionary / Web Scripts Extensions / Workflow / workflow.get.js#7)
org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:742) 有人帮帮我吗?
答案 0 :(得分:0)
你的问题是你在一个地方召唤一件事,而在另一个地方召唤另一件事:
var nodeId = args.nodeid; //fdadc86f-d996-472d-8267-850a63573b02
var workflowName = args.w; //jbpm$wf:adhoc
vs
<url>/workflow?nodeid={idfile}&&w={namewf}</url>
你需要得到那些同意!我建议,鉴于您似乎已经从客户端使用的URL,更改您的webscript描述符URL以匹配您使用的URL,
<url>/workflow?nodeid={nodeid}&w={w}</url>
你还应该添加逻辑来检查给定的节点是否真的存在 - search.findNode
can return null所以你应该在继续之前检查它(例如,如果没有找到则给出404)
另外,如果您愿意
,可以使用utils.getNodeFromString(String)
答案 1 :(得分:0)
请尝试使用此代码启动您的工作流程,
使用此代码替换workflow.get.js
的代码,并根据您的要求更改所有属性。
function startWorkflow()
{
var workflowAction = workflow.getDefinitionByName("activiti$test_wf");
var package= workflow.createPackage();
var wfparams = new Array();
wfparams["model_prefix:req_props_name"] = value2;
wfparams["bpm:assignee"] = people.getPerson("ADMIN");
workflowAction.startWorkflow(package, wfparams);
}
}
startWorkflow();