1、流程图。

工作流可以做得很复杂,也可以设计的很简单。看下图

看这个图,一个流程图最基础的三部分:流程,步骤,操作。

2、流程模板。

流程图的程序描述就叫流程模板。一个流程模板大概需要的一些属性如下图:

三个表从上到下都是一对多的关系。flow表是一个流程整体的一些信息,flowstep是每个步骤,即图中每个结点的信息,flowaction就是每个操作,具体到图上我们可以看作是每条线。这三个表就构成了流程最基本的配置,也叫流程模板。当然如果继续丰富可以分拆出规则表,这里的设计隐含了一些规则的设计,即Params字段,这是一个xml字段,可以存储规则表达式,有了规则表达式,就可以完整代表操作指向,即当满足什么条件时提交会到哪一个步骤。

3、流程实例。

有了流程模板(就象我们程序中的 class),我们发起一个流程时和提交一个流程时就知道流程扭转的方法,每个流程发起后就是一个流程“实例”,实例要保存一些什么信息呢,看下图:

flowinstance是流程实例记录的一些信息,包括流程当事人,如请假人,流程模板信息,发起人、结束人、流程状态、相关时间等,这是公用表,每种流程一般还有个性化表单。

flowactiontrace是每个审批人待办和已办的日志信息,即谁的任务,什么时候到达,谁审批(代)了,什么时候审批的。

flowactiontracedata是flowactiontrace表的扩展,记录一些表单填写的数据。

4、常用操作

4.1、发起流程

A.插入flowinstance一条数据,插入flowactiontrace一条已经完成(submit为自己)了的数据

B.插入flowactiontrace一条或多条数据,owner为下一步处理人,submit字段为NULL,表示待办。

4.2、提交流程

A.读取flowactiontrace表,发现如果owner是当前登录人并且submit字段为NULL,表示有待办。

B.以上待办可以打开并提交,提交后更改flowinstance表状态字段,flowationactiontrace submit字段

C.保存表单数据进flowactiontracedata表

4.3、驳回

4.4、取消

以上就是本人理解的最简单的流程引擎,如果加上流程图、流程作图工具、流程监控、引擎接口,就比较完整了。

前三项不是必须的,接下来利用这个设计我会实现简单的引擎接口,并通过一个实例调用这个接口来完成最简单的流程图。

本实例可以让我们了解一些基本的流程原理及概念。

java oa工作流设计_简易OA漫谈之工作流设计(DB)相关推荐

  1. figma设计_如何在Figma中构建设计入门套件(第1部分)

    figma设计 Figma教程 (Figma Tutorial) Do you like staring at a blank canvas every time you start a new pr ...

  2. oa处理会签流程图_简易OA漫谈之工作流设计(四,怎么支持会签)

    会签:就是一个步骤要所有人都审批完成才能完成. 上一步提交到会签步骤时,该步骤的每个人都能收到一条待办任务, 会签审批人每次提交时都检查该步骤所有会签人是否已经审批,如果全部审批就产生下一手任务. 1 ...

  3. java实战家谱管理系统_简易家谱系统的设计与开发(附程序源代码).doc

    简易家谱系统的设计与开发(附程序源代码) 课程设计(论文) PAGE PAGE 1 编 号: 学 号: 课 程 设 计 教 学 院 计算机学院 课程名称 数据结构课程设计 题 目 简易家谱系统 专 业 ...

  4. 通达oa mysql 登陆_通达oa 怎么进入mysql?

    qq_笑_17 在使用通达OA系统时很多用户需要借助Mysql网页式管理工具进入后台数据库去查看数据,进行一些相应的操作.但是大多数时候用户安装完该工具后都是直接进入后台数据库,这样是很不安全.那如何 ...

  5. Java 成绩分析绘图_学生考试成绩分析的设计与实现

    随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用. 作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有着手工管理 ...

  6. 小型蘑菇定向切片机设计_鲜枣去核机的设计_玉米脱粒机的设计_振动式马铃薯收获机的设计_谷物干燥机的设计_锤片式饲料粉碎机的设计_山楂去核机的设计_萝卜切丝机设计_板栗去皮机设计_锤式破碎机设计……

    棉花打包机的设计[说明书(论文)+CAD+solidworks] 毕业设计_气动四自由度机械手结构设计(设计说明书+CAD图纸)    套类零件自动上下料机构 玉米脱粒机的设计(说明书+cad图纸+p ...

  7. 学习ui设计_如果您想学习UI设计,该怎么办

    学习ui设计 There is a question that is always asked when we want to learn something new. 当我们想学习新东西时,总会问一 ...

  8. figma设计_如何在Figma中构建设计入门套件(第二部分)

    figma设计 Figma教程 (Figma Tutorial) With this short, but informative Tutorial Series I aim to show you ...

  9. 考试系统mysql数据库设计_《在线考试系统数据库设计与实现》.doc

    网上测试系统 PAGE28 / NUMPAGES29 西南财经大学 Southwestern University of Finance and Economics 课程实验报告 课程名称: 数据库 ...

最新文章

  1. Python练习2-基本聊天程序-虚拟茶会话
  2. 凸包Graham Scan算法实现
  3. WebForm页面使用Ajax
  4. 关于WCF、WebAPI、WCFREST、WebService之间的区别总结
  5. 数据采集工具Telegraf:简介及安装
  6. hbase linux 命令,在linux下操作hbase
  7. jQuery模板和数据绑定
  8. OK6410开发板学习之一步一步实现精简BootLoader(BL1部分)
  9. Markdown制作表格
  10. 如何写好简历与迎接面试
  11. 嵌入式Linux入门指南(一)——学习路线篇
  12. linux 监控平台介绍
  13. vue antd table customRender 自定义标签
  14. linux 快速启动应用程序(alias使用)
  15. 阿里巴巴字体图标怎么改变尺寸
  16. 5G的前世今生---简述移动通信的发展
  17. ShardingShpere分库分表5-ShardingSphere分布式事务详解
  18. Windows桌面图标被白块挡住大部分
  19. 孚能科技登陆科创板,全球电池阵营迎来新格局
  20. 【coding】Bert-Whitening细解

热门文章

  1. JavaScript特殊转义字符(二十五)
  2. AndroidAlbum 跳转到相册或者调用系统拍照的功能
  3. 计算机专业有身高限制吗,大学哪些专业对身高要求?高中生注意,这些专业差1cm都不能报...
  4. linux桌面环境安装
  5. A股持仓账户数创25周新高
  6. 乐高乐园携手豪华跑车法拉利,打造全球首个“建造和比赛”互动式景点项目...
  7. 关于永续合约中资金费用率的计算
  8. Android 序列化(Serializable和Parcelable)
  9. 智能补货 (在途、现有库存、安全库存) 的思路
  10. Java 16进制字符串转16进制整形