公司准备开发一套工作流引擎,以前没有什么OA开发经验,也是第一次设计工作流引擎,我把我的一些思路分享一下,希望得到些帮助或者能帮助到一些人。

产品的定位:

1、能够做到前后端分离

2、可以做到项目的分离使用,通过接口来实现

3、支持复杂流程逻辑 例如: 填写加班表单-》多人审核=》退回=》填写证明人=》指定人审核=》通过

或者

等等。

设计思想

一、通过对审批流程的分解可以得到三个动作  ,然后对这三个动作进行更细的分析得出结果如下: 

1、提写表单

表单表:例如加班单

表单元素表:加班单里面需要填写的输入框和下拉框等

表单存储表:加班单点击提交存储的值

表单事件表:如验证件,提交事件等

2、选择审核人

审核表:存储上一次动作的审核信息

审核用户表:所需要的审核人

审核组织架构表:查询所需要用的组织架构

3、条件判定

判定表:复杂的工作流中会对流程的结果进行判定,例如请假天数超过N天进行XXX动作

从填写【表单】开始,后面可以是 【判定】 也以是【审核】也可以是继续填写表单,这样就型成了一个工作流

二、动作通用表,考虑到良好的用户体验添加了附件、回复和@功能

主贴表:可以进行回复

从贴表:可以对回复进行跟贴

附件表:可以对动作添加多个附件

三、动作历史表

动作记录:在一种特殊情况下会用的到,就是你的操作被撤回到上一个动作, 这个时候就需要一个历史记录进行查看。

最新文章

  1. C#递归、动态规划计算斐波那契数列
  2. ASP.NET Web API自身对CORS的支持:从实例开始
  3. 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程
  4. AraxisMerge和beyond Compare做git mergetool配置
  5. WebLogic中的一些基本概念
  6. VPN服务器是什么?
  7. c语言模拟实现oc引用计数
  8. 学习Coding-iOS开源项目日志(二)
  9. C#中的函数式编程
  10. JavaScript表单处理(上)
  11. PHP5中PDO的简单使用
  12. NodeJS 各websocket框架性能分析
  13. sql中获得时间的参数
  14. ASP.NET State Service服务
  15. [AngularJS] Services, Factories, and Providers -- value & Providers
  16. Android布局文件-错误
  17. 【原创】leetCodeOj --- Sort List 解题报告
  18. 如何获得mysql数据库的所有的列
  19. Trident继承kafka
  20. JAVA的8种基本数据类型和类型转换

热门文章

  1. 用C#表达式树优雅的计算24点
  2. 让淘宝链接在微信中分享,GO
  3. MVC使用基架添加控制器出现的错误:无法检索XXX的元数据
  4. [转] The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing
  5. WPF Wonders: Transformations (and Robots!)
  6. Swift 正式开源, 包括 Swift 核心库和包管理器
  7. 【Math】余弦相似度 和 Pearson相关系数
  8. 【python】日志模块
  9. 一致性哈希算法(consistent hashing)【转】
  10. css中的position:relative和absolute 属性