Flowable工作流-简单的介绍
Flowable - 工作流
官方文档:
https://tkjohn.github.io/flowable-userguide/#_introduction
主要对象ProcessEngine
ProcessEngine 主要对应几个服务:
- RepositoryService 资理源管
- RunTimeService 流程运行服务
- TaskService 任务服务
- HistoryService 历史记录服务
RepositoryService 资理源管
部署流程
将流程定义部署至Flowable引擎,需要使用RepositoryService,其可以从ProcessEngine对象获取。使用RepositoryService,可以通过XML文件的路径创建一个新的部署(Deployment),并调用deploy()方法实际执行:
RepositoryService repositoryService = processEngine.getRepositoryService();
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource("holiday-request.bpmn20.xml")//resouce目录下的文件
.deploy();
查询部署实例
/**
* 获取flowable实例对象
*/
ProcessEngineConfiguration configuration=null;
@Before
public void testProcessEngine() {
configuration = new StandaloneProcessEngineConfiguration()
//链式调整
.setJdbcUrl("jdbc:mysql://localhost:3306/2022?characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai")
.setJdbcUsername("root")
.setJdbcPassword("123456")
.setJdbcDriver("com.mysql.cj.jdbc.Driver")
.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
//创建引擎对象
// ProcessEngine processEngine = configuration.buildProcessEngine();
}
//部署
@Test
public void deployment(){
ProcessEngine processEngine = configuration.buildProcessEngine();
//获取资源对象
RepositoryService repositoryService = processEngine.getRepositoryService();
//创建一个流程部署对象
DeploymentBuilder deployment = repositoryService.createDeployment();
//设置流程图
deployment.addClasspathResource("holiday-request.bpmn20.xml");
deployment.name("holiday-request");
//开始部署
deployment.deploy();
}
//查询
@Test
public void deploymentQuery(){
ProcessEngine processEngine = configuration.buildProcessEngine();
//获取资源对象
RepositoryService repositoryService = processEngine.getRepositoryService();
//创建一个流程部署对象
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
ProcessDefinition processDefinition = processDefinitionQuery.deploymentId("1").singleResult();
System.out.println("processDefinition.getDeploymentId() = " + processDefinition.getDeploymentId());
System.out.println("processDefinition.getName() = " + processDefinition.getName());
}
RunTimeService 流程运行服务
TaskService 任务服务
HistoryService 历史记录服务
开开心心,上班!
快快乐乐,游玩!
及时行乐!