workflow-engine/workflow-engine-core/src/main/resources
2024-09-12 16:36:43 +08:00
..
mapper update - 优化特定场景下扩展任务表的状态不太正常的问题 2024-04-28 14:51:33 +08:00
sql feat(REQ-2924) - 调整新版日志表的租户字段类型兜底 2024-09-12 16:36:43 +08:00
readme.md update - 完善工程描述 2023-10-05 18:37:17 +08:00

一、Core 包说明

概要信息

  1. 该包可以独立的被二方/三方以 jar 包的形式引入工程, 即可使用 Flowable 引擎,例如枢智业务便是以此方式进行实践.
  2. 该包中 src/main/resources/sql 是 Flowable 引擎会使用的库表结构, 使用前需要执行创建.
  3. 该包中 cn/axzo/workflow/core/service 下的 Service 接口是主要是抽象集成的 API, 业务主要也是使用这些 API.

接口描述

BpmnProcessModelService:流程模型管理
BpmnProcessDefinitionService:流程定义管理
BpmnProcessInstanceService:流程实例管理
BpmnProcessTaskService:流程实例下任务管理
FormModelService:表单模型管理
FormDefinitionService:表单定义管理
FormInstanceService:表单实例管理

库表描述

  • ACT_RE 'RE' 表示 repository。这个前缀的表包含了流程定义和流程静态资源图片规则等等
  • ACT_RU'RU' 表示 runtime。这些运行时的表包含流程实例任务变量异步任务等运行中的数据。Flowable只在流程实例执行过程中保存这些数据在流程结束时就会删除这些记录。这样运行时表可以一直很小速度很快。
  • ACT_HI'HI' 表示 history。这些表包含历史数据比如历史流程实例变量任务等等。
  • ACT_GE'GE' 表示 general。通用数据用于不同场景下。
  • ACT_ID: 'ID' 表示 identity (组织机构)。这些表包含标识的信息,如用户,用户组,等等。

二、RocketMQ 使用说明

  1. 服务方需要主动引入二方包
       <dependency>
           <groupId>cn.axzo.workflow</groupId>
           <artifactId>workflow-engine-core</artifactId>
           <version>1.0.1-SNAPSHOT</version>
       </dependency>
       <dependency>
           <groupId>cn.axzo.framework</groupId>
           <artifactId>axzo-mybatisplus-spring-boot-starter>    
       </artifactId>
       </dependency>
       <dependency>
           <groupId>cn.axzo.framework.rocketmq</groupId>
           <artifactId>axzo-common-rocketmq</artifactId>
       </dependency>
  1. 服务方主动配置Topic 监听器
   @Configuration(proxyBeanMethods = false)
   @ConditionalOnClass(RocketMQTemplate.class)
   @RocketMQMessageListener(topic = DEFAULT_EVENT + "${spring.profiles.active}",
           consumerGroup = "${spring.application.name}-${spring.profiles.active}"
   )
   public static class DefaultListener extends BaseListener implements RocketMQListener<MessageExt> {

       @Autowired
       private EventConsumer eventConsumer;

       @Override
       public void onMessage(MessageExt message) {
           super.onEvent(message, eventConsumer);
       }
   }
  1. 配置 application.yml
rocketmq:
  name-server: 114.116.202.128:9876
  producer:
    group: yoke-dev
    send-message-timeout: 10000
  1. 使用说明
  • mysql-connector-java 目前只能使用8.0.20 版本,否则 flowable 引擎内部会启动异常
  • 启动类需要增加包路径扫描 @SpringBootApplication(scanBasePackages="cn.axzo.workflow")
  • Mybatis Mapper 文件扫描: MapperScan({"cn.axzo.workflow.core.**.mapper"})
// 接入使用示例
@SpringBootApplication(exclude = RabbitAutoConfiguration.class,
        scanBasePackages = "cn.axzo.workflow")
@MapperScan({"cn.axzo.workflow.core.**.mapper"})
public class YokeApplication {}