一. 问题:
如何启动一个流程实例?
二. 详细
针对该流程,启动一个流程表示发起一个新的请假申请单,这就相当于 java类与 java 对象的关
系,类定义好后需要 new创建一个对象使用,当然可以 new 多个对象。对于请假申请流程,张三发
起一个请假申请单需要启动一个流程实例,请假申请单发起一个请假单也需要启动一个流程实例。
主要code如下:
/**
* 如何启动一个流程?
*/
@Test
public void startProcessInstance() {
// 1. 创建ProcessEngineConfiguration
ProcessEngineConfiguration configuration = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
// 2. 创建ProcessEngine对象
ProcessEngine processEngine = configuration.buildProcessEngine();
// 获取RuntimeService
RuntimeService runtimeService = processEngine.getRuntimeService();
// 更加流程定义的key 启动流程
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_1");
System.out.println("流程定义id:" + processInstance.getProcessDefinitionId());
System.out.println("流程实例id:" + processInstance.getId());
System.out.println("当前获得id:" + processInstance.getActivityId());
}
注意: key是需要去库里进行找到或通过Java代码查询获得
启动实例之后的运行结果如下:
三. 小结
通过RuntimeService即可实现对 .bpmn 文件的部署,流程定义部署在 activiti后就可以通过工作流管理业务流程了,也就是说上边
部署的请假申请流程可以使用了。