Flowable入门系列文章6 - Flowable REST API的使用

这次使用的是Flowable REST API,而不是Java API。您很快就会注意到REST API与Java API密切相关,并且知道它会自动意味着您可以找
到自己的方式。
要获得关于Flowable REST API的完整,详细的概述,请查看REST API一章。

1、设置REST应用程序

当您从flowable.org网站下载.zip文件时,可以在战争文件夹中找到REST应用程序。您将需要一个servlet容器(如Tomcat,Jetty等)来运行WAR文件。

使用Tomcat时,步骤如下:

  • 下载并解压缩最新最好的Tomcat zip文件(从Tomcat网站选择Core发行版)。
  • 将解压缩的Flowable分发包的wars文件夹中的flowable-rest.war文件复制到解压缩的Tomcat文件夹的webapps文件夹中。
  • 在命令行上,转至Tomcat文件夹的bin文件夹。
  • 执行./catalina运行以启动Tomcat服务器。
    在服务器启动期间,您会注意到一些Flowable日志消息传递。最后,像INFO [main] org.apache.catalina.startup.Catalina.start服务器在xyzms中启动的消息表明服务器已准备好接收请求。请注意,默认情况下会使用内存中的H2数据库实例,这意味着数据在服务器重新启动后将不会存活。

在后面的文章中,我们将使用cURL来演示各种REST调用。所有的REST调用都默认使用基本认证进行保护。用户克米特与密码克米特在所有通话。

启动后,通过执行验证应用程序是否正确运行。

curl --user kermit:kermit http:// localhost:8080 / flowable-rest / service / management / engine

如果你回到正确的JSON响应,REST API已经启动并正在运行。

2、部署流程定义

第一步是部署一个流程定义。使用REST API,可以通过将.bpmn20.xml文件(或多个流程定义的.zip文件)上传为multipart / formdata来完成:

curl --user kermit:kermit -F“file=@holiday-request.bpmn20.xml”http:// localhost:8080 / flowable-rest / service /
repository / deployments

要验证流程定义是否正确部署,可以请求流程定义列表:

curl --user kermit:kermit http:// localhost:8080 / flowable-rest / service / repository / process-definitions

它返回当前部署到引擎的所有流程定义的列表。

3、启动一个流程实例

通过REST API启动流程实例与通过Java API执行流程实例类似:提供一个键来标识要与初始流程变量一起使用的流程定义:

curl --user kermit:kermit -H“Content-Type:application / json”-X POST -
d'{“processDefinitionKey”:“holidayRequest”,“variables”:[{“name”:“employee”,“value” :“John Doe”},
{“name”:“nrOfHolidays”,“value”:7}]}'http:// localhost:8080 / flowable-rest / service / runtime / processinstances

它返回类似的东西

{ “ID”: “43”, “URL”: “HTTP://本地主机:8080 /可流动的静止/服务/运行/过程实例/ 43”, “的businessKey”:
NULL, “暂停”:假”结束 “:假的,” processDefinitionId “:” holidayRequest:142" , “processDefinitionUrl”:
“HTTP://本地主机:8080 /流动休息/服务/资源库/流程定义/ holidayRequest:1:42”,” activityId “:空,” 变量 “:
[],” tenantId “:””, “已完成”:假}

4、任务列表并完成任务

当流程实例启动时,第一个任务被分配给管理员组。要获取此组的所有任务,可以通过REST API完成任务查询:

curl --user kermit:kermit -H“Content-Type:application / json”-X POST -d'{“candidateGroup”:“managers”}'http://
localhost:8080 / flowable-rest / service / query /任务

这将返回管理员组的所有任务的列表,现在可以使用以下任务完成这样的任务:

curl --user kermit:kermit -H“Content-Type:application / json”-X POST -d'{“action”:“complete”,“variables”:
[{“name”:“approved”,“value” :true}]}'http:// localhost:8080 / flowable-rest / service / runtime / tasks / 25

但是,你很可能会得到一个错误,如:

{“message”:“内部服务器错误”,“异常”:“无法实例化类org.flowable.CallExternalSystemDelegate}

这意味着引擎找不到服务任务中引用的CallExternalSystemDelegate类。为了解决这个问题,需要将类放在应用程序的类路径中(这将需要重启)。按照本节所述创建类,将其打包为JAR,并将其放在Tomcat 的webapps文件夹下的flowable -rest文件夹的WEB-INF / lib文件夹中。

上面文章来自盘古BPM研究院:http://vue.pangubpm.com/
文章翻译提交:https://github.com/qiudaoke/flowable-userguide
了解更多文章可以关注微信公众号:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值