0 引言
由于现代的企业竞争已经从降低成本和提高质量的竞争进化到如何增加企业的柔性和快速反应性的竞争,人们越来越重视对过程的管理。为了提高竞争力,企业不仅要很好地实现基于过程的管理,而且要保证过程的柔性,因为速度和柔性是赢得竞争的关键。现在的企业信息系统主要通过ERP系统来实现。ERP系统一般在一个软件中实现所有的功能。但是这个软件是面向功能的,不是基于业务过程构建,因此不能适应企业业务过程的经常变化。而工作流技术和工作流管理系统作为面向过程应用的关键技术现在已经逐渐成熟并被广泛地用于各种信息系统中。它的应用一般有两种形式,一是作为自治系统(如Lotus Notes,Ultimus workflow等),一是作为其他大型系统的 一部分(如在SAP和Oracle中的工作流系统)。随着工作流技术的日趋成熟,工作流管理系统已经为业务过程的定义和执行提供了良好的基础,而工作流技术将继续发展成为业务操作系统,实现对业务过程的全面管理。
因此,在企业中实施工作流管理势在必行。实施工作流管理必然要考虑工作流管理系统与ERP系统的关系。考虑企业业务过程的特点,企业中没有实现电子化的业务流程以及已经实现电子化但需要经常变化的业务流程可以交由工作流管理系统来管理。而目前实现了电子化的这部分过程,一般在ERP系统中来管理。这就需要很好地从)ERP系统中“剥离”出一部分过程,交由工作流系统管理。如何选择这些过程,以及工作流管理系统与ERP系统的关系则是必须考虑的问题。一般来讲,对企业中“业务性”很强的过程(特点是流程经常变化,业务数据少,事务性的工作多(如报销流程等),由工作流管理系统来实现。此时,作为ERP系统的一部分,工作流管理系统能够实现对业务过程的有效管理,从而提高业务过程的柔性和快速反应性,使得企业能够适应市场的经常性变化通过对现有ERP系统的缺点和存在问题的分析,本文给出了一个引入了工作流技术的ERP系统。在工作流管理系统和基于组件开发的基础上,设计了基于组件的ERP系统体系结构,给出了根据功能把过程中的活动分解为组件的方法,最后详细讨论了支持该系统全生命周期管理的开发和实施方法。
1 工作流管理系统简介
工作流是业务过程的自动执行,它根据预定义的规则使得文档、信息或者任务在工作流执行者之间传递并帮助活动的执行。业务过程的自动化是在工作流定义中描述的,工作流定义确定了工作流活动、活动之间的相互依赖关系以及用于管理工作流的控制数据。活动是工作流中定义的任务,它形成了过程中的一个逻辑步骤。工作流中活动的依赖关系有两种,即用于执行的控制关系和用于数据传递的信息依赖关系。在工作流建模时,需要指定活动的角色,输入输出数据以及时间延迟等信息来描述一个实际的过程。同时,还需要确定活动之间的相互关系以用于过程执行时决定活动的执行顺序。现有的工作流建模方法很多,许多工作流模型都是基于Petri网建立,工作流管理联盟设计了基于XML的建模方法XPDL,有向图的方法也用来描述过程,其中节点对应着活动而有向边对应着活动间的关系。在工作流运行之前要建立工作流实例,工作流实例是工作流执行过程的表示,它由工作流管理系统根据工作流模型来生成和管理。通过对工作流实例的执行,工作流管理系统完成对业务过程的运行和管理。
工作流管理系统是一个完整的支持工作流的定义、执行和管理的软件系统,而该软件系统的执行顺序是根据工作流模型来进行的。工作流管理系统包括工作流过程定义工具、工作流执行服务、管理与监控工具、工作流客户端和相关应用程序接口等部分,如图1所示。过程定义是建立工作流的过程,将企业的实际业务过程转化为计算机可处理的工作流模型。工作流执行服务负责对工作流进行实例化、执行和管理。管理与监控工具负责对工作流的执行进行管理、分析与控制。工作流客户端负责人机交互,提供工作流执行的接口,帮助完成业务过程的执行。相关应用程序接口负责与应用程序的接口,提供工作流执行时所需要的软件以协助工作流的正常执行,相关的程序包括ERP系统的COM+或J2EE等软件组件、文档管理、表单管理、电子邮件服务、CAD/CAM/CAPP等。
工作流管理系统提供了定义和执行业务过程的基础,企业ERP统的一部分业务过程可以由工作流管理系统来执行,实现对企业过程的高效管理。工作流中活动对应的功能将由软件组件来实现。而基于工作流管理系统的这部分系统可以与ERP系统其他部分集成。集成在两个层次上实现:
(1)在软件层次的集成:工作流管理系统调用其他软件工具实现过程的执行。
(2)在数据层的集成:基于工作流的系统与其他信息系统共同访问一个数据库,实现数据层的集成。
2 工作流在ERP系统中的应用
2.1现有ERP系统的缺点
传统ERP系统的设计与开发都是以信息处理和信息集成为中心,面向系统的组织结构来实现各种功能。而这些功能模块之间的内在联系都没有显式的实现,而是隐含在程序中。而执行流程往往隐藏在复杂的菜单之后,通过用户不断地点击各个菜单来实现业务过程的运转。系统界面以菜单的形式提交给用户,而菜单中各个功能之间的内在关联则无法显式地提交给用户,而只能靠软件说明书或者帮助来指导用户的操作。新用户需要专门的培训才能够掌握软件的使用,操作的正确与否也取决于用户的熟练程度。当前ERP系统多为面向功能的,所以当过程出现变化时系统往往不能适应。ERP的设计者和开发人员通常只是考虑系统的功能而很少考虑软件的使用流程。如果需要经常改变工作流程的时候就出现了问题:此时需要重新设计、编码和重新编译软件,影响软件的稳定性。正常的工作会被打扰而且操作人员还需重新熟悉软件,更重要的是需要重新熟悉隐藏在繁琐的菜单后面的工作过程。可见,传统的面向功能的ERP件缺乏对业务流程的
有效支持,软件的耦合度很大,缺乏灵活性。工作流管理系统是对业务过程进行处理的系统,以过程为中心实现系统的集成,具有灵活、开放的优点。基于工作流系统的开发则强调对业务过程的支持。因此,通过传统ERP系统与工作流系统的结合,对传统ERP系统进行改进,可增强ERP系统对业务过程的集成和管理,提高系统的柔性,进而增强和改进ERP系统的功能,更好地适应客户的需要。
2.2ERP中的工作流应用
为了增强对企业业务过程的有效管理,需要在ERP系统中引入工作流技术。在ERP中,对业务性很强的业务过程用工作流系统来管理,而对于企业中没有实现电子化的那部分业务过程同样可以由工作流管理系统来管理。可见工作流系统还包括了一些不属于ERP功能的过程。为了方便这里不加区分,而把ERP需要工作流系统实现的过程和以前没有实行电子化的过程统一管理。
工作流包括一组活动以及活动之间的逻辑关系。活动对应着业务过程中的任务,逻辑关系决定了活动的执行顺序和活动之间的数据流动关系。工作流执行者负责人工活动的执行,执行时需要一些相应的数据、资源和相关软件。工作流管理系统本身需要建立在某种软件组件基础之上,如J2EE或NET。而ERP系统中的业务过程可以分解成活动,每个活动实现某种特定功能。过程中的活动可以由软件组件来实现,并根据模型的对应关系把这些软件组件插入到工作流系统中,运行时由工作流引擎调用。这些活动,或者功能,可以建立在与工作流管理系统相同的组件基础结构之上。
引入工作流技术的ERP系统结构如图2所示。底层是操作系统、网络、数据库和基础组件平台,作为整个系统的基础结构。在这个基础结构之上建立ERP系统和工作流管理系统,它们都是建立在同一个平台之上(J2EE或.NET)。工作流管理系统是管理者,它帮助建立整个企业的业务过程,并且通过管理和监视业务过程的执行来完成ERP系统的一部分功能。工作流中相应活动的功能由软件组件实现,而这些软件由工作流管理系统根据过程规则进行触发。用户通过工作流客户端进入系统,在工作流执行服务的支持下,完成系统中业务过程的运转。工作流管理系统与ERP的其他子系统共同存在,工作流管理系统通过调用相关子系统中的软件组件来实现相应的功能,同时通过访问企业数据库来进行数据交换。通过工作流系统来管理其他子系统中的业务过程,增强了ERP系统对过程的处理能力。而工作流管理系统通过与ERP系统共享底层数据库以及通过调用实现了相关ERP功能的软件组件,来实现与其他ERP子系统的紧密集成。
在业务过程中,人工活动由人来控制执行,执行时需要调用相关的应用程序和ERP中的软件组件,而自动活动由计算机程序来执行,该程序就是在工作流管理系统运行时由工作流引擎触发的软件组件。这些软件组件由ERP系统开发者根据企业建模所得到的过程模型来开发。它们是根据活动的功能设计的,并且在模型中建立活动与这些组件之间的映射关系,在工作流执行时由工作流引擎来调用它们以实现过程的运转。
2.3面向过程的ERP系统优势
与面向功能的系统相比,引入了工作流技术以后,ERP系统是面向过程来设计、开发和实施的,这种面向过程的ERP系统具有如下优点:
(1)柔性:过程中活动之间的关系与活动的功能逻辑是分开的。也就是说业务过程与ERP系统的功能可以分别建立。相应的软件组件可以根据功能来建立,而工作流模型根据业务过程来建立。然后在工作流模型内定义软件组件和活动之间的对应关系。这种分开做的方式允许ERP应用中的过程模型改变而不影响相关活动的功能,增强了系统的柔性。这也正是企业试图使用工作流技术的原因。
(2)可重用性:可重用性的优势是基于工作流的应用自身所具有的。过程中活动的实施与流程是独立的,并且它们在过程中的使用也是自由的。因此,一个给定的活动可以被用在不同的过程模型中,实现了活动(以及对应的软件组件)的可重用。
(3)集成性:通过活动之间的控制关系和信息依赖关系,工作流模型能够把不同的活动集成在一个过程内。而且,由于各个功能模块是基于组件技术构建,其他异构的信息系统同样可以被工作流系统集成到过程中来,成为ERP系统的一部分。尤其是与CRM和SCM系统的集成,扩展了ERP的外延。
(4)快速性:通过对过程的管理,能够实现ERP应用的快速定制和实施,大幅度缩短ERP应用工程的实施周期。
(5)动态性:工作流管理系统能够动态、实时地提供过程的运行信息,对这些信息的动态分析可以及时给出决策与管理的依据。通过动态修改工作流模型,还可实现动态的BPR。
(6)协调性:工作流管理系统可以全局地协调工作流中各个活动的执行,使得活动的参与者以及相应的软件工具能够在工作流执行系统的管理下有机地协调运行,充分利用企业的资源并实现过程的最优化运行。
(7)高效性:工作流技术在流程优化的基础上,能够实现业务流程的全部和部分自动化,从而实现业务过程的高效运转。下面在第3节给出了ERP系统中工作流管理系统的全生命周期管理方法和系统实施步骤。
4 系统实施方法
ERP中工作流管理系统的生命周期可分为4个阶段,即需求分析、设计说明、实施描述和运行维护,如图3所示。在CIMOSA体系结构中模型的生命周期有3个阶段。我们在ERP系统的生命周期中加入了运行维护阶段。在运行维护阶段,企业模型可以进行动态的维护,而且可以方便地实施BPR操作。
在需求分析阶段,主要有两项工作:一是建立工作流模型,一是对所需的组件进行需求分析与设计。建模人员要调查和分析实现ERP系统功能的相关业务过程,并且建立需求分析模型,即通过进行过程定义来建立工作流模型。在此阶段要建立模型的4个视图,即过程图、组织视图、资源视图和信息视图,这些视图分别从不同的角度描述了工作流模型。过程视图是工作流模型的主视图,它将被工作流管理系统进行调度执行用以完成ERP系统的功能。工作流模型中的活动都将被建立,活动之间的控制关系和信息流动关系都被指定。同时,需要指定过程中负责执行活动的角色以及支持用户使用的应用程序。而这些应用程序会以软件组件的形式提供。这些软件组件本身实现某些功能,并且映射到某个工作流中指定的活动。在需求分析阶段要对这些组件进行设计,包括设计它的接口,API和功能。
在设计说明阶段,主要是分析和优化在需求分析阶段得到的工作流模型。如果必要,重新指定活动的组织和资源,也就是活动的执行者和活动所需要的资源。同样,活动的输入输出信息也可能被重新设定。在此基础上,设计和开发全部软件组件。在实施描述阶段,通过指定工作流过程中活动与组件的关系,建立起ERP统中完整的工作流管理系统。为了检测过程中潜在的错误和问题,需要进行工作流系统仿真。通过仿真来找出过程的瓶颈,找出任务、角色分配的潜在负载冲突,并进行改进,把修改后的工作流模型保存在模型库中用于最终的执行。经过仿真检验后,所得到的过程模型可以进行实际运行。然后,通过模型的实例化,为工作流过程和活动指定执行者,分配各种资源,同时建立起完整的企业数据库。于是,整个ERP系统中的过程被工作流系统管理起来。
在运行维护阶段,在工作流引擎的管理下,系统中每一个工作流的实例都被很好地管理和控制。同时,过程的时间和成本性能被实时监督,而所得到的运行记录与历史记录一起为企业性能评价提供了支持。这些记录保证企业有足够的信息进行BPR的分析与操作。另外,在传统的面向功能的ERP系统中,很难实现在系统运行时改变系统的模型。而基于过程的模型中却可以容易地实现,因为:
(1)工作流管理系统本身支持工作流模型的动态修改;
(2)工作流模型和相关的软件组件是独立的。这使得我们可以在生命周期的任何阶段修改模型。尤其是在运行维护阶段,模型可以及时得到改进。模型的动态修改方法如图4所示。在工作流运行时,借助管理监视工具,管理人员能够观察并判断工作流的执行是否按照模型严格进行。如果出现时间约束违反,成本超出预算,活动执行出现问题,操作人员的工作负载超负荷,或者任何性能指标出现违反(时间、成本、质量、服务)的话,管理员可以给出某些建议并且据此改进工作流模型,也就是进行业务过程重组。BPR操作可以离线进行,可以在线进行,然后可以修改并得到更好的工作流模型,同时把对企业的影响降到最低。
4 结论
为了克服当前面向功能的ERP系统结构相对固定以及不能适应经常变化的业务过程的缺点,本文给出了在ERP系统中实施工作流管理的方法。在工作流管理系统和组件开发技术的基础上,设计了引入工作流技术后的ERP系统结构。设计了相应的过程管理方法以及根据功能把过程分解为组件的方法。详细讨论了这种面向过程的企业信息系统的开发和实施方法。由于工作流管理系统不但能够有效地控制过程的执行,还能够进行实时性能分析和BPR 操作,提高了ERP系统对不断变化的业务过程的管理能力,使企业能够更好地适应市场的动态变化。另外,这种系统结构提高了ERP的实施速度,而系统的使用也会更加方便,维护则更加灵活。系统的MES部分已经在企业实施,验证了本文提出的体系结构。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:工作流技术在ERP系统中的应用