在企业的实际管理工作中,一个员工填写好一份“费用报销单”后,后续可能还需要经过多个环节例如直接主管、上级主管、财务主管的审批,才可能到达会计(入账)、出纳(付款)手中,以完成整个工作过程。把这个工作过程“电子化”后放入系统,就形成一个所谓的“工作流”过程。通常这个报销单“工作流”需要经过哪些环节,是系统需要预先设置好的,并且可能不同的费用类别所需经过的审批环节也是不同的。作为流程的参与者,例如“提交人、审批人”等,可以查询、监控单据的工作流处理过程,系统也可以在流程环节移动过程中,向下一环节的处理人发送提醒通知(如邮件等)。
单据的“审批流”实际是一个很简单、很直观的“工作流”应用。推而广之到系统中其它业务流程类表单的事务处理过程,所谓系统的“工作流”技术应用就是:根据不同的业务单据类别,事先定义好需要经过的不同业务处理环节,单据在做事务处理时,按规定顺序在相关环节间移动。用户可监控,即普通用户可以查看工作流的处理过程状态;系统可管理,即系统工作流管理员,必要时可以对单据的工作流过程进行干预,例如跳过某些环节、改变参与人等等。
ORACLE系统核心业务模块OM中关于销售订单的处理,就是一个典型的“工作流”技术使用范例。系统根据实际业务处理的需要,先定义好不同的销售订单“行类型”。例如“Ship only”,表示发给客户的这个货物免费、不需开票(例如因为货物质量问题而补发等原因);“Service”,表示这是向客户提供的无形服务,无需发货,但需根据订单行开票向客户收费等等。再给这些订单“行类型”分配一个合适的系统已经定义好的“行工作流”。如图29所示OM销售订单“行类型—行流”分配定义:
上述系统用于分配给“行类型”的行工作流,ORACLE提供了预定义的多种不同类别供用户在设置系统时做选择。更进一步,ORACLE还提供“Workflow Builder”软件包工具(这个软件可以到ORACLE官网上自由下载使用),以便用户对于系统所有预定义的流程进行复制修改,或自定义符合使用要求的特殊流程。
对于具体的每一个销售订单,同一订单中可能包含不同行类型的订单行,这些订单行将循着各自的“行工作流”而进行事务处理。系统在表单界面的工具栏提供“工作流状态查询”的功能,用户可以随时对订单中的每一个订单行的系统处理过程实施监控、查询。
如下图30所示销售订单行的工作流监控功能使用界面:
在上图中点击“工作流状态”功能,则系统将打开属于订单行1.1的工作流WEB查询页面。系统提供“活动历史记录”与“状态图”两种主要查询方式,分别如下图31与图32所示。图31表示订单行的活动历史记录,系统从用户输入订单开始,对于后续几乎每一步事务处理操作都做了记录。
需要指出的是,并非所有业务流程类表单都要采用类似销售订单的“工作流”处理方式,例如“采购订单”的处理等。系统应用模块是否使用、如何使用“工作流”技术,与具体的业务实践以及采用之的优缺点取舍有很大关系,不能一概而论。从系统开发设计的角度来看,尽管“工作流”于技术层面并不难掌握,但要与业务实践实现很好的结合则并非易事。目前国内主流产品基本都宣称具有“工作流”技术,但真正在系统核心业务流程中用得比较好的并不多见,大多只是在“单据审批”或非核心的事务处理型业务诸如“费用报销”等领域中有所应用。
此外,在EBS中有关“单据审批”的工作流应用只是“单据审批”的系统实现方式之一。为满足企业的复杂业务环境的需要,结合工作流技术,系统还专门提供了一个审批功能更为强大且相对独立的引擎模块“审批管理”(AME)作为“外围产品”供企业选择使用。