wangyihust 发表于 2013-2-5 01:36:25

简单工作流的基本设计思路

简单的"公文流转" 工作流设计
<span style="">
包括:“未阅公文”、“新建公文”--接收人或角色或部门、“已发公文”、“查询公文”版块。 系统可以显示:
1、公文应由哪些用户接受,共多少个;
2、至查看时止,已有哪些单位接收,什么时间接收,共多少个,签收的应显示出时间;哪些单位未接收,共多少个。领导级别可以对公文进行批示 ,作出批示。
 
 
工作流设计有两种方式:
 
1)      不要引擎: 只需要在每一步中指明接收人<span style="color: red;" />
 
2)      有引擎: 事先要定义工作流的执行顺序(每一步的接收审阅人) ,以后步再指定.
 
                               ╭═══════════════╮
                               ║          青山不改 绿水长流           ║
  ╭══════            http://blog.csdn.net/wangyihust     ══════╮
  ║                          ║    E-mail:wangyihust@163.com  ║                    ║
  ║                          ╰═══════════════╯                   ║
  ║                       欢迎各位转贴,但需声明版权,尊重技术原创性 :)     ║
  ║                              青山不改 绿水长流    OICQ:76406573               ║
  ║        ╭───────────────────────╮           ║
  ╰══┤             ★★★★★★★★★★★★★★★★               ├══╯
              ╰───────────────────────╯

 
基于组和用户定义权限流程;
用户登陆后, 根据userid或groupid和workflow_template_id判断在工作流流程中处于什么状态sequence,再查找该状态下的工作流实例,然后再查找公文
 
string strSQL="select sequence, workflow_template_id  from workflow_flow where groupid=" + Session["groupid"].ToString()+ " or userid="  + Session["userid"].ToString();
 
strSQL="select C.id,C.title, C.pubdate, C.pubuser from workflow_work B, gongwen C "
 
+" where  B.id=C.flowworkid  and B.status=" + dr.GetInt32(0).ToString()
 
 + " and templateid=" + dr.GetInt32(1);
 
 
 
在这里,工作流引擎的触发实际上是:用户新建一个公文时,就创建一个相应的工作流实例,来跟踪这个公文.
 
 
 
基本流程测试用例:
普通员工(eking)--商务部门(bill)--总经理(pre)--信息部门(infob)   流程结束

 

 

 

 

 

 

 

 

 

 

 

 
页: [1]
查看完整版本: 简单工作流的基本设计思路