自己开发的工作流引擎
辞职了,很久没写文章了,我的工作流项目烂了,是团队烂了;我现在想把这套东西贴出来,希望大家吐个槽;望大家不吝指点!
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,没错;
填好了提交了,下个环节应该是超级用户来处理的;
进去看下
简单的流程就跑完了;