Web服务集成:从工作流更新外部数据库

作者:Peter Hilton b|4分钟阅读

如何通过编写可从脚本任务中使用的数据库连接器来使用web服务将工作流与外部系统集成

当您使用工作流自动化平台时,例如信号处理治理,您有时需要一个工作流来更新组织中的另一个系统。例如,每当您的公司收到客户订单时,您都希望订单履行流程更新办公室中的一个巨大的记分牌,该记分牌显示当天的订单数量。这是一个web服务集成的工作。

本文介绍如何将工作流连接到另一个应用程序的数据库。作为一个简单的例子,web服务集成将在开始记录“案例启动”事件时捕获每个案例的标识符。

此示例的源代码和文档可在https://github.com/signavio/connector-examples/tree/master/java/database-update

Web服务集成体系结构

Web服务集成是一种完全灵活的方式,可以将数据从工作流发布到组织中的其他系统。这使得工作流可以自动更新其他系统。

在此体系结构中,工作流将数据发送到充当数据库代理的连接器。拥有数据库的组织通常将连接器部署在非军事区,以避免在公众互联网上提供该数据库的风险。或者,您可以在云中同时托管数据库和连接器。

用Java编写web服务

连接器是一个简单的web服务,用于更新数据库。具体来说,它必须提供:

  1. 接受来自公共Internet的HTTP请求的HTTP API,例如包含将用于在数据库中插入行数据的HTTP POST请求。
  2. 数据库连接和执行数据库更新的方法,通常使用SQL。

Java是构建这种连接器的众多常用选择之一。有许多Java库和框架可以用来实现HTTP接口,并连接到数据库。的示例连接器(源代码)使用火花框架对于HTTP,以及JDBC使用数据库的JDBC驱动程序连接MySQL或PostgreSQL关系数据库。

在实践中,您还可以使用不同的编程语言及其相关库构建连接器,或者使用非关系数据库。这类任务的最佳选择通常是开发人员最熟悉的。

部署web服务

如果你想用数据库更新作为自己的示例连接器,您首先需要将其部署到某个地方。来部署示例连接器Heroku,按照示例中的详细说明进行操作自述,其中描述了以下步骤。

  1. 下载示例代码。
  2. 复制要部署的“database-update”更新目录。
  3. 初始化要部署到Heroku的git存储库。
  4. 通过推送git存储库将应用程序部署到Heroku。
  5. 在Heroku PostgreSQL数据库中创建表。

通过发送HTTP请求来发布案例启动事件,测试安装是否正常工作,使用HTTP客户端,例如HTTPie

http post

结果应该是一个状态为“201 CREATED”的HTTP响应:

HTTP/1.1 201创建连接:close Content-Type: text/html;charset=utf-8 Date: Thu, 17 Aug 2017 09:05:40 GMT服务器:Jetty(9.4.4.v20170414) Via: 1.1 vegur

现在检查case started事件是否已添加到数据库中:

$ heroku pg:psql——>连接到postgresql-blackberry-12345 psql (9.6.4, server 9.6.1)
DATABASE -update::DATABASE=> select * from case_event;id | case_id | |创建类型  ----+---------+-------------------------+--------- 1 | 42 | 2017-08-17 09:07:08.563 |开始(1行)

现在连接器工作了,您可以从工作流向它发送数据。

从工作流中调用web服务

要在每次案例启动时向连接器发送数据,请在流程开始时配置一个脚本任务以发送HTTP请求。在脚本配置中,添加' Case '变量,这样您就可以访问Case ID。

例子的自述包含这里显示的JavaScript源代码,因此您可以复制粘贴它。

现在发布流程,启动新案例,并再次检查数据库以查看新案例事件。

DATABASE -update::DATABASE=> select * from case_event;id | case_id | |创建类型  ----+--------------------------+-------------------------+--------- 42 | 1 | 2017-08-17 09:07:08.563 | 2 | 59955开始edfd1dfff2afffe4dd6 | 2017-08-17 09:16:16.795 |开始(2行)

第二行包括来自新工作流用例的‘case_id’。要扩展示例,可以在HTTP请求和数据库表中包含更多信息,例如案例名称或触发器表单数据。

将工作流与企业IT系统集成

编写充当系统之间“连接器”的小型web服务是web服务集成的常用方法。在这种情况下,连接器将工作流的JavaScript操作与关系数据库集成在一起。您可以用任何您喜欢的功能扩展这个示例。

尝试您自己的web服务集成信号处理治理,并注册一个免费试用30天今天。

发布日期:2017年10月17日-最后修改日期:2020年11月13日