Alfresco Share 4.2:如何在文件夹规则中执行脚本的选项中启动自定义工作流程?

时间:2014-04-06 11:00:43

标签: alfresco

在Alfresco-Share 4.2中,您可以选择在文件夹上定义规则。其中一个预定义的选项是脚本执行。我想执行一个脚本,启动自定义工作流程的执行,但我没有看到任何这样的例子,你必须把这个脚本放在哪里。

此外,在开箱即用的配置中,当您选择脚本执行选项时,您可以(仅)执行一个名为“启动审阅和批准的工作流程”的脚本,但是如果我选择此选项并在文件夹中创建规则,此规则在生成文件夹中的事件时不会生成任何内容。

** * ** 将信息添加到第一和第二个答案 ** * ** * ** * ** * ** * **** 我在Windows 7环境中使用Alfresco企业版,我没有任何名为“数据字典”的文件夹,在我的安装中不存在任何名为“start-pooled-review-workflow.js”的文件。如果问题是这个,我会在其他PC中安装Community Edition来找到这个文件夹。

你能写出我必须把脚本放到哪里的完整路径吗?你提到的其他替代方案对我来说很难。

还有一件事,我试图用activiti做这个工作流程,我不知道我应该在哪里改变,alfresco-global.propierties在哪里。我一直在锁定一个名为alfresco-global.propierties的文件,但它在我的安装中不存在。


1 个答案:

答案 0 :(得分:1)

与Alfresco一起发布的脚本start-pooled-review-workflow.js实际上是一个很好的例子,说明了如何启动工作流程。你应该在" Repository>中找到它。数据字典>脚本&#34 ;.这是:

function startWorkflow(assigneeGroup)
{
    var workflow = actions.create("start-workflow");
    workflow.parameters.workflowName = "jbpm$wf:reviewpooled";
    workflow.parameters["bpm:workflowDescription"] = "Please review " + document.name;
    workflow.parameters["bpm:groupAssignee"] = assigneeGroup;
    var futureDate = new Date();
    futureDate.setDate(futureDate.getDate() + 7);
    workflow.parameters["bpm:workflowDueDate"] = futureDate; 
    return workflow.execute(document);
}

function main()
{
   var name = document.name;
   var siteName = document.siteShortName;

   if (siteName == null)
   {
      if (logger.isLoggingEnabled())
         logger.log("Did not start workflow as the document named " + name + " is not located within a site.");

      return;
   }

   var reviewGroup = "GROUP_site_" + siteName;

   // make sure the group exists
   var group = people.getGroup(reviewGroup);
   if (group != null)
   {
      if (logger.isLoggingEnabled())
         logger.log("Starting pooled review and approve workflow for document named " + name + " assigned to group " + reviewGroup);

      startWorkflow(reviewGroup);

      if (logger.isLoggingEnabled())
         logger.log("Started pooled review and approve workflow for document named " + name + " assigned to group " + reviewGroup);
   }
   else if (logger.isLoggingEnabled())
   {
      logger.log("Did not start workflow as the group " + reviewGroup + " could not be found.");
   }
}

main();

我猜你的失败是因为在最近的Alfresco版本中默认禁用了jbpm引擎。设置

system.workflow.engine.jbpm.enabled=true
alfresco-global.properties中的

应该可以解决问题。

所以只需将脚本放在数据字典的Scripts文件夹中即可。 (另一种方法是创建一个源自script的Spring托管bean或一个用Java编码的Action)。

如果"启动审核批准工作流程"是您执行脚本的唯一选择,您的安装很可能出现问题。