怀疑基于Activiti的Alfresco工作流程

时间:2013-05-06 19:17:29

标签: alfresco activiti rule-engine

我是Alfresco的新手。  我正在为一个使用Alfresco作为文档存储库的项目工作。  需要为文档创建一些批准工作流程。  我们仍然对在Alfresco中使用Activiti进行实施存在疑问  如果你们可以帮助我解决以下问题,那么做出决定将非常有帮助

1)批准规则将动态变化。像drools这样的规则引擎能否与露天的Activiti集成?  如果是,那怎么样?

2)创建的任务必须在外部应用程序中显示。  从外部应用程序查询alfresco数据库的可行性如何?可以使用SQL,或者我们需要在API上进行中继。??

3)我怎样才能检查Alfresco中Activiti的数据库架构?

4)如果规则文件可用于决策,那么这些规则文件是否可以从外部应用程序动态更改。如果是的话,怎么样?

这些问题可能听起来很愚蠢,但他们正在吃饭。  请帮忙

谢谢,  阿布舍克巴克

4 个答案:

答案 0 :(得分:1)

如果您想在Alfresco之外使用Activiti编写一些应用程序,我认为您应该继续使用Activiti独立版,并且可能只需要将文档上传到存储库或类似内容时将其与Alfresco集成。 Alfresco和Activiti的整合程度非常深。

AD 2,3)如果你真的想要访问不使用Alfresco API的Activiti表,是的,它是可能的。数据库中的表与Activiti文档(http://www.activiti.org/userguide/#database.tables.explained

中提到的相同

答案 1 :(得分:1)

1)虽然bpm是一个流氓的分支,但我不认为Alfresco对此有本机支持。但是,我仍然不太确定。我们总是使用jbpm或activiti。

2)您应该使用Alfresco工作流API来实现您想要的效果。至少是在Alfresco开发工作流程时正确且强烈推荐的方式。

3)你可以通过打开Alfresco包中的activit-engine来做到这一点。在里面你应该找到一个名为activiti.mysql.create.sql的文件。这可能会以某种方式帮助你。如果您遵循此link,您还可以找到一些有趣的命令来调试Alfreco和Activiti表

4)请定义规则文件。如果您正在讨论修改activiti工作流文件,不,那么一旦部署就不应该这样做。如果您正在谈论结束任务或在工作流程中采取行动,您应该使用API​​。

答案 2 :(得分:1)

  1. 不确定嵌入drools,但在Activiti中有两种类型的基于代码的任务 - 脚本任务和服务任务。脚本任务可能更容易,因为它们默认是javascript,但如果需要,您还可以加载其他脚本引擎,如groovy。服务任务是需要部署到要使用的Alfresco类路径中的java类。
  2. 我肯定会坚持提到的API
  3. Alch3mi5t回答了这个问题,但我还是会明确指出
  4. 我会使用服务任务,因为你可以从你的java代码调用到另一个系统。
  5. 如果使用Activiti资源管理器向图表添加服务任务,您会注意到一个名为“服务类”的属性,当所选类型为“java类”时,该属性是相关的。你会在这里放置完全限定的类名,例如org.example.activiti.CustomLogic这必须实现几个接口之一,例如ActivityBehavior,ActivityExecution或DelegateExecution。此接口要求您创建一个execute()方法,您可以在其中放置逻辑和任何外部标注。

    要部署,将其编译成jar(在eclipse中,'Create deployment artefacts')并将jar部署到Alfresco的类路径,例如webapps / alfresco / WEB-INF / lib然后重新启动alfresco

答案 3 :(得分:0)

根据Activiti documentation,您可以在“业务规则”任务中使用drools规则

  

业务规则任务用于同步执行一个或多个规则。 Activiti使用Drools Expert,Drools规则引擎来执行业务规则。目前,包含业务规则的.drl文件必须与定义业务规则任务的流程定义一起部署,以执行这些规则。这意味着进程中使用的所有.drl文件都必须打包在进程BAR文件中,例如任务表单