一、下载 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. python安装virtualenv

    pip install virtualenv 为了使用更方便用,安装另外一个,windows下要-win,linux下不用 pip install virtualenvwrapper-win 使用方法 ...

  2. Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找 //查找是否存在 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Cre ...

  3. 微信小程序学习笔记(3)--------框架之配置

    我们使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. app.json 配置项列表 属性 类型 必填 描述 pages Stri ...

  4. 关于maven包冲突的一些思路

    在最近的项目中出现了很多包冲突,有时一下子就能猜到错误,但是有写往往需要很久都不能定位问题,尤其是项目人员参差不齐,有时为了方便私自引入一些工具类,而未考虑到项目本身. maven的出现方便了我们的包 ...

  5. xaml可扩展应用程序标记语言

    xaml 类似于 html,但不是html,它是基于xml语言的:’html可以呈现在浏览器中而xaml 可以现实 3d动画等特效. xaml  是强类型语言,  是解释性语言,虽然他可以被编译.

  6. StringUtils用法(isNotEmpty和isNotBlank)

    isNotEmpty将空格也作为参数,isNotBlank则排除空格参数 参考 Quote StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String ...

  7. JZ2440裸机点亮LED【学习笔记】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 一.我们首先来做第一个实验,用汇编语言点亮板子上的LED. 1.1 LED的原理图 从下面的原理图可知LED1是 ...

  8. Git服务器的Gitosis安装配置及gitignore的使用方法

    Git服务器Gitosis安装设置 1.安装 openssh服务器 sudo apt-get install openssh-server openssh-client 2.创建个人公钥和私钥 在默认 ...

  9. Spring Boot 中使用jsp

    接SpringBoot 快速入门(Eclipse): 步骤一:视图支持 Springboot的默认视图支持是Thymeleaf,但是Thymeleaf我们不熟悉,我们熟悉的还是jsp. 所以下面是讲解 ...

  10. LeetCode——Number Complement

    LeetCode--Number Complement Question Given a positive integer, output its complement number. The com ...