惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Check Point Blog
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
IT之家
IT之家
月光博客
月光博客
U
Unit 42
K
Kaspersky official blog
T
Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
云风的 BLOG
云风的 BLOG
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
Engineering at Meta
Engineering at Meta
Recorded Future
Recorded Future
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security @ Cisco Blogs
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Security Archives - TechRepublic
Security Archives - TechRepublic
Webroot Blog
Webroot Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Schneier on Security
S
Secure Thoughts
The Register - Security
The Register - Security
B
Blog RSS Feed
The Last Watchdog
The Last Watchdog
P
Palo Alto Networks Blog
爱范儿
爱范儿
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
C
Cisco Blogs
Spread Privacy
Spread Privacy
F
Full Disclosure
博客园 - 聂微东
T
The Blog of Author Tim Ferriss

博客园 - 老头

简易OA漫谈之工作流设计(六,快捷表单和动态表单) 简易OA漫谈之工作流设计(五,直接上级) 简易OA漫谈之工作流设计(四,怎么支持会签) 简易OA漫谈之工作流设计(一个Demo),完成6年前的一个贴子 bom头 ERP产品价格成本计算的几个方法 简易OA漫谈之工作流设计(DB实现) charindex使用一个异常记录思考 开发人员死得很惨的一个问题 程序员半夜泡奶粉,睡不着了 sql server 2005行列轉換 web效率14條規則(轉) 使用mht格式做多sheet excel報表 Gridview小技巧-保存選擇狀態 SOA、反射+緩存 擴展Membership建立中小型WEB權限框架(一) 一个简单的WEB流程图组件[demo] 常用javascript 表達式驗證[綜合轉載] 数据表的设计原则(轉載)
简易OA漫谈之工作流设计(DB)
老头 · 2012-08-22 · via 博客园 - 老头

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、取消

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

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

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