`
eworkflow
  • 浏览: 221743 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

工作流系统之四十二 业务规则和业务过程

阅读更多



 在工作流软件产品中,产品的扩展性和易用性是衡量软件产品的重要指标。

 

大家都知道,工作流软件系统会包含流程引擎,流程管理中心,流程设计器,任务调度,定时器管理等等......,其中流程引擎是核心,流程引擎完成对所有业务流程的抽象,建模,以及抽象的业务流程节点的定义、流转。但是流程引擎完成的是抽象的业务流程节点的流转,当给一个具体的业务流程建模后,启动这个业务流程,才开始一个具体的应用。在具体业务流程中,常常会伴随有一些具体的业务规则和业务过程的实现,这些是流程引擎中不包含的,流程引擎只负责通用的抽象的节点的流转和实现,具体的业务规则和过程,是和具体的应用系统紧密关联的。例如,审核月终报销的时候,要引入一些相应的规则来做判断,如部门经理引入部门经理级别的每月通讯费报销范围,餐费报销范围,交通费报销范围,等等,通过这些数据来判断报销申请是否审批通过。这个判断过程是和具体的应用紧密关联的。

 

 



 

 

在工作流引擎在设计之初,就应该考虑好如何方便的引入具体的业务规则和业务过程,当然这些业务规则和过程是需要有具体的实现的,不是流程引擎能做到的。
如何引入这些具体的业务规则和业务过程,常用的处理方案有3种。

 

1、在流程节点中挂接的业务模块中实现
2、在流程节点的前置后置事件和规则判断中引入
3、利用流程的变量表达式来实现

 

 


下面详解每种处理过程:

1、在流程节点中挂接的业务模块中实现
 
    工作流引擎给业务流程建模后,业务流程就按照定义的流程节点来流转,到达节点后,节点上挂接有业务模块,业务的办理就在业务模块中实现,工作流引擎是不负责具体的业务模块的实现。业务模块我们通常会利用开发工具做成一个页面或者是一个业务表单来实现,在业务表单中实现业务数据的录入,修改,甚至是和其它数据的关联交互等等。这种的业务表单,可以是利用开发工具定制的表单,如具体开发的jsp页面,aspx页面;也可以是利用表单工具可视化的画出的业务表单,如eform自定义表单通过拖拉的方式建立的htm页面。
    在业务表单中,可以方便的引入一些业务过程或者业务规则判断,如在提交产品入库单之后,更新产品库存表的库存数量,就可以在保存入库单的数据之后,再更新一下库存数据。

 



 

  
  
     在业务模块业务表单中实现的业务过程和业务规则,通常都是和流程上下文关联不是很紧密的,只是业务处理过程。这种的就可以直接在业务模块中实现。
 


2、在流程节点的前置后置事件和规则判断中引入

      工作流引擎抽象的节点,一般都会提供有前置后置事件函数,便于流程做业务过程的扩展。当流程运行到此节点的时候,会触发前置函数,离开此节点会执行后置函数,至于函数的内容,就是具体的业务过程了。
      在前置后置函数中,只需要实现固定的函数接口,如FunctionProvider,FunctionProvider接口有一个execute()方法,方法中包含3个参数(当函数运行时,通过execute()函数的3个参数,可以获得流程的相关信息,数据库链接,事务等等),业务过程就可以在此方法中实现。
 
 .net的FunctionProvider接口:
 void  execute(System.Collections.IDictionary transientVars, System.Collections.IDictionary args, PropertySet ps);
 
 java的FunctionProvider接口:
 public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException;
 
 
      业务规则的引入通常是在流程节点的条件判断中引入,例如审核加班单,需要引入加班当天的指纹打卡考勤记录,加班的时间段,是否在指纹打卡考勤记录的时间段中,是则审核通过。这个过程判断,就可以实现一个规则判断接口,如Condition接口,提供一个passesCondition()函数,返回true,或false.  在passesCondition()函数中写具体的规则判断,流程的相关信息,等等都通过passesCondition()函数的三个参数来获取。
 
 .net的Condition接口:
  bool passesCondition(System.Collections.IDictionary transientVars, System.Collections.IDictionary args, PropertySet ps);
 
 java的Condition接口:
  public boolean passesCondition(Map transientVars, Map args, PropertySet ps) throws WorkflowException;

 


3、利用流程的变量表达式来实现 
 
 有些业务规则和过程常常会每个流程实例都不一样,这通常就需要在流程建模时引入变量或表达式,当流程实例运行时,给变量赋值。每流程实例赋的值可能不一样,这样来达到每个流程实例的不一样。
 例如;费用报销单的一审人,需要是报销单填写人的直接上级。而可以填写费用报销单人,可能是各个部门或所有员工都能填写。这样的话,就可以给一审的审核人定义一个变量,例如${xx_leader},当费用报销单填写完成后,就通过前置函数的业务过程,查找到当前申请人的直接上级,将上级的用户id,存到变量xx_leader中,当到达一审节点时,这个变量就有值了。


 

 


 变量又分为临时变量和持久化变量,临时变量仅存在于流程的一次流转当中,前面过程中给变量赋值,后面的过程就能获取到值了。
 持久化变量,只要保存了值了,后面的所有过程就都能使用了。
 
 
 利用流程的变量表达式的过程来实现业务规则和过程,常常还是需要辅助1,2两种方法来实现。
 
 
 在工作流软件产品中不需要包含具体的业务规则和业务过程的实现,但是一定要能方便的引入业务规则和业务过程,便于扩展。而通常工作流软件产品中,变量表达式,节点的前置后置事件等等都是为了方便做业务规则的扩展,合理的利用这些使得工作流软件系统和应用系统结合的更完美。
  
 

 

 

 

 

 

 

 

  • 大小: 44 KB
  • 大小: 10.8 KB
  • 大小: 77.9 KB
分享到:
评论

相关推荐

    工作流系统需求分析,设计方案

    工作流系统的业务模型描述:工作流系统的业务模型是指工作流系统的逻辑结构和行为,包括业务过程、活动、事件、规则等。 工作流系统的系统组成:工作流管理系统是工作流系统的核心组件,由客户端、流程定制工具、...

    论文研究-一种支持业务规则动态检测机制的工作流系统.pdf

    结构图可能会展示文件管理模块、系统通信模块、业务规则动态检测模块、工作流过程运行模块、API、工作流引擎和消息管理模块等关键组件。每一部分都扮演着各自的角色,保证工作流的顺利执行和动态规则的处理。 规则...

    工作流管理系统 工作流管理系统

    工作流管理系统(Workflow Management System, WfMS)是一种专门用于管理和自动化组织内业务流程的软件系统。它不仅定义了流程的结构,还负责按照预设的逻辑推动流程实例的执行。工作流管理系统并非企业的核心业务...

    工作流管理:模型、方法和系统.pdf

    ### 工作流管理:模型、方法和系统 #### 一、先进制造战略与企业计算机应用 本章节探讨了如何将先进的制造战略与企业的计算机应用相结合。先进制造战略旨在提高生产效率、降低成本并提高产品质量。在这一背景下,...

    电商业务工作流

    工作流系统可以帮助企业提高效率,减少错误,确保业务按照预定的规则和流程顺利进行。本文将深入探讨工作流的概念、在电商业务中的应用以及其重要性。 工作流的核心概念是将复杂的工作流程模型化,使其能够在计算机...

    工作流系统功能

    4. **审批与决策**:在流程执行过程中,工作流系统支持审批机制,如单人审批、多人会签等,同时提供决策节点,可以根据条件或规则自动决定流程走向。 5. **监控与报表**:系统提供实时监控功能,管理者可以查看流程...

    基于工作流的信息管理系统研究

    工作流管理联盟(WFMC)定义工作流为可部分或全部由计算机自动执行的业务过程,涉及文档、信息或任务按预设规则传递,并协调企业内部人员和应用软件之间的协作。工作流管理系统则负责定义、管理和执行这些流程实例。...

    工作流讲解之系统工作流讲解之系统

    相比之下,工作流管理系统实现了过程管理与应用软件的分离,将业务过程分解为过程管理和业务执行两大部分。过程管理系统负责维护过程的执行顺序和规则,确保流程的正确性和高效性,而业务执行系统则专注于执行具体的...

    web工作流管理系统开发

    Web工作流管理系统是一种用于自动化和管理业务流程的软件系统,它能够将业务流程中的任务、审批、信息传递等环节规范化并进行计算机化处理。在本文中,我们将深入探讨工作流管理系统的关键组成部分,包括工作流概念...

    工作流系统,工作流,节点

    工作流系统是现代企业信息化管理中的重要组成部分,它主要用于自动化业务流程,使组织能够更高效地管理和控制工作流程。在本资源中,我们关注的是"工作流"、"工作流系统"以及"节点"这三个核心概念。 工作流...

    工作流管理系统基本概念介绍

    ### 工作流管理系统基本概念介绍 #### 一、工作流 工作流(Workflow)是指在组织内部或多个组织间,为完成特定...这些接口不仅确保了工作流系统的灵活性和可扩展性,也极大地提高了业务流程的自动化程度和管理效率。

    工作流系统 工作流 工作流系统

    工作流(Workflow)是组织内任务、活动和过程的有序集合,这些任务和活动按照一定的规则和逻辑顺序进行流转。它可以涵盖从简单的文档审批到复杂的跨部门项目协作。工作流系统的引入,旨在减少人为错误,提高协同效率...

    完整工作流系统源码

    需求分析是任何项目开发的起点,对于工作流系统来说,这可能涉及到理解业务流程、识别关键参与者、定义角色权限、确定审批规则以及梳理工作流中的各个状态和转换条件。在这一阶段,需要详细列出所有功能需求,如任务...

    Java实现轻量级的业务规则管理系统

    在IT行业中,业务规则管理系统(Business Rule Management System, BRMS)是用于管理和执行组织业务策略的一种软件工具。本文将深入探讨如何使用Java语言实现一个轻量级的业务规则管理系统。这个系统可以帮助企业...

    工作流系统源码.net

    工作流系统是企业信息化建设中的重要组成部分,它主要用于自动化、管理及跟踪业务流程。...此外,它也可以帮助开发者掌握WF的高级特性,如复合活动、规则引擎和表达式支持,这些都是构建高效、灵活工作流系统的关键。

    自定义工作流系统的设计与实现

    自定义工作流系统的设计与实现是一项复杂而重要的任务,它涉及到企业的日常运营效率和业务流程优化。本文档将深入探讨如何构建一个高效、灵活且用户友好的自定义工作流系统。 首先,我们需要理解工作流的基本概念。...

    jBPM1-工作流与JBPM.ppt

    3. 关联和协调:它根据业务规则将系统资源联系起来,共同完成整个流程。 实际应用中,工作流广泛用于过程自动化,例如在计算机销售过程中,从用户下单到发货的每个步骤都可视为工作流的一部分。同样,银行取款过程...

    使用UML开发工作流系统

    工作流系统是一种自动化处理业务流程的软件,它能够根据预定义的规则和步骤协调人员、系统和信息的流动。工作流系统通常包括工作流引擎、用户界面、流程定义和监控工具等组成部分。通过UML,我们可以将这些抽象的...

    办公自动化系统中工作流系统的设计

    1. **工作流概念**:工作流(Workflow)是指在一个组织内部,人们按照一定的规则和顺序执行任务的过程。它涵盖了任务分配、审批、信息传递等多个环节,通过信息技术实现流程的自动化。 2. **工作流系统组成**:工作...

Global site tag (gtag.js) - Google Analytics