0

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

1)审批规则动态变化。像drools这样的规则引擎可以在露天与Activiti集成吗?如果是,那怎么办?

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

3) 我如何在 Alfresco 中检查 Activiti 的数据库模式?

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

这些问题可能听起来很愚蠢,但它们正在吞噬我的头脑。请帮忙

谢谢, 阿布舍克

4

4 回答 4

1
  1. 不确定嵌入流口水,但在 Activiti 中有两种类型的基于代码的任务——脚本任务和服务任务。脚本任务可能更容易,因为默认情况下它们是 javascript,但如果需要,您也可以加载其他脚本引擎,如 groovy。服务任务是需要部署到 Alfresco 类路径中才能使用的 java 类。
  2. 如前所述,我肯定会坚持使用 API
  3. Alch3mi5t 回答了这个问题,但我会再次避开
  4. 我会为此使用服务任务,因为您可以从您的 java 代码中调用另一个系统。

如果您使用 Activiti explorer 将服务任务添加到图表,您会注意到一个名为“服务类”的属性,当所选类型为“java 类”时,该属性是相关的。您可以在此处输入完全限定的类名,例如,org.example.activiti.CustomLogic这必须实现几个接口之一,例如 ActivityBehavior、ActivityExecution 或 DelegateExecution。此接口要求您创建一个 execute() 方法,您可以在其中放置您的逻辑和任何外部标注。

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

于 2013-05-08T11:30:40.420 回答
1

1) 虽然 bpm 是一个流口水的分支,但我认为 Alfresco 并没有对此提供原生支持。但是,我仍然不太确定。我们总是使用 jbpm 或 activiti。

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

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

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

于 2013-05-08T08:30:52.917 回答
1

如果你想在 Alfresco 之外使用 Activiti 编写一些应用程序,我认为你应该使用独立的 Activiti,并且可能在你需要将文档上传到存储库或类似的东西时将它与 Alfresco 集成。Alfresco 和 Activiti 的集成程度相当深。

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

于 2013-05-07T09:03:32.887 回答
0

根据Activiti 文档,您可以在“业务规则”任务上使用流口水规则

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

于 2013-05-13T10:06:58.857 回答