Snaker开源工作流研究001——简介

时间:2021-03-22 04:06:24

Snaker官网 :http://snakerflow.com/

截止2014年12月15日星期一 最新版本2.4.0

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

轻量:核心代码行数大约7000行,强大的扩展性,支持Spring、Jfinal、Nutz平台级框架;支持Jdbc、SpringJdbc、Hibernate3or4、Mybatis等orm框架

简单:表设计简单,流程组件简单[start/end/task/custom/subprocess/decision/fork/join]

灵巧:暴露大量可扩展接口,支持流程设计器、流程引擎的组件模型自定义[节点自定义、属性自定义、表单自定义]

开源协议:Apache License Version 2.0
源码地址: github:
流程引擎: snakerflow:https://github.com/snakerflow/snakerflow
演示应用(Spring): snaker-web:https://github.com/snakerflow/snaker-web

Eclipse插件: https://github.com/snakerflow/snaker-designer

oscgit:
snakerflow:
http://git.oschina.net/yuqs/snakerflow
snaker-web:http://git.oschina.net/yuqs/snaker-web

文档 : http://snakerdoc.jd-app.com/

流程和表单web设计器 Ueditor Formdesign

http://formdesign.leipi.org/

 

百度文库用户手册:
http://wenku.baidu.com/link?url=Iua8ZRQG3z04c6uzvqqsH3_Qd8sa9Rt2NGsA0LlhpTadtqxXbA2JivCu6A-dgUH4WDKbs207IwmltMsXoaMcl9qRu4BkFfZYpsM14NMU1nm

入门:http://snakerflow.github.io/quickstart.html

百度网盘:http://pan.baidu.com/s/1hqza8BU

http://pan.baidu.com/s/1sjv2KbV

version 2.4.0

1、数据库方言自动适配,取消snaker.xml中的方言配置
2
、支持JFinal1.9,可以合并jfinalsnaker的属性文件
3
、支持已结束流程实例、任务的唤醒
4
、修复sqlserver+jdbcAccess整合出现的getParameterMetaData不支持bug

 

version 2.3.0

1.增加已完成实例、任务的唤醒功能
2.
流程引擎初始化允许加载自定义属性
3.
测试基类允许子类重新实现getEngine方法
4.
节点模型增强,getNextModels方法可获取后续指定类型的集合

 

version 2.2.0

1.抄送记录增加抄送时间、已阅时间
2.
任务、实例完成时增加处理动作
3.
实例查询增加根据流程名称模糊匹配号
4.
修复会签多人参与的bug

 

version 2.1.1

1.snaker-spring子模块中增加spring的测试用例
2.
修复子流程的后续任务parentTaskIdstart的问题
3.
修复springjdbcgetLatestProcessVersion返回默认0的版本号

 

version 2.1.0

1.IOrderService支持增加全局变量方法addVariable
2.
增加抽象类Assignment支持读取所属的任务模型
3.BUG:
驳回的canReject方法存在算法问题

 

version 2.0.0

1.snakerflow重新规划,将第三方扩展支持以独立子模块发布
2.
支持自动初始化脚本,只需要用户创建一个数据源即可
3.
支持Web自定义表单、eclipse插件自定义表单[未体现在snaker-web演示项目中]
4.
流程web设计器增强,支持绑定自定义表单、支持选择参与者
5.
流程状态图增强,支持单击活动节点显示处理人,抵达时间,并且可动态添加参与者
6.
增加jfinal支持,事务可统一由jfinal控制
7.
增加nutz支持,事务可统一由nutz控制
8.
增强:
TaskService
增加根据taskId获取TaskModelapi
Order
实体的orderNo支持由map传递运行时数据(key:SnakerEngine.ID)
增加IReminder接口,用于超时提醒
TaskModel
增加表单自定义的模型FieldModel,由表单设计器插件定义表单

 

version 1.5.1

1.BUG修复:设置assignmentHandler属性无效

 

version 1.5.0

1.增加任务转派功能
2.
增加任务主办、协办功能
3.
增加流程实例抄送功能
4.
重构ServiceContext,自适应Springbeansnaker.xml中配置的bean,以及用户自定义获取bean的方式
5.
重构ordertask的变量获取方式,方便与模板语言整合
6.
流程定义增加类别、创建人、创建时间字段

 

version 1.4.1

1.流程定义的编码格式由GBK->UTF-8

 

version 1.4.0

1.时限控制:任务超时提醒、流程实例超时提醒,任务自动执行
2.
支持任务委托代理
3.
代码重构

 

version 1.3.0

1.增加对流程表原生SQL的查询nativeQuery...()
2.
增加Cache机制,支持单个虚拟机环境的内存cache以及ehcache
3.
动态添加参与者方法engine.task().addTaskActor()支持performType参数
4.
流程定义支持多版本,如根据name启动流程,默认启动最新版本
5.
增加postgresql数据库的schemadialect.需要调整bytea类型处理
6.wf_process
表删除query_sqlparent_id字段,并且name字段删除唯一性约束
7.
代码重构
8.bug:
流程重新部署redeploy方法中的save->update
9.bug:mybatis
updateProcess配置sql中删除query_url字段
10.bug:dbAccess
updateProcess方法参数问题修复
11.bug:
分页查询sql语句引用问题

 

version 1.2.6

1.增加QueryFilter查询过滤类,增强IQueryService的查询api

 

version 1.2.5

1.流程定义业务类调整,去除update方法。统一使用deploy部署、更新
2.bug:join
节点的合并规则问题修复
3.
代码重构

 

version 1.2.4

1.去除@override注解
2.
降低dbcpdbutils依赖库的版本适应jdk5
3.jdk5
依赖调整
4.
测试用例以snaker-example项目独立

 

version 1.2.3

1.提高服务上下文ServiceContext方法的可见性
2.
增加SpringHelper帮助类适应低版本spring
3.
调整Springapi以适应低版本spring
4.
升级流程设计器插件snaker-designer-1.3.0
5.
代码重构

 

version 1.2.2

1.增加spel的表达式支持.spring整合时,默认使用spel解析器

 

version 1.2.1

1.支持自定义表达式引擎实现。默认使用juel引擎
2.
删除bsh表达式引擎的依赖
3.
删除ExprHelper帮助类
4.
改造decision的测试用例

 

version 1.2.0

1.Task模型增加assignmentHandler属性,通过实现AssignmentHandler接口支持编码设置参与者
2.
删除流程定义仅更新状态state,物理数据不删除
3.
支持所有节点模型的前置、后置拦截器
4.bug:mybatis
相关问题修复

 

version 1.(0/1).*

首次提交,实现基本功能:
1.
支持常规业务流程逻辑[直流、选择分支、并行、子流程、会签、任意流]
2.
支持驳回、任意回退、撤回、加减签
3.
支持Spring环境下的依赖管理
4.
支持以下orm框架:jdbc+dbutilsmybatishibernatespringjdbc
5.
支持以上orm框架的事务管理以及JTA事务管理