简单的"公文流转" 工作流设计
包括:“未阅公文”、“新建公文”--接收人或角色或部门、“已发公文”、“查询公文”版块。 系统可以显示:
1、公文应由哪些用户接受,共多少个;
2、至查看时止,已有哪些单位接收,什么时间接收,共多少个,签收的应显示出时间;哪些单位未接收,共多少个。领导级别可以对公文进行批示 ,作出批示。
工作流设计有两种方式:
1) 不要引擎: 只需要在每一步中指明接收人
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) 流程结束