java oa工作流设计_简易OA漫谈之工作流设计(DB)
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)相关推荐
- figma设计_如何在Figma中构建设计入门套件(第1部分)
figma设计 Figma教程 (Figma Tutorial) Do you like staring at a blank canvas every time you start a new pr ...
- oa处理会签流程图_简易OA漫谈之工作流设计(四,怎么支持会签)
会签:就是一个步骤要所有人都审批完成才能完成. 上一步提交到会签步骤时,该步骤的每个人都能收到一条待办任务, 会签审批人每次提交时都检查该步骤所有会签人是否已经审批,如果全部审批就产生下一手任务. 1 ...
- java实战家谱管理系统_简易家谱系统的设计与开发(附程序源代码).doc
简易家谱系统的设计与开发(附程序源代码) 课程设计(论文) PAGE PAGE 1 编 号: 学 号: 课 程 设 计 教 学 院 计算机学院 课程名称 数据结构课程设计 题 目 简易家谱系统 专 业 ...
- 通达oa mysql 登陆_通达oa 怎么进入mysql?
qq_笑_17 在使用通达OA系统时很多用户需要借助Mysql网页式管理工具进入后台数据库去查看数据,进行一些相应的操作.但是大多数时候用户安装完该工具后都是直接进入后台数据库,这样是很不安全.那如何 ...
- Java 成绩分析绘图_学生考试成绩分析的设计与实现
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用. 作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有着手工管理 ...
- 小型蘑菇定向切片机设计_鲜枣去核机的设计_玉米脱粒机的设计_振动式马铃薯收获机的设计_谷物干燥机的设计_锤片式饲料粉碎机的设计_山楂去核机的设计_萝卜切丝机设计_板栗去皮机设计_锤式破碎机设计……
棉花打包机的设计[说明书(论文)+CAD+solidworks] 毕业设计_气动四自由度机械手结构设计(设计说明书+CAD图纸) 套类零件自动上下料机构 玉米脱粒机的设计(说明书+cad图纸+p ...
- 学习ui设计_如果您想学习UI设计,该怎么办
学习ui设计 There is a question that is always asked when we want to learn something new. 当我们想学习新东西时,总会问一 ...
- figma设计_如何在Figma中构建设计入门套件(第二部分)
figma设计 Figma教程 (Figma Tutorial) With this short, but informative Tutorial Series I aim to show you ...
- 考试系统mysql数据库设计_《在线考试系统数据库设计与实现》.doc
网上测试系统 PAGE28 / NUMPAGES29 西南财经大学 Southwestern University of Finance and Economics 课程实验报告 课程名称: 数据库 ...
最新文章
- Python练习2-基本聊天程序-虚拟茶会话
- 凸包Graham Scan算法实现
- WebForm页面使用Ajax
- 关于WCF、WebAPI、WCFREST、WebService之间的区别总结
- 数据采集工具Telegraf:简介及安装
- hbase linux 命令,在linux下操作hbase
- jQuery模板和数据绑定
- OK6410开发板学习之一步一步实现精简BootLoader(BL1部分)
- Markdown制作表格
- 如何写好简历与迎接面试
- 嵌入式Linux入门指南(一)——学习路线篇
- linux 监控平台介绍
- vue antd table customRender 自定义标签
- linux 快速启动应用程序(alias使用)
- 阿里巴巴字体图标怎么改变尺寸
- 5G的前世今生---简述移动通信的发展
- ShardingShpere分库分表5-ShardingSphere分布式事务详解
- Windows桌面图标被白块挡住大部分
- 孚能科技登陆科创板,全球电池阵营迎来新格局
- 【coding】Bert-Whitening细解
热门文章
- JavaScript特殊转义字符(二十五)
- AndroidAlbum 跳转到相册或者调用系统拍照的功能
- 计算机专业有身高限制吗,大学哪些专业对身高要求?高中生注意,这些专业差1cm都不能报...
- linux桌面环境安装
- A股持仓账户数创25周新高
- 乐高乐园携手豪华跑车法拉利,打造全球首个“建造和比赛”互动式景点项目...
- 关于永续合约中资金费用率的计算
- Android 序列化(Serializable和Parcelable)
- 智能补货 (在途、现有库存、安全库存) 的思路
- Java 16进制字符串转16进制整形