我是Alfresco的新手。 我正在为一个使用Alfresco作为文档存储库的项目工作。 需要为文档创建一些批准工作流程。 我们仍然对在Alfresco中使用Activiti进行实施存在疑问 如果你们可以帮助我解决以下问题,那么做出决定将非常有帮助
1)批准规则将动态变化。像drools这样的规则引擎能否与露天的Activiti集成? 如果是,那怎么样?
2)创建的任务必须在外部应用程序中显示。 从外部应用程序查询alfresco数据库的可行性如何?可以使用SQL,或者我们需要在API上进行中继。??
3)我怎样才能检查Alfresco中Activiti的数据库架构?
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)
如果使用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文件中,例如任务表单