使用flowable 6.1.2 REST API 运行请假审批流程

一、下载 flowable rest war 包

http://download.csdn.net/detail/teamlet/9913312

二、部署

复制flowable REST.war到Tomcat 7.0.64 webapps下。

三、自定义回调

将上一章的java org.flowable.CallExternalSystemDelegate 打包成jar,复制到tomcat flowabe-rest/WEB-INF/lib 中。

四、启动

cd /apache-tomcat-7.0.64
./bin/startup.sh

五、以curl 方式调用 REST API

1、验证引擎安装正确

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

返回

{"name":"default","resourceUrl":null,"exception":null,"version":"6.1.2.0"}

2、部署流程定义

将上篇文章中的 holiday-request.bpmn20.xml 放到当前cUrl执行的路径下,执行:

curl --user kermit:kermit -F "[email protected]" http://localhost:8080/flowable-rest/service/repository/deployments

返回

{"id":"27","name":"holiday-request","deploymentTime":"2017-07-28T09:03:00.305+08:00","category":null,"url":"http://localhost:8080/flowable-rest/service/repository/deployments/27","tenantId":""}

3、验证流程部署正确

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

返回

{"data":[{"id":"createTimersProcess:1:23","url":"http://localhost:8080/flowable-rest/service/repository/process-definitions/createTimersProcess:1:23","key":"createTimersProcess","version":1,"name":"Create timers process","description":"Test process to create a number of timers.","tenantId":"","deploymentId":"7","deploymentUrl":"http://localhost:8080/flowable-rest/service/repository/deployments/7","resource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/createTimersProcess.bpmn20.xml","diagramResource":null,"category":"Examples","graphicalNotationDefined":false,"suspended":false,"startFormDefined":false},{"id":"oneTaskProcess:1:22","url":"http://localhost:8080/flowable-rest/service/repository/process-definitions/oneTaskProcess:1:22","key":"oneTaskProcess","version":1,"name":"Famous One Task Process","description":null,"tenantId":"","deploymentId":"7","deploymentUrl":"http://localhost:8080/flowable-rest/service/repository/deployments/7","resource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/oneTaskProcess.bpmn20.xml","diagramResource":null,"category":"Examples","graphicalNotationDefined":false,"suspended":false,"startFormDefined":false},{"id":"fixSystemFailure:1:19","url":"http://localhost:8080/flowable-rest/service/repository/process-definitions/fixSystemFailure:1:19","key":"fixSystemFailure","version":1,"name":"Fix system failure","description":null,"tenantId":"","deploymentId":"7","deploymentUrl":"http://localhost:8080/flowable-rest/service/repository/deployments/7","resource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/FixSystemFailureProcess.bpmn20.xml","diagramResource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/FixSystemFailureProcess.png","category":"Examples","graphicalNotationDefined":false,"suspended":false,"startFormDefined":false},{"id":"escalationExample:1:21","url":"http://localhost:8080/flowable-rest/service/repository/process-definitions/escalationExample:1:21","key":"escalationExample","version":1,"name":"Helpdesk process","description":null,"tenantId":"","deploymentId":"7","deploymentUrl":"http://localhost:8080/flowable-rest/service/repository/deployments/7","resource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/Helpdesk.bpmn20.xml","diagramResource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/Helpdesk.png","category":"Examples","graphicalNotationDefined":false,"suspended":false,"startFormDefined":false},{"id":"holidayRequest:1:29","url":"http://localhost:8080/flowable-rest/service/repository/process-definitions/holidayRequest:1:29","key":"holidayRequest","version":1,"name":"Holiday Request","description":null,"tenantId":"","deploymentId":"27","deploymentUrl":"http://localhost:8080/flowable-rest/service/repository/deployments/27","resource":"http://localhost:8080/flowable-rest/service/repository/deployments/27/resources/holiday-request.bpmn20.xml","diagramResource":null,"category":"http://www.flowable.org/processdef","graphicalNotationDefined":false,"suspended":false,"startFormDefined":false},{"id":"reviewSaledLead:1:20","url":"http://localhost:8080/flowable-rest/service/repository/process-definitions/reviewSaledLead:1:20","key":"reviewSaledLead","version":1,"name":"Review sales lead","description":null,"tenantId":"","deploymentId":"7","deploymentUrl":"http://localhost:8080/flowable-rest/service/repository/deployments/7","resource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/reviewSalesLead.bpmn20.xml","diagramResource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/reviewSalesLead.reviewSaledLead.png","category":"Examples","graphicalNotationDefined":true,"suspended":false,"startFormDefined":false},{"id":"vacationRequest:1:18","url":"http://localhost:8080/flowable-rest/service/repository/process-definitions/vacationRequest:1:18","key":"vacationRequest","version":1,"name":"Vacation request","description":null,"tenantId":"","deploymentId":"7","deploymentUrl":"http://localhost:8080/flowable-rest/service/repository/deployments/7","resource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/VacationRequest.bpmn20.xml","diagramResource":"http://localhost:8080/flowable-rest/service/repository/deployments/7/resources/VacationRequest.png","category":"http://activiti.org/bpmn20","graphicalNotationDefined":false,"suspended":false,"startFormDefined":false}],"total":7,"start":0,"sort":"name","order":"asc","size":7}

4、启动流程

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/process-instances

返回

{"id":"30","url":"http://localhost:8080/flowable-rest/service/runtime/process-instances/30","businessKey":null,"suspended":false,"ended":false,"processDefinitionId":"holidayRequest:1:29","processDefinitionUrl":"http://localhost:8080/flowable-rest/service/repository/process-definitions/holidayRequest:1:29","activityId":null,"variables":[],"tenantId":"","completed":false}

5、查看任务列表

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

返回

{"data":[{"id":"39","url":"http://localhost:8080/flowable-rest/service/runtime/tasks/39","owner":null,"assignee":null,"delegationState":null,"name":"Approve or reject request","description":null,"createTime":"2017-07-28T09:03:51.993+08:00","dueDate":null,"priority":50,"suspended":false,"taskDefinitionKey":"approveTask","tenantId":"","category":null,"formKey":null,"parentTaskId":null,"parentTaskUrl":null,"executionId":"36","executionUrl":"http://localhost:8080/flowable-rest/service/runtime/executions/36","processInstanceId":"30","processInstanceUrl":"http://localhost:8080/flowable-rest/service/runtime/process-instances/30","processDefinitionId":"holidayRequest:1:29","processDefinitionUrl":"http://localhost:8080/flowable-rest/service/repository/process-definitions/holidayRequest:1:29","variables":[]}],"total":1,"start":0,"sort":"id","order":"asc","size":1}

6、完成审批

注意:参数重的 39是上面查看任务列表中的 id 值,不同的运行实例这个参数可能会变化。

curl --user kermit:kermit -H "Contes" : [ { "name" : "approved", "value" : true} ]  }' http://localhost:8080/flowable-rest/service/runtime/tasks/39

tomcat终端输出

Calling the external system for employee John Doe

你可能感兴趣的:(flowable,工作流)