【问题标题】:Alfresco Share 4.2: How can I do to start a custom-workflow in the options of executing script in the rules of the folders?Alfresco Share 4.2:如何在文件夹规则中执行脚本的选项中启动自定义工作流程?
【发布时间】:2014-04-08 00:52:30
【问题描述】:

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

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

*****向第一个和第二个答案添加信息******************* 我在 Windows 7 环境中使用 Alfresco Enterprise Edition,我没有任何名为“Data Dictionary”的文件夹,并且在我的安装中不存在任何名为“start-pooled-review-workflow.js”的文件。如果问题是这个,我会在其他电脑上安装社区版来找到这个文件夹。

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

还有一件事,我正在尝试使用 activiti 来完成这个工作流程,但我不知道我应该在哪里更改以及 alfresco-global.propierties 在哪里。我一直在锁定一个名为 alfresco-global.propierties 的文件,但它在我的安装中不存在。


【问题讨论】:

    标签: alfresco


    【解决方案1】:

    Alfresco 附带的脚本start-pooled-review-workflow.js 实际上是如何启动工作流的一个很好的示例。您应该在“存储库> 数据字典> 脚本”中找到它。这里是:

    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();
    

    我猜这对你来说是失败的,因为 jbpm 引擎在最新版本的 Alfresco 中默认禁用。设置

    system.workflow.engine.jbpm.enabled=true
    

    在 alfresco-global.properties 中应该可以解决问题。

    因此,只需将您的脚本放在数据字典的 Scripts 文件夹中即可。 (另一种方法是创建一个派生自 script 的 spring 托管 bean 或用 Java 编码的 Action。

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

    【讨论】:

    • 保持 jbpm 禁用并改用 activiti - alfresco 中的 jbpm 工作流已被弃用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多