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

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
Intezer
C
Cyber Attacks, Cyber Crime and Cyber Security
The Register - Security
The Register - Security
量子位
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
MyScale Blog
MyScale Blog
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
Jina AI
Jina AI
博客园 - 【当耐特】
P
Palo Alto Networks Blog
Last Week in AI
Last Week in AI
SecWiki News
SecWiki News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
G
GRAHAM CLULEY
宝玉的分享
宝玉的分享
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
The Blog of Author Tim Ferriss
V
Vulnerabilities – Threatpost
有赞技术团队
有赞技术团队
T
Tor Project blog
H
Hacker News: Front Page
A
Arctic Wolf
NISL@THU
NISL@THU
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
V
V2EX
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
I
InfoQ
D
Docker
L
LINUX DO - 最新话题
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
U
Unit 42

博客园 - 元本如此

从定制软件到通用软件的转变 小记 流程运转核心算法 培训有感 Flash MX 2004数据库应用程序开发——基于.NET架构 Be Your Personal Best 关于工作流 再次归来 杨少华,我是喜欢的 仁者见仁,智者见智 看世界 应用程序设计指南:从 N 层到 .NET C#读写INI文件 剖析 ADO.NET 批处理更新(深入研究数据访问) 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论 把信送给加西亚 软件之死 软件的涅磐 第二次丢钱包
流程运转
元本如此 · 2006-05-16 · via 博客园 - 元本如此

数据库:

流程定义与运转

业务逻辑关系:
约定:
库所某种程度称为节点。
流程状态分为:初始,准备运行(某条件为满足),运行中,挂起,结束,终止。
库所的状态为:未开始,等待,运行中,完成,挂起,终止,等待同步。
注:挂起、终止操作要在监控器中进行(可以对流程和库所进行操作)。

以下所有库所是实例
当流程被激活时,此动作为流程初始化,流程状态为初始
同时本流程中所有库所状态置为未开始状态。
如果条件满足流程跨过准备运行状态直接进入运行中状态
找到过程中第一个库所(类型为开始),把此库所状态置为完成,通过变迁找到后继库所置为等待
本任务中的user打开待批任务,进行操作,本库所状态有等待状态跨过运行中状态直接变成完成状态
(以上最基本流程)
关于在流程监控器中的操作:
流程管理员可以在流程监控器中将流程强制从运行中状态改变为挂起终止
流程运行中——>挂起:本流程中所有任务实例都置为挂起状态(待定)。
流程挂起——>运行中:挂起前需要记录每一个库所的状态,或加个字段?或和流程状态联合判断?(待定)恢复时要判断此节点为运行中状态还是等待状态。
流程运行中——>终止:删除本流程中所有库所实例,过程实例不删除。

库所运行中——>挂起:挂起为可恢复操作,不改变变迁的前驱后继,如果此节点为发散节点或聚合节点,情况比较复杂,1、在数据库中改变后继节点类型(star、and-split、and-join etc.),2、在流程控制中后继节点继承挂起节点的类型。3、不允许对and-splitand-joinor-splitor-join进行挂起操作。(可能2好些,更容易恢复数据
库所运行中——> 终止:终止为不可恢复操作,将此节点删除,处理方式基本同挂起。

用户任务列表

1、  遍历库所表中某角色状态为等待的节点,可得到任务列表

2、  选择任务:根据当前库所实例ID遍历变迁表,

a)         如果有判断条件,库所的状态置为进行中状态,通过自定义的条件和库所中的token比较决定路由,如果有满足的条件,把此库所的状态置为完成状态(未判断后续节点的状态)。如果没有满足的条件??

b)        如果没有条件变迁,该库所实例直接跳过运行中状态进入完成状态。

3、  根据当前库所实例ID,遍历所有库所实例的后续实例ID,得到实例状态

a)         如果是and-join,需要检查是否所有分支都为完成状态,如果都已经完成,此节点为等待状态,否则为等待同步状态。

b)        如果是其他类型,直接把当前库所实例状态置为完成,后续节点状态为等待状态。

4、  用户不能直接修改节点状态,只能在流程监控器中修改节点状态。

本文参考《

基于关系数据库的工作流系统设计与实现http://www.itpub.net/436682.html
转载请说明