对基于Activiti的Alfresco工作流的质疑

对基于Activiti的Alfresco工作流的质疑,alfresco,activiti,rule-engine,Alfresco,Activiti,Rule Engine,我不熟悉户外。 我在一个使用Alfresco作为文档存储库的项目中工作。 需要为文档创建一些审批工作流。 我们仍然怀疑是否在露天使用Activiti来实施 如果你们能帮我回答以下问题,这将对做出决定非常有帮助 1) 审批规则将动态更改。像drools这样的规则引擎可以在alfresco与Activiti集成吗? 如果是的话,怎么办 2) 创建的任务必须显示在外部应用程序中。 从外部应用程序查询alfresco数据库的可行性如何?SQL可以用于此,还是我们需要依赖API来实现此目的 3) 如何检查

我不熟悉户外。 我在一个使用Alfresco作为文档存储库的项目中工作。 需要为文档创建一些审批工作流。 我们仍然怀疑是否在露天使用Activiti来实施 如果你们能帮我回答以下问题,这将对做出决定非常有帮助

1) 审批规则将动态更改。像drools这样的规则引擎可以在alfresco与Activiti集成吗? 如果是的话,怎么办

2) 创建的任务必须显示在外部应用程序中。 从外部应用程序查询alfresco数据库的可行性如何?SQL可以用于此,还是我们需要依赖API来实现此目的

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

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

这些问题听起来可能很傻,但它们正在折磨我。 请帮忙

谢谢,
Abhishek

如果您想在Alfresco之外使用Activiti编写一些应用程序,我认为您应该使用Activiti standalone,并可能在您需要将文档上载到存储库或类似内容时将其与Alfresco集成。户外和活动的融合程度相当深


AD 2,3)如果您确实希望不使用Alfresco API访问Activiti表,是的,这是可能的。数据库中的表与Activiti documentation()中提到的表完全相同。

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

AD 2,3)如果您确实希望不使用Alfresco API访问Activiti表,是的,这是可能的。数据库中的表与Activiti文档()中提到的表完全相同(尽管bpm是一个令人垂涎三尺的分支,但我认为Alfresco不支持这一点)。但我还是不太确定。我们总是使用jbpm或activiti

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

3) 您可以通过打开Alfresco软件包中的activit引擎来实现这一点。在里面,您应该可以找到一个名为activiti.mysql.create.sql的文件。那会对你有所帮助的。如果您遵循这一点,您还可以找到一些有趣的命令来调试Alfreco和Activiti表

4) 请定义规则文件。如果您谈论的是修改activiti工作流文件,则不应在部署后进行修改。如果你说的是结束任务或在工作流中采取行动,那么你应该使用API来实现这一点。

1)尽管bpm是一个令人垂涎三尺的分支,但我认为Alfresco并不支持这一点。但我还是不太确定。我们总是使用jbpm或activiti

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

3) 您可以通过打开Alfresco软件包中的activit引擎来实现这一点。在里面,您应该可以找到一个名为activiti.mysql.create.sql的文件。那会对你有所帮助的。如果您遵循这一点,您还可以找到一些有趣的命令来调试Alfreco和Activiti表

4) 请定义规则文件。如果您谈论的是修改activiti工作流文件,则不应在部署后进行修改。如果您谈论的是结束任务或在工作流中执行操作,那么您应该使用API

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

    要部署,请将其编译成一个jar(在eclipse中为“创建部署工件”),并将jar部署到Alfresco的类路径,例如webapps/Alfresco/WEB-INF/lib,然后重新启动Alfresco

  • 不确定是否嵌入drools,但Activiti中有两种基于代码的任务—脚本任务和服务任务。脚本任务可能更容易,因为默认情况下它们是javascript,但如果需要,也可以加载其他脚本引擎,如groovy。服务任务是需要部署到Alfresco类路径中使用的java类
  • 我肯定会坚持前面提到的API
  • Alch3mi5t回答了这个问题,但我还是要避开
  • 我将为此使用一个服务任务,因为您可以将java代码调用到另一个系统中
  • 如果使用ActivitiExplorer将服务任务添加到图表中,您将注意到一个名为“服务类”的属性,当所选类型为“java类”时,该属性是相关的。您可以在这里输入完全限定的类名,例如
    org