Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

基于开源SnakerFlow工作流引擎,将其和springboot进行整合成为一个能够快速工程应用的轻量级工作流引擎组件,适用于常见的业务审批流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持。

Notifications You must be signed in to change notification settings

snakerflow-starter/snakerflow-spring-boot-starter

Repository files navigation

snakerflow-spring-boot-starter

本项目是基于开源SnakerFlow工作流引擎,将其和springboot进行整合成为一个能够快速工程应用的轻量级工作流引擎组件,本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持。

使用定位:适用于常见的业务审批流程和状态机流转,状态机流转相对复杂、审批涉及多角色、流程模板需要灵活定义。

本项目也是本着为大家提供一个可以一起讨论和改进SnakerFlow的平台,不会应用于任何商业项目和商业盈利, 交流群QQ:979147234

核心支持

  • snakerflow和springboot无缝整合
  • 支持starter方式一键引入
  • 支持一键初始化依赖SQL表
  • ORM支持和mybatis-plus无缝整合
  • 兼容redis cacheManager冲突
  • 目前支持H2、Mysql示例

start

  1. 快速体验
  1. 快速使用,首先引入starter依赖
<dependency>
 <groupId>com.github.snakerflow-starter</groupId>
 <artifactId>snakerflow-spring-boot-starter</artifactId>
 <version>1.0.8/version>
</dependency>

新增配置项

mybatis-plus:
 type-aliases-package: org.snaker.engine.entity
  1. 初始化依赖数据库表

版本更新

  • 2019年12月05日 新增controller用于调试
  • 2020年1月4日 完成starter封装
  • 2020年3月8日 完成starter包的完全抽取,并增加测试工程,一目了然
  • 2020年3月16日 发布第一版starter 1.0.0到maven中央仓库
  • 2020年3月16日 发布1.0.1 兼容Redis cacheManager 冲突
  • 2020年05月31日 去掉无用依赖,快速使用体验
  • 2021年05月09日 配置改成config文件形式,解决Mybaits-puls分页问题(1.0.4)
  • 2021年05月10日 SnakerFlow升级到最新版2.5.1(1.0.5)

使用示例

  • 可以使用参考项目实例中的 SnakerEngineFacets
  • 初始化流程 SnakerEngineFacets.initFlows(已经预设了个请假流程)
  • 发起一个测试流程
public Order startInstanceById(String processId, String operator, Map<String, Object> args) {
 return engine.startInstanceById(processId, operator, args);
}
  • 流程推进
public List<Task> execute(String taskId, String operator, Map<String, Object> args) {
 return engine.executeTask(taskId, operator, args);
}

SnakerFlow流程引擎简介

Snaker是一个基于Java的轻量级工作流引擎,适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持。

轻量: snaker-core.jar大小208K,代码行数约7000行,强大的扩展支持,不依赖于具体的ORM框架

简单: 表设计简单,七张核心表

支持图形化流程设计

njZEtI.png 8RzktO.png

支持编写流程.snaker文件

<process displayName="请假流程测试" instanceUrl="/snaker/flow/all" name="leave">
<start displayName="start1" layout="24,124,-1,-1" name="start1">
<transition g="" name="transition1" offset="0,0" to="apply"/>
</start>
<end displayName="end1" layout="570,124,-1,-1" name="end1"/>
<transition g="" name="transition2" offset="0,0" to="approveDept"/>
</task>
<task assignee="approveDept.operator" displayName="部门经理审批" form="/flow/leave/approveDept" layout="272,122,-1,-1" name="approveDept" performType="ANY">
<transition g="" name="transition3" offset="0,0" to="decision1"/>
</task>
<decision displayName="decision1" expr="#day &gt; 2 ? 'transition5' : 'transition4'" layout="426,124,-1,-1" name="decision1">
<transition displayName="&lt;=2天" g="" name="transition4" offset="0,0" to="end1"/>
<transition displayName="&gt;2天" g="" name="transition5" offset="0,0" to="approveBoss"/>
</decision>
<task assignee="approveBoss.operator" displayName="总经理审批" form="/flow/leave/approveBoss" layout="404,231,-1,-1" name="approveBoss" performType="ANY">
<transition g="" name="transition6" offset="0,0" to="end1"/>
</task>
</process>
  • snaker的流程设计可以使用snaker-web或者使用eclipse插件设计,插件在群聊里面。

数据库ER模型

njAfBj.png

核心流程

更多了解

Snaker Document

https://yunmel.gitbooks.io/snakerflow/

联系方式

QQ群:979147234

邮箱:zhaoguoqing360@126.com

点个赞

如果感觉本项目对你有用,请作者喝个咖啡吧

NAHLqJ.png

About

基于开源SnakerFlow工作流引擎,将其和springboot进行整合成为一个能够快速工程应用的轻量级工作流引擎组件,适用于常见的业务审批流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /