Вот пример веб-скрипта для достижения этой цели.Сценарий может быть вызван с помощью URL
:/alfresco/service/workflows/approveandreview/start/" rel="nofollow">http://:/alfresco/service/workflows/approveandreview/start/
. Это запустит рабочий процесс проверки и утверждения на узле, указанном в URL-адресе (после /start).
Вы можете использовать Apache HTTPClient для вызова URL из кода Java.
StartWorkflow.get.desc.xml
<webscript>
<shortname>Start Review and Approve Workflow</shortname>
<description>Script to start Review and Approve Workflow on a Node</description>
<url>/workflows/approveandreview/start/{path}</url>
<format default="xml">argument</format>
<authentication>user</authentication>
<transaction>required</transaction>
</webscript>
StartWorkflow.get.js
// Get the node on which workflow is to be started
var theNode = roothome.childByNamePath(url.extension);
logger.log("theNode=" + theNode);
if (theNode == undefined) {
status.code = 404;
status.message = "Node at " + url.extension + " does not exist";
status.redirect = true;
}
else if (theNode.isContainer) {
status.code = 404;
status.message = "Node at " + url.extension + " is not a content node";
status.redirect = true;
}
else {
var workflowPackage = workflow.createPackage();
workflowPackage.addNode(theNode);
var workflowDef = workflow.getDefinitionByName("activiti$activitiReview");
var parameters = new Object();
parameters["bpm:assignee"] = person;
var workflowPath = workflowDef.startWorkflow(workflowPackage, parameters);
if (workflowPath == undefined) {
status.code = 500;
status.message = "Error starting workflow";
status.redirect = true;
}
status.message = "Done";
}
StartWorkflow.get.xml.ftl
<?xml version="1.0" encoding="UTF-8"?>
<approveandreview>
<status>${status.code}</status>
<message>${status.message}</message>
</approveandreview>
Надеждаэто помогает.Дайте мне знать, если возникнут проблемы.