flowable工作流看这一篇就够了(高级篇 上)

目录

一、Flowable基础表结构

1.1、表结构讲解

1.2、ProcessEngine讲解

1.2.1、硬编码的方式

1.2.2、配置文件

1.2.3、自定义配置文件

1.3、Service服务接口

1.3.1、Service创建方式

1.3.2、Service总览

1.4、图标介绍

1.4.1、事件图标

1.4.2、活动(任务)图标

1.4.3、结构图标

1.4.4、网关图标

1.5、流程部署详解

1.5.1、部署实现

1.5.2、部署涉及表结构

1.5.3、挂起和激活

1.6、启动流程实例

1.7、处理流程

1.8、完成一个流程

二、任务分配和流程变量

2.1、任务分配

2.1.1、固定分配

2.1.2、表达式分配

值表达式

方法表达式

2.1.3、监听器分配

2.2、流程变量

2.2.1、全局变量

2.2.2、局部变量

2.2.3、案例讲解


一、Flowable基础表结构

1.1、表结构讲解

工作流程的相关操作都是操作存储在对应的表结构中,为了能更好的弄清楚Flowable的实现原理和细节,我们有必要先弄清楚Flowable的相关表结构及其作用。在Flowable中的表结构在初始化的时候会创建五类表结构,具体如下:

  • ACT_RE :'RE'表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。

  • ACT_RU:'RU'表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Flowable只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。

  • ACT_HI:'HI'表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。

  • ACT_GE: GE 表示 general。 通用数据, 用于不同场景下

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面我来给您演示一个简单的Flowable工作实例。 首先,我们需要准备以下三个环节: 1. Flowable引擎配置:用于配置Flowable引擎相关的参数。 2. 程定义:用于定义工作程。 3. 程实例:用于实例化工作,并执行程。 接下来,我将逐一演示这三个环节的具体实现。 1. Flowable引擎配置: ```java @Configuration public class FlowableConfig { @Bean public ProcessEngineConfigurationImpl processEngineConfiguration() { SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration(); configuration.setDataSource(dataSource); configuration.setTransactionManager(transactionManager); configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); configuration.setAsyncExecutorActivate(false); configuration.setHistory(ProcessEngineConfiguration.HISTORY_FULL); configuration.setJobExecutorActivate(false); return configuration; } @Bean public ProcessEngineFactoryBean processEngine() { ProcessEngineFactoryBean factoryBean = new ProcessEngineFactoryBean(); factoryBean.setProcessEngineConfiguration(processEngineConfiguration()); return factoryBean; } @Bean public RepositoryService repositoryService() { return processEngine().getObject().getRepositoryService(); } @Bean public RuntimeService runtimeService() { return processEngine().getObject().getRuntimeService(); } @Bean public TaskService taskService() { return processEngine().getObject().getTaskService(); } @Bean public HistoryService historyService() { return processEngine().getObject().getHistoryService(); } @Bean public ManagementService managementService() { return processEngine().getObject().getManagementService(); } } ``` 在这个配置类中,我们使用了SpringProcessEngineConfiguration来配置Flowable引擎,同时通过各个@Bean方法来获取Flowable引擎的各个服务对象。 2. 程定义: ```java public class SimpleApprovalWorkflow { public static final String PROCESS_DEFINITION_KEY = "simpleApproval"; public static BpmnModel createProcessModel() { BpmnModel model = new BpmnModel(); Process process = new Process(); process.setId(PROCESS_DEFINITION_KEY); process.setName("Simple Approval Workflow"); model.addProcess(process); // Start Event StartEvent startEvent = new StartEvent(); startEvent.setId("startEvent"); process.addFlowElement(startEvent); // User Task UserTask userTask = new UserTask(); userTask.setId("userTask"); userTask.setName("Approve Request"); userTask.setAssignee("${employee}"); process.addFlowElement(userTask); // End Event EndEvent endEvent = new EndEvent(); endEvent.setId("endEvent"); process.addFlowElement(endEvent); // Sequence Flow process.addFlowElement(new SequenceFlow("startEvent", "userTask")); process.addFlowElement(new SequenceFlow("userTask", "endEvent")); return model; } } ``` 在这个程定义中,我们定义了一个包含一个用户任务的工作。其中,用户任务会被分配给一个变量名为employee的用户,该用户需要执行审批操作。 3. 程实例: ```java @Service public class SimpleApprovalWorkflowService { @Autowired private RuntimeService runtimeService; public void startWorkflow(String employee) { Map<String, Object> variables = new HashMap<>(); variables.put("employee", employee); runtimeService.startProcessInstanceByKey(SimpleApprovalWorkflow.PROCESS_DEFINITION_KEY, variables); } } ``` 在这个程实例中,我们使用了RuntimeService来启动工作,并通过variables参数来指定需要执行审批操作的用户。 好了,以上就是一个简单的Flowable工作实例的实现过程。当然,实际的工作实现会更为复杂,但基本的程定义、引擎配置和程实例的实现思路大致相同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我向往自由

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值