工作流设计

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

业务流程管理模块主要包括流程建模、工作流执行服务、流程监控等部分。其中流程建模是用来定义一个流程,具体主要包括流程定义、流程的活动定义等;
工作流执行服务用于解释流程过程定义,并控制其运转,工作流执行服务中最重要的就是工作流引擎;流程监控用于用户监控流程的运转情况。业务流程管理模块示
意图如图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. 【BZOJ1305】 [CQOI2009]dance跳舞

    Description 一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲.有一些男孩女孩相互喜欢,而其他相互不喜欢(不会 ...

  2. C# send mail with outlook and word mailmerge

    http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.document_members(v=office.15). ...

  3. mybatis从dao传入多个参数到sqlmap时dao中要使用map或实例对象(如:user)作为参数传入, 否则报错找不到属性getter方法

    23:37 2015-07-02 注意1. 使用mybaits的resultMap查询时, 如果想传入多个参数(比如where 1=1动态多条件查询时)sqlmap文件中对应的方法中, selectL ...

  4. 手写归并排序(MergeSort)

    #include<iostream> #include<stdio.h> #include<algorithm> #define N 10000 using nam ...

  5. 1038: [ZJOI2008]瞭望塔 - BZOJ

    Description 致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安.我们将H村抽象为一维的轮廓.如下图所示 我们可以用一条山的上方轮廓折线(x1, ...

  6. 【分块】bzoj3343: 教主的魔法

    3343: 教主的魔法 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 631  Solved: 272[Submit][Status][Discuss ...

  7. [转载]C#导入XLS数据到数据库

    Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> ...

  8. PHP session有效期session.gc_maxlifetime的设置方法

    PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适 ...

  9. ntpServer搭建用以进行时间同步

    在试各种乱七八糟的集群中,突然发现了一个问题,假如在一个闭网环境下安装某些集群软件的时候服务器之间的时间不同步(如HBase),会导致启动失败.那么就需要进行时间同步.可是往常都是网络校准的,没网的集 ...

  10. objective-c宏定义

    1.先来几个常用的: // 是否高清屏 #define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? ...