简易OA漫谈之工作流设计(DB实现)

好久没写博客,上一篇 没想到大家讨论还挻热烈,非常感谢大家关注和提出的一些建议和意见。

大家关注的还是两点:

1、现实流程会复杂得多;

2、流程平台需要复杂的设计(作图)工具。

我想说的是我这里不是做一个“大而全”的工作流平台,只是从最基本的地方入手,通过这样一些测试,让初学者发现工作流的一些原理。

了解这些原理后,你使用各种平台(如K2)开发就会清楚一些。

上篇算是一个概要设计,这篇简单的做一个数据库实现,本实现暂不包括“规则处理”,即由调用端决定下一手步骤和处理人。

兄弟刚离职,现在正找工作,关乎一家人是否有饭吃,所以时间不多,写得很粗糙,大家还请原谅则个!

用的sql server.

1、先建一个数据库MyData

2、执行一下结构脚本

 

View Code

 

3、执行一下数据脚本

 

View Code

 

4、发起一个流程

exec usp_FlowStart 1,1,1,2,'2,3',null

参数解释:

 @FlowID int,--流程模板编号
 @UserID int,--流程用户
 @ApplyUserID int,--流程申请用户
 @NextStepID int,--下一步骤
 @OwnerUserIDStr varchar(500),--多个下手审批人,以‘,’分隔
 @Data nvarchar(max) --表单数据,xml格式

 

5、读一下任务信息

查看应该可以看到FlowInstance一条数据,这是流程实例主表。

查看应该可以看到FlowActionTrace三条数据,即申请已办一条,待办两条,为什么待会是两条,因为上面的参数

'2,3'就表示下一步处理人是两个。

select * from dbo.FlowInstance
select * from dbo.FlowActionTrace

 

6、执行一个待办提交

exec usp_FlowSubmit 3,3,3,0,'3/2,3',null

参数解释:

 @TraceID int,--flowactiontrace的id,选择一个submittime 为null的记录的id
 @AcionID int,--操作编号,就是做的是哪种操作,一般1代表同意提交
 @SubmitUserID int,--提交人编号
 @IsEnd int,--是否结束步骤
 @NextStr varchar(2000),--'1/3,4;3/5,6'这个结构表示“下一步骤编号/处理人编号串;下一步骤编号/处理人编号串”
 @Data nvarchar(max)--表单数据,xml格式

 

大家会觉得组装下一步骤和下一步操作人很麻烦,我们做了组件后会使用更好结构的属性。

下和篇如果有兴趣就做一个简单dll和website demo,以便跑跑看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值