流程定义
- 使用Eclipse设计器插件
- 使用web设计器
- 组件模型属性
使用Eclipse设计器插件
eclipse设计器插件是在eclipse4.3\(kepler\)版本开发的,经测试,是可以在eclipse4.3+,myeclipse9+上面运行
安装Eclipse插件
在百度网盘上下载snaker-designer-*.*.*.jar插件包,直接copy至eclipse安装目录下的plugins文件夹里即可使用。
考虑到大家下载的eclipse版本可能无法使用设计器,建议直接从百度网盘上下载经过测试的eclipse-kepler版本
Myeclipse安装插件时,可直接把插件包copy至dropins文件夹下面即可
创建流程定义
1.新建流程
依次选择File->New->Other->Snaker,如下图所示:
选择Snaker Process File并输入文件名称,如下图所示:
点击Finish,则打开流程设计器主界面,其中包括两大部分:流程组件、属性Properties视图,如下图所示:
2.定义节点
由于节点定义都是拖拽式的,所以不方便用图形来演示。这里仅仅贴上一个定义好的请假流程图:
定义流程的几个注意点:
1)一个流程必须设置name、displayname属性
2)最常用的节点是task,如果是人工任务,则需要设置assignee[参与者]、form[设置表单url],表单url的规则可以表示contextPath下面的绝对路径,也可以表示相对路径[相对路径是用于页面include情况]
3)decision节点用于决策分支,必须设置expr属性,如果有多个选择分支,则建议设置连接线的expr属性,可参考测试用例
4)snaker支持的会签,仅仅是设置task的performType
5)snaker支持三种参与者方式
- 直接设置静态参与者,即assignee值为用户、部门或角色的标识符
- 通过运行时动态传递,即assignee值为变量名称,在调用流程引擎的api时,通过map参数传递这个变量值
- 通过自定义类[继承Assignment类],设置assignmentHandler属性,assign方法返回值就是参与者
6)主办、协办是通过task节点的taskType设置的。snaker既支持单独的节点作为协办节点,也支持主办节点动态的创建协办任务
3.保存定义
流程定义的保存,实际上就是将图形元素转换为xml格式并保存。上面请假流程的xml数据为
https://github.com/snakerflow/snaker-web/blob/master/src/main/resources/flows/leave.snaker
使用web设计器
web设计器是基于myflow开发的,使用的技术为raphael。
集成web设计器
设计器代码位于snaker-web项目的\snaker-web\src\main\webapp\styles\js\snaker目录下。
如果已有的项目需要集成web版本的设计器,主要是copy这个目录,并且参考\snaker-web\src\main\webapp\WEB-INF\content\snaker目录下process开头的jsp文件,因为设计器需要页面来编辑和展现。
创建流程定义 使用web设计器的前提是已经成功运行snaker-web应用,具体可参考“1.5演示部署”章节
1)新建流程
以admin账号登录snaker-web,点击左栏菜单:流程管理->流程定义,如下图所示:
点击“设计”按钮,则打开web流程设计器,如下图所示:
web版本的流程设计器布局与样式尽量与eclipse的设计器插件保持一致。其节点和属性参考“组件模型属性”介绍
在流程定义列表页面,点击“初始化”按钮,即可产生6个用于测试的业务流程,如下图所示:
注意:流程的状态表示当前流程是否可用,版本号用于管理同名流程的多版本管理
上图中的四个图标按顺序分别表示:启动流程、编辑、重新设计、禁用。点击重新设计,可打开已经定义好的业务流程,如下图所示:
2)定义节点
web设计器定义流程时注意以下两点:
1)web流程设计器还是适用于开发人员,不适合业务人员。如果面向业务人员,需要多设计器进行改造
2)设计器中连接线需要先点击连接线图标,再选择节点1、节点2,这样才能连接两个节点。连接线的删除是通过del键盘去操作的
3 保存定义
也是将图形元素转换为xml格式,并保存至数据库中,参见wf_process的content字段。