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

Alfresco Share 4.2:如何在文件夹规则中执行脚本的选项中启动自定义工作流?,alfresco,Alfresco,在Alfresco Share 4.2中,您可以选择在文件夹上定义规则。预定义选项之一是脚本执行。我想执行一个脚本来启动自定义工作流的执行,但我没有看到任何这样的例子,也没有看到必须将该脚本放在何处 此外,在开箱即用配置中,当您选择脚本执行选项时,您可以(仅)执行一个名为“在组中启动审阅和批准工作流”的脚本,但如果我选择此选项并在文件夹中创建规则,生成文件夹中的事件时,此规则不起任何作用 ******向第一个和第二个答案添加信息****************** 我在Windows7环境中使用

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

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

******向第一个和第二个答案添加信息****************** 我在Windows7环境中使用Alfresco Enterprise Edition,我没有任何名为“Data Dictionary”的文件夹,在我的安装中也不存在任何名为“start Poolled review workflow.js”的文件。如果问题是这样的,我会在其他电脑上安装Community Edition来查找此文件夹

你能写下我要放脚本的完整路径吗?。你提到的其他选择对我来说很难

还有一件事,我正在尝试使用activiti执行此工作流,我不知道应该在哪里更改,alfresco-global.properties在哪里。我一直在锁定一个名为alfresco-global.properties的文件,但它在我的安装中不存在



脚本
start poolled review workflow.js
shipping with Alfresco实际上是一个很好的示例,可以启动工作流。您应该在“存储库>数据字典>脚本”中找到它。这是:

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文件夹中。(另一种方法是创建一个从
脚本
派生的spring托管bean或一个用Java编码的操作)


如果“在组中启动审阅和批准工作流”是脚本执行的唯一选项,则您的安装很可能有问题。

禁用jbpm并改用activiti-不推荐使用alfresco中的jbpm工作流