当前位置: 首页 > 知识库问答 >
问题:

与Activiti BPMN一起使用外部数据库

景康安
2023-03-14

我目前正在使用BPMN和Activiti创建一些业务流程。对于该业务流程中的一个步骤,我需要查询数据库并在后续步骤中使用该结果。因此,我正在寻找可能的解决方法,将SQL操作功能集成到Activiti中。那么,有谁能建议我,是否有任何方法可以为activiti嵌入sql查询功能?对于使用Activiti引擎为BPMN进程提供外部数据库交互的任何建议,我们深表感谢。

如果这样的解决方案不存在,那么关于如何为activiti实现这样的功能的任何帮助也很有帮助

共有2个答案

夏何平
2023-03-14

从外部数据库访问数据是服务任务的一个非常常见的用例。我看到其他人向你指出了这个方向,这是非常合理的。

但是,还有一个选项使用Activiti本身使用的相同数据库层。该层是iBatis,用于数据库引擎中的所有实体存储。

用户指南在这里描述了如何使用iBatis:http://www.activiti.org/userguide/#advanced.custom.sql.queries

我们在许多客户中使用了这一功能,效果非常好。

希望这有帮助。

申屠晟
2023-03-14

您可以按照此处的说明设置Java服务任务,并实现自定义逻辑,该逻辑可能包括也可能不包括与外部数据库的交互。只要记住将服务任务的输出保存到流程变量(执行)中,以备进一步处理(例如查看…)

以下是BPMN服务任务示例:

   <serviceTask id="javaService"
         name="My Java Service Task"
         activiti:class="org.activiti.MyJavaDelegate" />

这是它的示例实现:

public class ToUppercase implements JavaDelegate {
  public void execute(DelegateExecution execution) throws Exception {
    String var = (String) execution.getVariable("input");
    var = var.toUpperCase();
    execution.setVariable("input", var);
  }
}

不要忘记管理数据库连接池。。。等,使您在生产中不会出现任何不必要的问题

编辑:我无法从你评论中引用的博客帖子中检测到任何可能在activiti community edition中无法正常运行的内容,请记住在你的类路径中提供所有自定义类和依赖项。

注意:博客帖子中的帖子是关于alfresco中的嵌入式activiti引擎的(在这种情况下,它是企业版),但同样,即使与activiti的社区版配合使用,它也应该可以正常工作!

 类似资料:
  • 应该连接到easyphp服务器上的phpmyadmin数据库,在users数据库上插入一条记录,所有这一切都通过glassfish服务器通过web服务进行,但这并没有发生 netbeans表示,glassfish之所以能够运行,是因为它只有一个停止、删除或重新启动服务器的选项,但“start”选项是灰色的 这是错误日志 java.lang.RuntimeException:java.io.ioEx

  • 关于Jenkins管道和Groovy方法,我这里有两个问题。首先,我有多个共享公共方法的构建,所以我认为最好将所有这些都放在一个类中,然后为每个构建导入文件。 Groovy脚本中的一段代码如下所示 在我的管道脚本中,我有 我遇到的第一个问题是如何在我的方法中使用,其次,当我收到错误时,如何在我的脚本中使用 哈德逊。远程处理。ProxyException:groovy。lang.MissingMet

  • 问题内容: 2 能否从2个不同的mongdb数据库服务器中检索数据? 问题答案: 更新资料 现在可以连接到远程/多个数据库: mongodb url 在哪里,例如(带有数据库名称) 目前,这样做有一个缺点:没有Oplog 旧答案 目前,这是不可能的。每个流星应用程序都绑定到一个数据库。 您可以通过几种方法解决此问题,但其价值可能会更复杂: 一种选择-使用单独的Meteor应用 在另一个流星应用程序

  • Java中的jlink功能允许您为应用程序创建单独的运行时环境。通常,此应用程序所需的所有模块都由jlink压缩成一个大的“模块”文件。 我很感兴趣的是,是否有办法去掉一些模块,使它们成为单独的jar文件,但让jlink能够找到它们并仍然运行应用程序。有没有办法做到这一点? 例如,如果您正在处理一个LGPL库,那么就是这种情况的一个用例。您可能希望将LGPL库从庞大的模块“blob”中删除,并将其

  • 我尝试将Web SSO与WS-Federation一起用于ASP.NET MVC5应用程序中的外部IDP。 ASP.NET应用程序是此场景中的服务提供者。 对于登录,我希望使用SAML HTTP重定向绑定。 外部IDP WS-FED元数据: start.up.cs中的身份验证设置: 当我运行应用程序时,我得到错误: 序列不包含元素 描述: 执行当前web请求期间发生未处理的异常。请查看堆栈跟踪,以

  • 我正在开发一个Spring REST微服务。代码使用RestTemboard访问其他服务。它是这样配置的: 使用此配置,注入的restTemplate实例将解析域中指定的服务名称,并调用相应的服务。例如,以下调用将起作用: 问题是,我们还希望使用外部服务并使用RestTemplate查询它们。 例如不起作用,应用程序会抱怨发现服务不知道服务。 更有趣的是,在某些情况下,网址是未知的,所以在开发过程