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. 再见,FastJson...
  2. C++ 11 创建和使用 shared_ptr
  3. PLM系统的成功实施
  4. 【Android】dip、dp、sp、pt和px的区别
  5. 拓端tecdat|R语言中广义线性模型(GLM)中的分布和连接函数分析
  6. 微信公众号运营推广基础入门知识
  7. python mql4_使用MQL5将OHLC值从Python API集成到MT5
  8. 怎样购买及安装ssl安全证书
  9. 后深度学习的挑战与思考(PRCV 焦李成 报告记录)
  10. 2019-2020年数学建模竞赛心得体会
  11. 手机怎样设置垃圾短信拦截?
  12. RabbitMQ Management HTTP API的简单封装
  13. 贫富差距,不是收入分化,而是资产分化
  14. Python数据分析与可视化概述(内容全面 附PPT)
  15. 格式化日期之YYYY与yyyy
  16. Nginx 502的解决方法
  17. solidworks2022 - 双开
  18. strcpy、strncpy、strncpy_s和snprintf
  19. 【Java】广州三本秋招之路
  20. 计算机c盘满了怎么移到d盘去,我电脑里的c盘满了,d盘还有容量,请问怎么把d盘多的容量移到c盘中?就是所谓的分区。...

热门文章

  1. drawstring 文本居中_从Graphics.DrawString()居中输出文本 -问答-阿里云开发者社区-阿里云...
  2. Cannot locate node of type [lcm_ros_node] in package [deepstream_ros_bridge]. Make sure file exists
  3. java usbkey数字证书_Java 密钥库和数字证书
  4. 一星期学sql day1
  5. 回忆太美 也太伤人:伤感日志
  6. 无锡鼋头渚-樱花谷的美丽传说
  7. JS点击按钮图片左右滑动
  8. APS-C画幅三强宾得K3、佳能70D、尼康D7100关键参数对比
  9. Vue 图片、PDF预览(Blod数据类型)
  10. 计算机动画专业好吗,【2人回答】学动画专业,买个什么样的电脑比较好啊?-3D溜溜网...