工作流引擎实现抽象流程的流转,业务的实现在表单模块中完成。如报销流程,填写报销单,审核报销单,都对应一个业务模块,在业务模块中实现将数据保存到数据库表中,实现业务数据的持久化。工作流引擎负责将这些业务模块串起来,实现业务流的流转。
曾经的业务系统,业务流的流转通常是采用对状态字段的控制来实现的。当报销单填写完成后,单据状态为1,经理审核的时候,就查询出单据状态为1的记录,做审核,审核完成后,也是修改审核状态,这样来达到业务流的流转。
当应用了工作流系统后,业务流的流转,就不需要根据状态字段来控制了,业务流的流转按照业务流程建模的节点规则向前流转,状态字段退化成纯粹的业务数据,只表示当前的业务状态。
工作流系统在集成业务模块时,只要将业务模块实现的表单,挂接到流程的节点上,就可以了。业务表单,可以是定制的,如jsp页面,aspx页面,甚至htm页面。也可以是用表单工具生成的表单,将通用表单工具生成的表单挂接到流程的节点上。
流程运行时,按照流程节点向前运行,取出节点的表单,打开运行,待用户输入完成后,提交,一并做业务数据的提交和流程节点的提交。这里就涉及到工作流引擎和业务模块集成。
集成通常分为几个方面:
表单数据的提交+工作流节点的流转:需要在一个事务中完成。
表单中的一些业务数据,需要能传递到流程引擎中,做流程流转控制用,如报销流程,报销金额大于1000元的需要总经理特别审批,就需要将用户填写的报销金额值传递到流程引擎中。
表单中也需要能获得流程的一些数据,如流程实例id,节点id等等,便于做业务数据和流程实例的关联,另外也可以做一些权限控制等。
集成的过程,需要调用流程引擎的api来实现,当流程引擎和通用的自定义表单工具集成时,这些集成是都完成了的。只需要在表单设计器中完成业务表单模块。调用相应的功能,即可完成和流程的关联。
自定义表单工具和工作流引擎的集成表现在如下几个方面:
表单数据的提交+流程的节点的执行 :
是在表单数据提交的后置事件中,做了流程的节点的执行。如果流程还未初始化,即未生成流程实例id,则在表单数据提交的前置事件中,调用流程引擎的api,执行流程的初始化,得到流程实例id。
表单数据的提交+流程节点的运行是在一个事务中实现的。
表单中关键业务数据传递到流程引擎中的实现:
在表单的数据集中设置了,选择流程用,提交表单时,扫描出流程用的数据,按关键字,数据类型和值,形成一个map对象(java是map,.net是IDictionary),在执行流程引擎的节点时,送入流程中,供流程使用。
工作流引擎的初始化
public long initialize(String workflowName, int initalVersion, int initialAction, Map inputs) throws InvalidRoleException, InvalidInputException, WorkflowException, InvalidEntryStateException, InvalidActionException;
执行动作方法
public void doAction(long id, int actionId, Map inputs) throws InvalidInputException, WorkflowException;
表单中接收流程的相关信息,是在打开业务表单的时候,将流程的一些相关信息,拼到url中,表单再获取这些url中的值。
为了便于更快速的制作业务表单:
表单生成器应该提供了自定义工具条的功能,在制作表单时,可以自定义工具条的内容。
构建表单的lebel 值的类型 ,表单输入框绑定人员选择器,简单的表单布局功能等。
分享到:
相关推荐
后台工作流引擎以COM组件方式实现,为应用系统的集成提供了方便的编程接口。客户端应用是人机交互的界面、与业务系统的具体应用。 模型定义工具Workflow建模工具以图形界面为建模人员提供了一个友好、方便的建模...
7. **扩展性和灵活性**:良好的工作流引擎应允许添加新的活动类型、规则,以及与其他系统的集成,以适应不断变化的业务需求。 在提供的压缩包文件"第3章 工作流引擎"中,可能包含了关于如何实现这些特性的详细教程...
工作流引擎是一种软件系统,它负责管理和自动化一系列业务流程,使得组织能够按照预定义的规则和步骤高效地处理任务。在本项目中,"用C#做的工作流引擎"是利用C#编程语言构建的,这表明开发人员利用了C#的强大功能和...
开源工作流引擎Asp.net源码是开发人员用于构建企业级业务系统的重要工具,它集成了表单引擎、流程引擎和权限控制等关键模块,旨在提高应用系统的灵活性、可扩展性和安全性。以下将详细阐述这些核心组件及其在实际...
工作流引擎,作为现代企业信息化建设中的重要组成部分,其核心价值在于优化业务流程,提高工作效率,增强业务灵活性。本文将深入解析工作流引擎的概念、作用、必要性以及以JBPM为例的工作流引擎如何具体应用于请假...
工作流引擎是软件系统中用于自动化业务流程的关键组件,它能够根据预定义的规则和步骤协调应用程序中的任务和活动。在C#编程语言中,工作流引擎提供了强大的工具和技术来设计、执行和管理复杂的业务流程。本文将深入...
在基于关系数据库的工作流引擎中,活动首先被分配给预定义的角色,再由角色映射到具体的执行者。这种设计增强了系统的灵活性,使得即使部门或人员职责发生变化时,也不至于对过程定义产生重大影响。 ##### 路由选择...
本文首先引入了工作流引擎的概念,强调其在自动化和协调业务流程中的作用,同时概述了选用Visual C#作为开发语言的原因,主要是因为C#的强大功能、易用性和与.NET框架的良好集成。 2. 开发概述 2.1 Visual C#语言...
工作流引擎是软件系统中用于自动化业务流程的关键组件,它能根据预定义的工作流规则来协调各个任务的执行。在本文中,我们将深入探讨工作流引擎的开发、工作流概念、参考资料及其在实际应用中的重要性。 首先,理解...
在PHP世界中,工作流引擎扮演着至关重要的角色,它处理业务流程的自动化,包括任务分配、状态转换、规则判断等。phpworkflow提供了一个灵活的框架,让开发者可以定义和管理各种工作流模型,而无需深陷于底层的流程...
Java平台上的工作流引擎在企业级应用中扮演着至关重要的角色,它们帮助企业自动化业务流程,提高效率。本文将深入分析四个主流的开源工作流引擎:Shark、osworkflow、jbpm和jflow。 首先,Shark是Enhydra项目的一...
驰骋工作流引擎,简称ccflow,是一款强大的开源工作流管理系统,专为各类组织和企业设计,用于自动化和优化业务流程。它集成了智能流程引擎,使得流程设计、执行和监控更加灵活高效。 首先,从整体解决方案的角度看...
总之,基于Django的工作流引擎工单系统提供了一个实用的业务流程管理工具,通过学习和实践,无论是对Python编程还是Web开发的理解,都将有显著提升。同时,这个项目也适合用于教学和研究,帮助开发者掌握现代Web应用...
工作流引擎需要确保业务数据和流程数据的一致性和完整性,这通常涉及到事务管理、数据关联以及在自定义流程中的数据统计。设计时,必须考虑到如何在流程变更时保持数据的正确性。 **伸缩性**是针对大型企业或高处理...
在本项目中,"asp.net基于工作流引擎的系统框架设计开发(源代码+论文)",我们将深入探讨如何利用ASP.NET结合工作流引擎来构建高效、灵活的业务流程管理系统。 工作流引擎是用于自动化业务流程的核心组件,它能够...
工作流引擎是一种软件系统,它实现了工作流程自动化,使得企业或组织可以定义、执行和管理业务流程。在本文中,我们将深入探讨工作流引擎的概念、重要性以及如何使用工具进行工作流管理。我们还将通过阅读名为"jbpm...
总的来说,Activiti工作流引擎是现代企业级应用中实现业务流程自动化的重要工具,它通过BPMN2.0的标准化建模,为企业提供了强大的流程管理能力,同时降低了系统维护的复杂性和成本。通过深入理解和熟练运用Activiti...
【标题】"基于SpringBoot+Vue3快速开发平台、自研工作流引擎源码...开发者可以从源码中学习到如何集成这两种技术,以及如何设计和实现一个高效的工作流引擎,对于提升自身在企业级应用开发领域的技能有着极大的帮助。