代码示例:流程部署/发布
InputStream inputStream = new DefaultResourceLoader().getResource("classpath:BusinessProcessBeanTest.test.bpmn20.xml").getInputStream();
Deployment deploy = configuration.getRepositoryService()
.createDeployment()
//必须要.bpmn或者结尾
.addInputStream("资源名称.bpmn", inputStream)
.name("流程部署测试")
.key("这是Key")
.category("这是什么?")
.tenantId("租户ID")
.parentDeploymentId("1")
.deploy();
注意事项:configuration.getRepositoryService()可以获取到RepositoryService对象,在flowable中RepositoryService对象主要用于处理流程相关的一些操作,比如:【流程部署】、【流程删除】、【流程挂起】等操作。上面代码中有个地方需要注意,在调用addInputStream方法时需要传两个参数:资源名称、具体资源,资源名称需要.bpmn结尾,若不是以.bpmn结尾在发布的过程中ACT_RE_PROCDEF(业务流程定义数据表)不会执行同步流程定义的相关数据逻辑,原因是在部署肤哦吃中流程引擎会对文件名称做校验,源码如图。
代码示例:启动一个流程实例
configuration.getRuntimeService()
.createProcessInstanceBuilder()
//业务key,一般作为流程引擎和业务绑定的一个标识
.businessKey("业务号")
//流程定义的key,对应bpmn文件中process标签的id属性
.processDefinitionKey("businessProcessBeanTest")
//实例名称
.name("用户审批")
//租户ID,用于多租户场景
.tenantId("租户ID")
.start();
注意事项:1.processDefinitionKey(“businessProcessBeanTest”)中的参数应当是bpmn文件中process标签的id属性
2.tenantId(“租户ID”)中的参数应当是一个业务流程定义数据表存在的租户ID。具体源码如图。