• 基于规则引擎的业务流程系统

    2009年04月07日

    企业里可能存在着许许多多的流程,像费用报销流程、价格审批流程、采购流程等等。这些流程可能都会对应着某一特定的流程系统。这些流程系统经常都是基于需求阶段提出的流程来实现的,这样后面如果流程发生变化,甚至需要IT对系统进行代码级的修改,非常地不方便。所以最好能有一套机制能够动态地对流程进行修改,减少运行阶段的维护难度,这也就是规则引擎所能起到的作用。

    目前比较成熟的规则引擎基本上都是基于Java的,比如JRules,Jess。VB类的规则引擎还没有见到(如果您有见到,请回复或发站内消息)。做为一名VBer,我们当然希望用我们自己熟悉的语言来实现它。本人经过半年多的学习实验,初步实现了这样一个规则引擎,并在常见的费用报销流程系统中加以实现。下面就把该系统的一些情况和关键技术和大家分享一下。

    该系统以Excel VBA 窗体为客户端,VB6 ActiveX EXE为服务器端,SQL Server 2005为后台数据库,可以实现对局域网内的服务。如果加上企业的IT基础架构(DCOM/COM+),甚至可以允许远程访问。客户端主要功能在于费用申请的提交和审批,不同角色人员所拥有的功能也不一样。服务器端主要负责数据库的连接以及规则的编辑和执行。

    该系统的核心规则引擎的关键技术在于:业务规则的设计、储存,规则引擎的创建,业务规则的加载、执行,执行结果的保存。主要用到的技术有ADO(SQL Server)、DOM(XML)、Windows Script Control、ActiveX EXE(服务器)。下面上一些截图:

    因为没有涉及到特别的算法,只是多种技术的综合应用,所以只提供给大家一种思路和可能性。如果您也此感兴趣,只要会了前文提到的那几种技术和理论,再加上良好的设计,您也一样可以实现的。


    随机文章:

    真正的程序员 2009年07月06日