在当代信息化软件系统开发中 , 工作流引擎 是 其中 非常重要的一环。所谓 工作流引擎 ,是指 工作流 作为 软件 系统的一部分, 其中 包括 了 流程的节点管理、流向管理、流程样例管理、审核管理等重要功能。
工作流引擎 可 根据角色、分工和条件的不同 来 决定信息传递 的 路由 与 内容 的分级 。 其对 各应用系统 是 有 着 决定作用的 。

美观友好的交互 界面, 稳定的 数据库信息交换, 满足 实际业务需求 的高效 程序逻辑, 这些都是判断一个软件系统是否优秀的重要标准。一个满足以上条件的系统,将会 在一定程度上保证其稳定性和易用性。
做到程序 稳定 , 是为了保证 该 系统的可靠 性 , 满足界面 易用 , 则 是在 保证模块化、结构化、操作的便捷性 。 这样可以在业务流程发生变化,例如决策权的改变、组织结构的变动时 , 随之变换 的全新业务逻辑,而 工作流引擎 解决的就是这个问题。如果应用程序缺乏 稳定高效 的逻辑层,就 会很 容易出 现包括 信息路由错误、 异常 循环 在内的各种错误 。

这里举个简单的例子。一台电脑,外观前卫炫酷,但如果硬件系统有问题,那势必会出现各种BUG,如不加以改进,极有可能被人嫌弃,最终变成一堆废品。而应用系统的拓展性就好比电脑的运行速度,别人开机只需五秒,而你的则需要五分钟(业务流程变动需要更长时间的程序修改),孰优孰劣,一目了然。而如果电脑动不动就蓝屏重启(程序逻辑异常循环),那这样的电脑谁还会用呢?
服务架构
面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义好的接口和契约联系起来。接口是采用中立的方式进行定义的,它独立于硬件平台、操作系统和编程语言。工作流引擎使构建在各种系统中的服务,以统一和通用的方式进行交互。

想要一套有 灵活工作流机制的OA 系统的企业不在少数 , 于是 有很多人 使用 用 D omino来 摸索着 做 。 等待 后来ASP.NET 出现 ,好像大家都醒悟了, 各领域企业都 要 求使用 工作流引擎 实现企业信息审批流程化。
基于企业的实际需求,近几年 出现了一批 标准的企业级工作流引擎,并获得了双软认证 。 这里讲一下口碑比较好的Learun, 总体采用拖拽式设计,配合代码生成器,通用业务流程代码量接近于零,各项指标及客户反映都不错,其基本思路如下:
首先 , 定义流程步,主要包括:操作的接口地址、操作参数、操作类型(起始操作、中间操作等)。 其 目的是 将来对 每个操作 进行 关系设置和流程定义时 , 可以 选用这些定义好的操作步。
第二 , 定义操作的参数, 除 接口地址外,还需定义 其 参数。
第三 , 定义操作步之间的关系。就是定义 各 流程中每步的前驱、后继的操作。
第四 , 定义流程 。 其中 必要的 内容 , 是基本信息 、 流程操作以及流转规则。流程基本信息 这里不表 。流程步定义比较复杂, 包括 步骤类型(起始、中间、终结),入口步骤、出口步骤、通知模式、人员、角色、发送通知的内容。
第五 , 跳步定义,如需根据参数的不同 , 提交审批到不同的步骤,这里叫做流程步骤变迁规则设置。设置的内容需要:原步骤、目标步骤、变迁方向(正/负)、条件规则(判断参数时用与还是用或)。 然后 设置参数 、 参数值 以 及比较条件。
第六 , 授权管理。这个比较简单了,判断被提交的人是否处于授权状态,从而进行授权处理。

以上所说只是基础逻辑,实际编写过程中还要考虑各企业的实际情况,learun框架内置的 工作流引擎 ,集合了各行业客户意见与建议,适用性强,稳定性高,使用便捷,欢迎体验指正。
参考资料来源以及技术详情参阅 : www.learun.cn/Home/VerificationForm