首页 > 代码库 > 自己开发的工作流引擎

自己开发的工作流引擎

辞职了,很久没写文章了,我的工作流项目烂了,是团队烂了;我现在想把这套东西贴出来,希望大家吐个槽;望大家不吝指点!

android暂未完成,ios还未开发

工作流引擎设计工具我是使用wpf做的一个客户端程序,能可视化的设计流程l;

整个流程的跑动是asp.net做的,并提供了相应的接口,便于移动端调用!

先看看整个项目的截图把:

1)流程设计工具,用户身份验证,根据登陆用户获取隶属于该用户能操作的流程模板,请求wcf来进行身份验证;

2)这个是验证后获取用户具有权限的工作流模板;(1)为流程模板分类,便于设计和实际跑时管理(2)为模板列表,并有些基本信息,状态,名称,等信息;双击可对其进行编辑;(3)左上角+号为创建一个工作流;

 

3)创建一个工作流,程序默认会加入开始和结束环节,一个工作流必须有开始,有结束;

工具栏

(1):添加一个普通环节;普通环节,能给该环节设计访问权限,可编辑权限,处理动作等

(2):添加一个分流环节;何为分流,即一个事物需要两或多个角色同时同意才能够进入下一个环节

(3)添加一个合理环节;有分必合,这是和分流环节配套使用,因为一山不容二虎,老大始终只有一个。

(4)添加一个连接线;何为连接线,从a栋楼走到b栋楼必须得有路,不可能飞过去,就算飞也得有个路径;那么这个连接线就充当这条路,并能设置条件,满足了你才能进入下一个环节,就好像深圳地铁安检一样,你包里有危险东西,安保同志是肯定不让你坐地铁的;

(5)删除选中的对象:我选择设计面板上的任何一个对象(连接线,环节)我多可以干掉

(6)html模板编辑器;web上流程内容、格式如何展示,就得靠这个东西去编辑了,想想还是有点小鸡冻

 (7)保存编辑:将整个模板的结构保存到服务器数据库中;

 

4)创建一个请假流程:

 首先我可能会添加这个流程用到的字段,什么类型的,浏览器上的输入控件是什么,库中的数据类型是什么,默认值是什么,是否需要默认从字典表中绑定什么等等信息,任你发挥好了;

5)做了这些了,得设定这个申请环节信息了;

 1)基本信息 :基本信息的设置,名称,处理时限,超过时限了是否跳过该环节

2)人员设置:能访问这个环节的角色,部门,个人等权限设置

3)处理动作:到了这个环节有哪些操作,提交,撤回等其他动作(这个就和连接线配合了)

4)信息项设置:哪些字段在这个环节可见,可编辑

5)特殊权限:暂未实现

 

人员设置:

处理动作

信息项设置:

 

页面如何展示呢?html编辑器来了;

完成一个模板:

 

 

现在模板完成了,看是否能按照设计跑呢?我们登陆管理系统一看便知:能发起申请的是非超级用户的两个用户:

果然没错,是它是它;我们发起一个,看是否这杨跑呢?

 

悠嘻,没错,是我写的个table,没错;

 

填好了提交了,下个环节应该是超级用户来处理的;

进去看下

 

 

简单的流程就跑完了;