一、下载 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 "file=@holiday-request.bpmn20.xml" 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 6.1.2 REST API 运行请假审批流程的更多相关文章

  1. flowable 6.1.2 命令行完成请假审批流程的例子

    一.创建 eclipse maven新项目 1.设置项目选项 其中,Create a simple project 要选中. 2.填写项目包名和项目名称 这里的Group id:必须是 org.flo ...

  2. Flowable实战(一)启动第一个完整流程

    一.前言:   发现网上关于Flowable的资料基本都是浅尝辄止,对如何构建一个企业级的流程应用说明很少,所以写个实战系列,希望对大家和自己,都有所帮助. 二.认识Flowable   Flowab ...

  3. 工作流JBPM_day01:3-使用JBPM的API添加与执行流程

    工作流JBPM_day01:3-使用JBPM的API添加与执行流程 流程定义画完得到压缩文件--->部署流程定义-->启动流程实例-->查询我的个人任务列表-->办理任务--& ...

  4. 玩转Windows服务系列——服务运行、停止流程浅析

    通过研究Windows服务注册卸载的原理,感觉它并没有什么特别复杂的东西,Windows服务正在一步步退去它那神秘的面纱,至于是不是美女,大家可要睁大眼睛看清楚了. 接下来研究一下Windows服务的 ...

  5. Web程序的运行原理及流程(一)

    自己做Web程序的开发也有两年多了 从最开始跟风学框架  到第一用上框架的欣喜若狂 我相信每个程序员都是这样过来的 在大学学习一门语言 学会后往往很想做一个实际的项目出来  我当时第一次做WEB项目看 ...

  6. 玩转Windows服务系列——服务运行、停止流程浅析

    原文:玩转Windows服务系列——服务运行.停止流程浅析 通过研究Windows服务注册卸载的原理,感觉它并没有什么特别复杂的东西,Windows服务正在一步步退去它那神秘的面纱,至于是不是美女,大 ...

  7. [转] Linux下程序的加载、运行和终止流程

    TAG: linux, main, _start DATE: 2013-08-08 原文地址: http://blog.csdn.net/tigerscorpio/article/details/62 ...

  8. 【.NetCore学习】ubuntu16.04 搭建.net core mvc api 运行环境

    查看linux内核版本 uname -a 打印结果 python@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed ...

  9. 在 IntelliJ IDEA 中配置 Spark(Java API) 运行环境

    1. 新建Maven项目 初始Maven项目完成后,初始的配置(pom.xml)如下: 2. 配置Maven 向项目里新建Spark Core库 <?xml version="1.0& ...

随机推荐

  1. java队列的实现

    队列也可以通过数组和链表两种方式来实现. 1.链表方式实现 class Node{ Node next = null; int data; public Node(int data){this.dat ...

  2. mybatis参数处理 $#

  3. ES6 随记(3.2)-- 正则的拓展 & 数值的拓展

    上一章请见: 1. ES6 随记(1)-- let 与 const 2. ES6 随记(2)-- 解构赋值 3. ES6 随记(3.1)-- 字符串的拓展 4. 拓展 b. 正则的拓展 首先又是关于 ...

  4. Python3.x:pyodbc调用sybase的存储过程

    Python3.x:pyodbc调用sybase的存储过程 示例代码 # python3 # author lizm # datetime 2018-03-02 17:00:00 # -*- codi ...

  5. cocoa应用程序中NSStatusItem的使用

    mac上的应用程序除了左上方会有菜单之外,在屏幕的右上方也会有一个图标样的菜单,这个类似于windows上右下角的system tray. 本文讲述如何给自己的应用程序添加一个system tray( ...

  6. What's the difference between UTF-8 and UTF-8 without BOM?

    https://stackoverflow.com/questions/2223882/whats-the-difference-between-utf-8-and-utf-8-without-bom ...

  7. [LnOI2019]加特林轮盘赌(DP,概率期望)

    [LnOI2019]加特林轮盘赌(DP,概率期望) 题目链接 题解: 首先特判掉\(p=0/1\)的情况... 先考虑如果\(k=1\)怎么做到\(n^2\)的时间复杂度 设\(f[i]\)表示有\( ...

  8. BZOJ-5424: 烧桥计划(单调队列)

    BZOJ-5424: 烧桥计划(单调队列) 题目链接 题解: 先考虑最暴力的\(dp\):设\(f[k][i]\)表示搞掉第\(1\sim i\)段,烧了\(k\)段的最小花费,设\(calc(x,y ...

  9. Makefile文件应用——huge项目

    提高复用性 在build目录下,保存公用部分make.rule (1)绝对路径 用ROOT变量保存项目根目录 (2)增加控制变量 EXE/LIB/ (3)头文件查找目录 gcc 的-I(i的大写)选项 ...

  10. No module named yum

    升级python之后,执行yum的时候可能出现错误,类似: There was a problem importing one of the Python modulesrequired to run ...