工作流设计

业务流程管理模块是本平台的重要组成部分,要实现将已经发布的标准中规范化的流程转化为具体计算机中的流程从而实现流程的自动运转,将标准化成果与员工的日常工作紧密结合起来,具有重要意义。

业务流程管理模块主要包括流程建模、工作流执行服务、流程监控等部分。其中流程建模是用来定义一个流程,具体主要包括流程定义、流程的活动定义等;
工作流执行服务用于解释流程过程定义,并控制其运转,工作流执行服务中最重要的就是工作流引擎;流程监控用于用户监控流程的运转情况。业务流程管理模块示
意图如图3-5所示:

图3-5 流程管理示意图

3.2.2.1
流程建模

流程建模用于流程的建立、修改、删除等操作,每一个业务流程通常包含若干个活动,而在流程图中,每个节点则对应一个活动。根据业务需要,我们将节点的类型分为了七类,对于不同类型的节点,我们也应该对其进行不同的设置。

(1)开始节点和结束节点

开始类型节点和结束类型节点均属于自动活动类型,但他们是比较特殊的,一个流程只能有一个开始节点,可以有多个结束节点。

(2) Node类型节点

Node类型节点属于自动活动类型,当实例执行到这里时候,会自动根据配置处理,处理后继续向下运行。

(3) Task类型节点

Task类型节点是一种手工活动类型,非常重要。流程运转到此类型节点的时候,会自动暂停流程的运转并等待参与者做相应的操作(如填写表单),并触发相应操作后才会继续执行。

(4) Decision类型节点

Decision类型节点属于决策节点。例如在一个流程中,如果时间大于某个界限时,需要某种操作。这时,使用Decision类型节点,计算机会自动根据规则判断,并转向对应的流转路由。

Decision节点还需要设置自动跳转规则,用于计算机自动判断流程流向如何跳转。

(5) Fork类型节点

Fork类型节点是分支类型节点,用于流程的分支运转。当流程需要分支执行时,就会用到此类型的节点使流程会顺着其分支同时流转。

(6) Join类型节点

Join类型节点属于汇聚类型节点,用于结束分支流程,使其回到主流程上。Join类型节点与Fork类型节点成对出现,分支节点运行完毕后会进入Join节点,Join节点触发流程回到主流程上继续运行。

(7) SubProcess类型节点

SubProcess类型节点表示子流程类型的节点,用于实现子流程的嵌套运转。当流程运转到SubProcess类型节点时,会激活该节点绑定的子流程,并使其自动开始运转,此时主流程挂起,等到子流程结束后主流程继续执行。

3.2.2.2
工作流执行服务的详细设计

工作流执行服务主要就是指工作流引擎,是为工作流运转执行提供运转服务环境的软件,是工作流执行服务的核心部件。它的主要功能有:

(1)根据流程定义对流程进行实例化,即按照预先建立的流程定义,处理相关数据,生成一个流程实例;

(2)对流程实例运转进行控制,包括流程的启动、停止、挂起和激活等;

(3)活动(任务)的处理,使参与者能够参与具体的任务,例如进行填写申请表、审批等操作;

(4)维护和处理工作流的相关数据,例如流程运转中的控制数据或者业务数据等;

(5)对外提供接口,用于其它调用。

在工作流引擎的设计中,令牌(Token)机制被引入。令牌可以记录流程正在执行的节点,从而随着令牌的传递以此控制流程的运转。当用户开启一个流程的时候,工作流引擎会根据流程定义来新建一个流程实例,并进行数据的处理。

其次工作流引擎会找到所开启的流程的开始节点,并创建一个根令牌,使跟令牌与开始节点关联。接着引擎会根据路由规则推进流程的运转与执行。在流程的运转和执行过程中,工作流引擎会根据节点的类型,来调用不同的算法进行控制。其设计思路如下图3-6所示:

图3-6 工作流引擎设计思路

各种类型的节点根据其配置和性能不同,进行不同的处理,当节点流转到结束类型节点的时候,说明流程已经运转完毕,从而结束一个流程实例的运转。

工作流设计 zt的更多相关文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(42)-工作流设计-表建立

    系列目录 工作流在实际应用中还是比较广泛,网络中存在很多工作流的图形化插件,可以做到拉拽的工作流设计,非常简便,再配合第三方编辑器,可以直接生成表单,我没有刻意的浏览很多工作流的实际设计,我认为工作流 ...

  2. Winform开发框架之简易工作流设计

    一讲到工作流,很多人第一反应就是这个东西很深奥,有时候又觉得离我们较为遥远,确实完善的工作流设计很多方面,而正是由于需要兼顾很多方面,一般通用的工作流都难做到尽善尽美.微软也提供了几个版本的WF框架支 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请 系列目录 创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分 ...

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充 系列目录 补充一下,有人要表单的代码,这个用代码生成器生成表Flow_Form表 ...

  5. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支 系列目录 步骤设置完毕之后,就要设置好流转了,比如财务申请大于50000元( ...

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤 系列目录 步骤设计很重要,特别是规则的选择. 我这里分为几个规则 1.按自行 ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单 系列目录 设计表单是比较复杂的一步,完成一个表单的设计其实很漫长,主要分为四 ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计 系列目录 建立好42节的表之后,每个字段英文表示都是有意义的说明.先建立 ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(42)-工作流设计01

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(42)-工作流设计01 工作流在实际应用中还是比较广泛,网络中存在很多工作流的图形化插件,可以做到拉拽的工 ...

随机推荐

  1. hibernate动态创建数据库表名几种方式

    数据库中数据量很大, 但又不可以删除时同时又要优化程序检索数据时间. 答:方式有很多比如 创建数据库表分区,创建索引, 存储过程等; 我这里采用动态创建数据库表的方式. 完全可以在不创建表分区情况下实 ...

  2. bnuoj 27874 "Center" of [p]erimeter midpoints(计算几何)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=27874 [题意]: 给你一个三角形三个顶点的坐标ABC,三角形各边取一点DEF,将三角形周长平均分割 ...

  3. office2010 office2013打开个别PPT时需要修复的解决方法

    写在前面的废话(请直接查看正文部分):一次意外之后,需要重装Microsoft office,于是屁颠屁颠就重装了一次MS office 2013,装好后发现,打开个别ppt/pptx时打不开,提示修 ...

  4. Microsoft .NET Framework 4.0安装时发生严重错误 无法安装

    前几天安装Axure,电脑提示没有安装.NET Framework4.0,然后下载安装,又提示如下图所示情况: 在网上找了好多方法,大多都是打开cmd,输入net stop WuAuServ,修改注册 ...

  5. hadoop 任务执行优化

    任务执行优化 1. 推测式执行: 如果jobtracker 发现有拖后的任务,会再启动一个相同的备份任务,然后哪个先执行完就会去kill掉另一个,因此会在监控页面上经常能看到正常执行完的作业会有被ki ...

  6. js 判断文件是否存在(转载)

     js 判断文件是否存在(转载) var fso,s=filespec; // filespec="C:/path/myfile.txt"fso=new ActiveXObject ...

  7. 荣誉,还是苦逼?| 也议全栈工程师和DevOps

    引言 全栈工程师(本文称「全栈」开发者)和 DevOps 无疑是近期最火的词汇,无论是国外还是国内.而且火爆程度远超于想象. 全栈和 DevOps,究竟是我们的新职业方向,还是仅仅创业公司老板的心头所 ...

  8. 几款开源的图形界面库(GUI Libraries)

    SmartWin++ 遵循BSD许可协议的C++ GUI库,建立在Windows API之上,但仍可以通过使用WineLib在Linux/xNix上使用.也支持Pocket PC和基于Windows ...

  9. hdu 4649 Professor Tian 反状态压缩+概率DP

    思路:反状态压缩——把数据转换成20位的01来进行运算 因为只有20位,而且&,|,^都不会进位,那么一位一位地看,每一位不是0就是1,这样求出每一位是1的概率,再乘以该位的十进制数,累加,就 ...

  10. 深入理解ClassLoader(五)—类的卸载

    原文地址:http://yhjhappy234.blog.163.com/blog/static/316328322011101413730764/?suggestedreading&wumi ...