赵走x博客
网站访问量:151835
首页
书籍
软件
工具
古诗词
搜索
登录
28、API变量
27、查询API
26、API异常策略
25、 流程引擎API与服务
24、事件处理器
23、映射诊断上下文
22、日志
21、配置部署缓存
20、配置在表达式与脚本中可用的bean
19、配置异步历史
18、配置历史
17、作业执行器
16、数据库与表
15、支持的数据库
14、配置JNDI数据源
13、配置数据库
12、ProcessEngineConfiguration bean
11、创建ProcessEngine
10、开始使用Flowable REST API
9、使用历史数据
8、实现JavaDelegate
7、查询与完成任务
6、另一个话题:事务
5、启动流程实例
4、部署流程定义
3、构建命令行程序
2、Flowable是什么?
1、简介
5、启动流程实例
资源编号:551109
热度:79
5、Flowable BPMN 用户手册 (v 6.3.0):启动流程实例
现在已经在流程引擎中部署了流程定义,因此可以使用这个流程定义作为“蓝图”启动流程实例。 要启动流程实例,需要提供一些初始化流程变量。一般来说,可以通过呈现给用户的表单,或者在流程由其他系统自动触发时通过REST API,来获取这些变量。在这个例子里,我们简化为使用java.util.Scanner类在命令行输入一些数据: ``` Scanner scanner= new Scanner(System.in); System.out.println("Who are you?"); String employee = scanner.nextLine(); System.out.println("How many holidays do you want to request?"); Integer nrOfHolidays = Integer.valueOf(scanner.nextLine()); System.out.println("Why do you need them?"); String description = scanner.nextLine(); ``` 截下来,我们使用RuntimeService启动一个流程实例。收集的数据作为一个java.util.Map实例传递,其中的键就是之后用于获取变量的标识符。这个流程实例使用key启动。这个key就是BPMN 2.0 XML文件中设置的id属性,在这个例子里是holidayRequest。 (请注意:除了使用key之外,在后面你还会看到有很多其他方式启动一个流程实例) ```
``` ``` RuntimeService runtimeService = processEngine.getRuntimeService(); Map
variables = new HashMap
(); variables.put("employee", employee); variables.put("nrOfHolidays", nrOfHolidays); variables.put("description", description); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("holidayRequest", variables); ``` 在流程实例启动后,会创建一个执行(execution),并将其放在启动事件上。从这里开始,这个执行沿着顺序流移动到经理审批的用户任务,并执行用户任务行为。这个行为将在数据库中创建一个任务,该任务可以之后使用查询找到。用户任务是一个等待状态(wait state),引擎会停止执行,返回API调用处。