工作流系统全面介绍,工作流系统设计与关键实现
发这个帖子的目的是借助一个工作流系统,来介绍什么是工作流,首先介绍工作流的一些基本概念,帮助大家来认识工作流;其次结合一个实际的工作流系统让大家有一个感性的认识,并通过该例子告诉大家,工作流只是一个概念或者叫思想,千万不要千篇一律,也不要非得符合什么标准,工作流的这种思想是用来解决实际工作需求的,只要能解决你的工作需求,没必要符合某些标准,现在与工作流先关的一些技术已经发生了很大的演变,应用到各个领域,例如OA,协同办公,生成排程,这既是工作流的思想,也可说是工作流的原理,请大家记住无论是java的工作流,还是微软的wwf,还是其他工作流厂商开发的系统,都必须符合这个原理,不同的是,实现方法不同,一定要记住只是实现方法不同。
1 概述
随着计算机软件应用的普及,信息化系统发挥的作用也越来越大,企业信息化建设的不断深入,对系统功能和自动化程度要求越来越高。客户要求系统功能与实际的工作情景紧密结合,对每个业务环节的控制要求越来越精确。如何让我们的信息化系统更加贴近客户需求,满足客户不断变化的业务流程成了我们软件开发商不得不面对的问题。
信息化建设初期我们的信息化系统担当的是记录信息、查询信息、统计信息的功能,孤立的管理信息,各功能之间缺少联系,也无法做到各环节的精确控制,很多情况只能靠人为判断来完成。随着信息化程度的加深,这些功能远远不够。我们实际工作中的每一个环节并不是孤立的,每个环节前后都有千丝万缕的联系,要记录这些环节,做到精确控制,所以我们引入了工作流的概念,推出了工作流系统,
对于工作流系统,市面上这样的东西很多,但觉得都不是很理想,这套系统算是我对这几年从事工作流研究的总结,我会不断完善这个系统。系统包括三部分:1建模工具,2流程引擎,3业务平台。我只详细实现了建模工具和流程引擎,业务平台只作了一个简单的测试系统,可以在此基础上扩展,来做一个完整的业务平台。
先介绍一下我的设计初衷:
首先,流程引擎和业务数据是独立的,两者没有必然联系(但是流程引擎可以访问业务数据), 这样设计的好处是引擎可以跟任何已有的系统整合,比如已经有一个进销存系统,现在要加入工作流对单据进行流程控制,只需要调用引擎提供的接口函数就可以,实现流程的启动,流转,查看,结束。
其次,流程引擎是封闭的,对用户来说是透明的,用户也不需要知道内部是怎么工作的,只需要了解如何通过建模工具配置流程模板就可以,业务平台是可以任意扩展的,通过开发任意多的用户控件,业务平台只要动态加载这些业务控件就可以。
最后,建模工具采用cs(winform)的方式设计,是从操作的灵活性考虑的,bs结构的系统操作上确实不灵活,速度也慢,再加上建模工具使用的人员有限,也没必要开发bs结构的。业务平台则不然,尽量使用bs结构设计,现在大部分系统是通过bs来实现的。
在介绍流程系统之前先介绍几个与工作流有关的概念,这些概念有利于我们掌握工作流原理,每个人的理解不一样,可能不太准确。
工作流:把工作中的各个业务环节连接起来,让任务按照制定的方向流转,这就是工作流,实现这样功能的系统就叫工作流系统。
任务:工作流中的每一个工作环节叫做任务,每个任务在流程图中以节点的方式展现,也叫任务节点。
模版:一个固定的被其他对象参照的数据,在oop思想中,与类的定义相似,模版可以理解为一个类的声明,模板是为了区分实例来讲的,例如流程模板,任务模板等。
实例:一个参照模版创建的数据,在oop思想中,与类实例相似,实例可以理解为一个类的实例,实例是为了区分模板来讲的,例如流程实例,任务实例等。
流程模板:用来描述业务流程的模板,以可视化的图形的形式展现,流程模板定义了工作流的任务节点、流向、交互信息(例如业务表单)和流转条件等信息。
流程实例:依附于流程模板运行的一个实例,表示一个实实在在的工作过程,所以的流程实例都是通过流程模板的启动节点启动的。
任务模板:流程模板上的任务节点叫任务模板。
任务实例:在流程实例中,由任务模板产生的实例就叫任务实例。
处理实例:任务实例是用来与用户交互的,每当用户登录系统来完成一个任务实例的处理,都产生一个处理实例,来记录此次对任务的处理情况。一个任务实例可能经过指派、回退等多次处理,每一次处理即一个处理实例。一个处理实例是由一个任务实例和一个处理者(对应具体的处理人)实例组成的。
处理者:是指可以处理任务的一个类型,它指的是一组的集合,为了区分处理人而定义,例如部门、组织机构、岗位、角色或个人,在流程模板中为每个任务节点配置处理者。
处理人:是指可以处理任务的具体的个人它指的是一个人,一般指用户工号或者账户。
处理者实例:处理任务实例的处理者,统称为处理者实例。一个任务实例有一个或者多个处理者实例与之对应。处理者实例就是真正要处理任务的人的集合。
流程数据:指流程按照流程模板流转时由引擎产生的数据,例如流程实例、任务实例、处理者实例都统称为流程数据。
业务数据:指与用户交互时产生的数据,这部分数据与具体的业务相关,例如一个销售单,业务数据在流程图上流转从而实现日常工作。业务数据与流程数据无关,没有流程数据业务数据可以独立存在。
流程系统设计总图
2 建模工具
建模工具使用vs2005 C#语言开发,,采用Winform的方式,做到数据层,业务层,界面层的独立,业务层的代码可以毫无修改的应用到web方式上,这也是充分考虑使用的灵活性。通过建模工具可以:管理组织机构,管理流程模板,管理系统权限。数据库使用sqlserver2000。
主要功能:
2.1 组织机构管理
组织机构也叫部门,任何一个公司企业都是按部门划分,可以建立无限级部门。
员工也可以叫用户,每个用户属于一个部门,每个人必须有一个岗位。
由于每个企业组织机构的差异,在设计组织机构的时候尽量与业务无关,采用“公司(分公司)-〉部门(办事处)-〉下属部门”的机构组织方式,目前所有的公司都这么划分,所以这种方式适合99%的需求,与公司业务有关的信息采用“岗位-〉岗位级别”的组织方式,也就是在每个部门中设定不同的岗位,以岗位来描述业务,在部门下可以设定任意多的岗位,每个岗位都有一个级别,通过岗位级别来确定本部门的主管领导和上下级关系。
任务节点配置处理者时,可以从该模块中选取组织机构和岗位。见任务节点配置章节。
2.1.1 主界面
图表 1组织机构管理主界面
2.1.2岗位管理界面
图表 2岗位管理界面
2.1.3部门管理界面
图表 3部门管理界面
2.1.4员工管理界面
图表 4员工管理界面1
图表 5员工管理界面2
2.2 权限管理
每个用户有自己的权限,并不是所有人都可以修改和创建流程模板,修改流程模板或导致流程发生改变,除非业务发生变化,否则很少修改模板。用户的权限分配可以在权限模块中设置。
权限管理以人、组和操作为管理要素,人即系统登录用户,所有的人分组管理,对组划分配操作权限。操作细化到每一个界面元素(一个具体操作,如按钮、菜单),每个操作对应一个唯一的权限码(细化到界面元素的好处是可以应对任何权限需求,没有比这个要求更苛刻的了)。在用户点按钮或者菜单的时候进行权限判断。建立组的概念是为了方便管理,一个人可隶属于多个组,对组赋予某一操作权限后,该组下的所有人都会有该权限,一组为单位分配权限,是不是很方便?
2.2.1主界面
图表 6权限管理主界面
2.2.2 权限组管理界面
图表 7权限组管理界面1
图表 8权限组管理界面2
2.2.3权限设置界面
图表 9权限设置界面
2.3流程管理
流程模板也可以叫流程模型,采用分类管理的方式,可以无限级分类,流程模板必须属于某一分类,流程图 采用可视化的制作,可以通过拖拽图形的方式画流程图,图形化的操作一目了然。
2.3.1 流程管理主界面
图表 10流程管理主界面
2.3.2 启动节点配置界面
交互节点的配置与启动节点类似,这里只展示启动节点的界面。
图表 11启动节点配置界面
图表 12启动节点处理者界面
图表 13任务节点变量管理界面
2.3.3处理者配置界面
图表 14选择处理者界面
2.3.4 流转条件配置界面
该界面使用了前面定义的任务变量,用来判断合同金额。
图表 15连线配置界面
2.3.5控制节点配置界面
图表 16控制节点配置界面
2.3.6子流程节点配置界面
图表 17子流程节点配置界面
2.4 表单管理
表单是业务的展现形式,根据业务平台设计,表单采用用户控件usercontrol来设计,表单有两种形式,主表单和子表单,主表单是由子表单组成的,一个主表单可以包含多个字表单,每个子表单就是一个UserControl,任务节点中的交互节点可以挂接一个主表单,业务平台可以动态加载主表单里的UserControl。
2.4.1 表单管理主界面
2.4.2 选择用户控件界面
3工作流引擎
设计非常灵活的引擎,满足任意复杂的业务需求,使最终用户通过修改流程图,配置业务表单来完成流程再造,不需要修改程序代码,流程引擎能按照新的模板流转。流程引擎设置6种类型的任务节点,基本可以完成任何情况的流传,例如,会签,审批,根据业务条件流转等,流程引擎独立设计,提供对外接口,可以与任意系统整合。
3.1基本功能
顺序流转
像发邮件一样,工作流转到下一处理人,处理人像处理邮件一样查看任务和处理任务。
条件流转
根据业务数据,满足不同条件流转到不同的处理人。例如采购金额大于等于10万的采购单需流转到总经理,小于10万的采购单需流转到分管经理。
任务回退
在领导审批时不满意处理结果,需要退回前一任务处理人,让他重新处理后再提交。
任务会签
对某些工作需要多位领导都签字后才能执行的任务,设定该任务会签的领导,所涉及到的领导都审批后,该任务才能继续向下流转。
3.2 任务节点类型
工作流模板是由连线和任务节点组成的,任务节点配置相关的信息供引擎使用,连线表示流转方向,连线上可以配置流转条件。
3.2.1 启动节点
一个流程可以有多个启动节点,这是与其它流程系统不同的,这样设计的目的是适应启动节点所挂接的表单不同,但后面的任务环节相同的业务流程。例如一个合同审批流程,包括2个合同:维保合同和代理合同,这两个合同启动节点不同但后面的审批环节相同,这种情况通过设置多个启动节点就可以避免创建两个流程。
见启动节点配置界面
3.2.2结束节点
表示流程结束,该节点可以设置流程结束后执行的事件。
3.2.3 交互节点
与用户交互的节点,该节点可以配置业务表单供用户操作。该节点还可以创建流程变量和任务变量,供流程引擎使用,变量是引擎与业务平台交互的途径。
交互节点的界面与启动节点类似,见启动节点配置界面
3.2.4 子流程节点
通过配置该节点可以让主流程调用系统中已有的流程,这样可以使流程能够重用,减少工作量。
见子流程节点配置界面
3.2.5控制节点
控制流程是否继续流转,控制节点有两种类型:and和or,任何节点后面都可以放置一个控制节点,and表示只有前面节点的实例全部完成才能继续流转,or表示只要前面节点的实例有一个通过就可以继续流转。使用控制节点我们就可以很好的处理会签等复杂的情况。
见控制节点配置界面
3.2.6 查看节点
供用户查阅信息的交互节点,该节点可以配置业务表单,供用户查看,类似交互节点。
查看节点的界面与启动节点类似,见启动节点配置界面
4 业务平台
业务平台是流程系统与用户交互的工作平台,所有的业务表单都通过平台展现,用户在该平台上处理日常业务(启动任务、处理任务、查看参与的任务,查看流程状态)。用户不必关心流程任何流转,只要处理好自己的业务表单即可,任务即会根据条件自动流转到下一个处理者。业务平台采用目前流行的B/S方式设计。这里只是简单的实现了一个业务平台,用户可以根据提供的接口自己开发业务平台。该业务平台的工作过程遵循以下规则:
一、系统登录,每个用户使用自己的帐号登录。
二、“我的任务”是用户已经处理和未处理的业务,用户必须首先从“未认领任务”中领取任务,领取后的任务会进入“已认领任务”中,已认领的任务才能被处理。
三、“启动任务”也叫启动流程,根据流程模板中的启动节点,来选择启动的流程,流程会根据启动节点来开始任务。
四、查看流程状态,可以在“我的任务中”,点“流程图”来查看流程路线图和已经走过的流程节点。
4.1 业务平台主界面
图表 18业务平台主界面
4.2 合同审批业务表单
用户可以自由开发任意多的业务表单,为了测试业务平台制作了2个业务表单,界面有点丑陋,分别是TestUserControl.ascx和ViewUserControl.ascx,前者用于用户输入数据后者用户查看数据,分别与合同审批流程启动节点和交互节点绑定。点击左侧导航栏中的启动节点可以启动流程。
图表 19启动流程界面
4.3 未认领任务
图表 20未认领任务界面
4.4 已认领任务
图表 21已认领任务界面
4.5 已完成任务
图表 22已完成任务界面
4.6 查看流程图
彩色表示已经走过的流程节点,灰色表示未走过的流程节点,通过流程图可以清晰的看到流程所处位置和后面的路线。
图表 23查看流程图界面
随着科研和生产技术的不断发展,对分析测试的要求无论在样品数量、分析周期、分析项目和数据准确性等方面都提出了更高的标准,传统人工管理模式已不适应现在的市场需求实验室信息管理系统( LIMS)集现代化管理思想与计算机技术为一体的用于各行业实验室管理和控制应用技术。LIMS提升实搭建一套集检测业务流程管理、实验室资源管理、查询与统计、移动平台 APP、仪器采集、系统集成等功能的综合实验室信息管理平台。
LIMS通过规范实验室样品检验操作流程,建立实验室样品检验模型,形成以检验业务流程为基础的装置检验工作流管理,同时涵盖数据查询和统计管理,检验资源管理。优化实验室业务管理流程,合理分配实验室管理资源。
1. 检测流程管理
LIMS系统支持对检测流程进行管理,包括从测试任务下达,样品接收,任务分配,结果录入等方面管理整个流程。检验分析的工作流程应包含检测的正向流程,以及在数据和报告出现争议后,对过程进行核对的逆向流程; 样品检测工作按照工作流进行统一而有序的管理,保证样品生命周期中每一个控制点和数据产生全过程是可追溯的。
2. 业务数据管理
实验室LIMS主要包括分析方法管理和检测项目管理,检测项目管理是系统的核心,用于创建、编辑、删除与测试相关的信息,可定义的内容包括测试分类、测试和相关参数。系统提供检验项目数据录入模板,可进行检验项目导入。支持可以按照标准、人工、设备、试剂耗材等因素进行成本费用维护,以便下单时系统可以自动计算成本及报价。
3. 实验室资源管理
为保证 LIMS 系统符合 ISO/IEC17025、GMP 等体系的要求,LIMS 把实验室资源管理作为设计的重要组成部分,通过这些模块实现分析人员、仪器设备、试剂标样、方法、技术和质量类文件、技术类档案等资源的有效管理和控制。
4. 模板管理
LIMS 具有模板管理功能,支持对登记单模板、报告模板、原始记录表、条码模板、流程模板、质控活动记录模板、校准确认表模板、校准证书确认表模板、耗材验收模板等的自定义。实验室LIMS 系统是系统实施的关键环节。仪器接口将减少人为原因导致的数据出错,减少实验室人员的负担,实现数据获取的自动化。
通过应用LIMS系统,对数据进行直接采集,将提高实验室仪器设备的自动化程度和规范化管理水平。不仅为管理科研设备提供了一种便于实现和操作的技术手段,更建立了完整的信息数据库,实现高效便捷的数据查询反馈,完成由手工作业向信息化、智能化管理的转变。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。