snaker文档 下载本文

engine.startInstanceByName(name) engine.startInstanceByName(name, version) engine.startInstanceByName(name, version, operator) engine.startInstanceByName(name, version, operator, args) startInstanceByName方法的参数为:流程名称name、版本号version、操作人operator、参数列表args 任务执行

执行任务是工作流平台中最常见的操作,其处理逻辑包括两部分:

完成当前任务 按照流程定义驱动产生新的任务 执行任务的调用方法如下:

engine.executeTask(taskId); engine.executeTask(taskId, operator); engine.executeTask(taskId, operator, args); executeTask参数分别表示:任务标识taskId、操作人operator、参数列表args

应用整合

为了方便整合,snaker提供了应用示例提供参考

snaker-springmvc http://git.oschina.net/yuqs/snaker-springmvc

基于SpringMVC、Spring3、Hibernate3、Snaker的快速整合示例,仅仅包括流程管理的功能,所有涉及到操作人员的部分全部使用admin,如果整合到具体项目时,一定要替换成系统当前登录的用户 ?

snaker-struts2 http://git.oschina.net/yuqs/snaker-struts2

基于Struts2、Spring3、Mybatis、Snaker的快速整合示例,仅仅包括流程管理的功能,所有涉及到操作人员的部分全部使用admin,如果整合到具体项目时,一定要替换成系统当前登录的用户 ?

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

基于SpringMVC、Spring3、Hibernate3、Shiro、Snaker搭建的基础演示应用,包含:用户管理、部门管理、角色管理、权限管理、资源管理、菜单管理、流程管理、数据字典等常用功能模块 ?

jfaker http://git.oschina.net/yuqs/jfaker

基于JFinal、Shiro、Snaker搭建的基础演示应用,包含:用户管理、部门管理、角色管理、权限管理、资源管理、菜单管理、流程管理、数据字典等常用功能模块 目前Snaker可独立运行,以API方式整合,同时也支持spring、jfinal、nutz三个平台,并且能够将事务托管给平台管理。其它情况下,需要自定义扩展。

?

API

?

API方式的事务由snaker自身管理,保证每次api调用事务的正确性。 snaker提供的测试用例目前就采用这种方式。 ? ?

spring

?

与spring整合过程,需要配置服务、事务,以保证事务交给spring管理。可以参考snaker-web项目

jfinal ?

与Jfinal整合类似于API方式 ? ?

nutz ?

与Nutz整合类似于API方式 ?

API整合

如果使用api集成,需要在snaker.xml中配置DBAccess、Transaction、Dialect import javax.sql.DataSource; import org.snaker.engine.SnakerEngine; import org.snaker.engine.access.jdbc.JdbcHelper; import org.snaker.engine.cfg.Configuration; public class SnakerHelper { private static final SnakerEngine engine; static { //使用项目中已有的DataSource、SessionFactory、SqlSessionFactory对象 //传递至initAccessDBObject方法中都可以 DataSource dataSource = JdbcHelper.getDataSource(); engine = new Configuration() .initAccessDBObject(dataSource) .buildSnakerEngine(); } public static SnakerEngine getEngine() { return engine; } } initAccessDBObject方法传递的参数值与snaker.xml配置的数据库访问对应关系:

参数类型 访问对象 事务管理拦截器 依赖库 commons-dbcp-1.4.jar DataSource JdbcAccess DataSourceTransactionInterceptor commons-dbutils-1.5.jar commons-pool-1.5.4.jar SessionFactory HibernateAccess Hibernate3TransactionInterceptor hibernate-*-3.5.5.jar SqlSessionFactory MybatisAccess MybatisTransactionInterceptor mybatis-3.2.3.jar initAccessDBObject方法也可以不调用,而使用snaker.properties中的jdbc.或hibernate.来初始化DataSource、SessionFactory、SqlSessionFactory。但在实际的项目,还是建议使用该项目已有的DataSource、SessionFactory、SqlSessionFactory

Spring整合

增加maven依赖或jar 配置DBAccess 配置服务类 配置事务管理 增加maven依赖或jar

maven坐标如下:

com.github.snakerflow snaker-spring *.*.* 如果非maven项目,需要到百度网盘下载jar包

配置DBAccess

访问类型 springjdbc hibernate hibernate mybatis

类路径

org.snaker.engine.spring.SpringJdbcAccess

org.snaker.engine.access.hibernate.Hibernate3Access org.snaker.engine.access.hibernate4.Hibernate4Access org.snaker.engine.access.mybatis.MybatisAccess

如配置Hibernate方式的DBAccess:

配置服务类

配置事务管理

需要将流程引擎的事务托管给spring统一管理