使用alfresco java script api或通过web脚本启动工作流程

mah*_*esh 2 alfresco

我想以编程方式启动工作流程.所以写了一个web脚本.

执行脚本:

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 ;
}
Run Code Online (Sandbox Code Playgroud)

对于上面的脚本,我收到错误"文档未定义".我指的是https://forums.alfresco.com/en/viewtopic.php?f=34&t=42677http://livinginjava.blogspot.in/2008/10/starting-alfresco-workflow-using.html链接.

所以我将我的脚本更新为:

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 ;
}
Run Code Online (Sandbox Code Playgroud)

这里,nodeRef:是文档库中文档的引用.

现在新的错误是:

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)
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Lui*_*hez 7

使用Alfresco Workflow API.注意:wfDocs包含doc节点数组:

// 2 days from now
var dueDate2d = new Date((new Date()).getTime() + 2*(24*60*60*1000));

// Start workflow
var wfdef = workflow.getDefinitionByName("activiti$alfGroupReview");
if (wfdef) {
    var wfparams = new Array();
    wfparams["bpm:workflowDescription"] = "Please review";
    wfparams["bpm:groupAssignee"] = people.getGroup( "GROUP_site_collaborators");
    wfparams['bpm:workflowDueDate'] = dueDate2d;
    wfparams['bpm:workflowPriority'] = 1;
    wfparams['wf:notifyMe'] = true;

    var wfpackage = workflow.createPackage();
    for each (var n in wfDocs)
        wfpackage.addNode(n);  
    var wfpath = wfdef.startWorkflow(wfpackage, wfparams);
    var tasks = wfpath.getTasks();
    for each (task in tasks)
        task.endTask(null);
}
Run Code Online (Sandbox Code Playgroud)


Jef*_*tts 5

如果符合以下条件,此代

  • docNode不为null.你应该为此添加一个检查.
  • 你的小组存在.可能值得添加一个检查.
  • 工作流程存在指定的ID.使用工作流程控制台进行确认.例如,您提供的ID不是开箱即用的工作流程.如果是自定义的,可能您尚未成功部署工作流程,或者您的ID不正确.

另外,不要使用名为"workflow"的变量.Alfresco已经定义了一个名为"workflow"的根作用域对象.说到这一点,请随意使用工作流JavaScript API来调用工作流而不是动作.但要么应该工作.

我使用JavaScript控制台和工作流ID"activiti $ activitiParallelGroupReview" 成功运行了代码(并在将工作流变量更改为workflowAct之后).