如何基于工作流实现OAERP集成.docx
《如何基于工作流实现OAERP集成.docx》由会员分享,可在线阅读,更多相关《如何基于工作流实现OAERP集成.docx(7页珍藏版)》请在冰豆网上搜索。
如何基于工作流实现OAERP集成
如何基于工作流,实现OA-ERP集成
2002-10-3013:
15郭应中、吴科/(AMT)
引言
ERP系统是对企业能够提供业务数据支持的信息系统,OA系统是实现公文收发、流转、签发、归档等群组化办公作业自动化的信息系统。
两者都是为实现单一目标而运行的信息系统。
在企业的业务活动中,经常有些业务是贯穿ERP和OA两个系统的。
比如采购流程:
采购申请生成、采购定单生成、验收单生成是在ERP系统进行;采购单申批、入库准备单流转在OA系统进行。
企业中存在对OA和ERP两个系统集成的需求。
另外,ERP系统和OA系统实施的难度差别造成一个时期内系统覆盖范围不同,将两个系统集成,ERP的实施效果可以事半功倍。
将两个系统集成,涉及到组织、角色、任务和过程的定义和管理。
通过工作流系统进行集成,不但可以把两个系统中的多个模型统一,还可以使企业专注于应用业务,更方便地进行企业流程重组(BPR)。
对ERP和OA两个系统的集成,主要的工作有集成方案的确定、系统集成功能范围的确定、工作流系统的创建或改造、组织模型的统一等。
集成方案的确定
实现OA和ERP系统的集成,通常的实现方案有以下三种:
1、更换原有的ERP系统,选择能够同时提供OA和ERP解决方案的供应商。
同时提供OA和ERP解决方案的供应商,其产品在设计阶段就考虑到了两个系统的集成。
但是目前这样的方案往往是供应商出于市场份额的考虑而提供的,由于开发规模、成本和周期的限制,所提供的ERP-OA一体化方案的功能往往比较简单,不能满足企业个性化的需求。
而且,ERP系统在企业内运行一段时间后,更换新的系统,会面临新旧系统间数据移植的巨大工作量、用户不愿意舍弃熟悉的界面和高昂的费用等困难。
所以这个方案只能被未实施ERP系统企业中的少部分企业使用;
2、使用ERP供应商的合作伙伴提供的集成方案。
例如LotusNotes为SAP、Oracle、JDE等公司的ERP产品都提供了集成化的解决方案。
其方法是:
在OAServer和ERPServer之间通过数据库连接工具DECS连接。
在ERP系统的DB建立大量视图供OA访问,在OAServer上建立关系型数据库,存储定期从ERP系统中按照字段映射过来的静态数据,作为OA系统组织和资源定义的依据。
OA系统中的表单鉴审后可以通过ERP系统的Interfacetable写入ERP系统。
这种方案可以两个系统的高度集成,但是存在以下问题:
(1)不是所有的ERP系统都有相应的集成方案提供。
LotusNotes仅对大型而且著名的ERP产品提供了这样的集成方案;
(2)这个方案的实现和维护费用非常高。
如果在新增流程,需要在ERP系统中新增视图,在OA系统中新增表单。
对于大型的ERP系统,其数据库中的table有近万个,加上在OA中创建表单,都是企业IT人员无法独立完成的,仍需要方案提供者的服务。
即使是方案的提供者,在使用这种工具完成两个应用系统结合时,也必须同时对两个系统了如指掌。
然而,不论在国内和国外,同时能够深层次了解两个系统的技术人员极为紧缺,加上高昂的购买费用,企业很难接受;
(3)ERP实施模块增加,特别是ERP系统的升级,都会造成集成化系统的瘫痪,限制了企业的业务发展。
因此,此方案的应用仍然比较少。
3、通过工作流系统,实现工作流程在两个平台上切换。
在工作流系统的管理下,用户通过远程登录工具和模拟键盘录入,实现OA平台和ERP平台之间的简单切换。
系统架构图如下:
图1集成后的系统架构
对应上图的每个步骤说明如下:
1.用户登录OA系统后,WorkflowServer根据OA系统中人员配置管理功能确认其身份,此用户同时得到了相应的权限;
2.身份确认后,WorkflowServer再根据此用户在其权限内申请的工作流程提供工作流表单,并在表单上显示用户对应的组织结构的层次度;
3.用户在工作流表单上填写本流程执行需要的数据,这些数据可能是请假天数、请假原因等不涉及ERP系统的数据,也可能是访问ERP系统的参数。
如果在流程执行时仅仅需要在ERP系统中执行查询,工作流表单的填写要在访问ERP系统后进行。
4.当工作流程执行到ERP系统上的作业时,工作流系统自动引导用户进入ERP系统。
通过OA系统本身的Script语言结合Terminalsimulatorscript语言编写的访问ERP系统的任务项,根据执行的流程类型、顺序、工作流表单参数,用户可以直接进入ERP系统相应的功能模块。
5.用户操作ERP系统。
可以根据权限执行不同的操作。
以采购申请为例,用户可以填写需要采购的物料编号、采购数量、价格范围、供应商等,存储后保存在ERPDB中;
6.ERPDB保存后,通过ERP系统界面向用户提示保存成功;
7.ERP系统将保存成功的单据编号和单据状态等信息传送到工作流系统。
根据需要,用户可以把ERP系统生成的表单导出为Excel文件保存在本地;
8.当工作流系统收到ERP系统传来的信息后,进行格式检查,确认无误后继续执行;
9.用户在屏幕上审查工作流系统执行情况是否正确,确认无误后,将工作流表单传送到WorkflowServer,保存在本地的Excel文件也可以作为附件提交;
10.WorkflowServer收到用户传来的工作流表单,并据此将工作流表单和附件传送到下一个执行者。
同前面两种方案比较,这种方案的适应性非常强,开发量、开放难度和费用都比较低。
因此为本文采用。
系统集成功能范围的确定
如果把企业内所有的流程都通过工作流系统在OA和ERP系统中实现,不仅没有必要,而且有些流程是不适合在信息系统中实现的。
因此,需要对系统集成的功能范围进行确定。
企业内部流程是由一个个动作组成的,根据动作发生的频率和流程特点,可以分为以下三个类别:
A类:
发生频率高而且执行简单。
如各种申请的上呈、核签、否决、查询;
B类:
发生频率一般,执行方法复杂而且经常发生变化。
如会签,往往人数不定,层次不定,后续动作不定;
C;类:
发生频率特别低,或者其所在流程不具备管理意义。
如卫生值日流程中的所有动作;
为使集成工作简单而有效,系统集成的功能应集中在由A类动作组成流程的范围内。
在集成工作前阶段,工作流系统中计划实现的流程中,需要OA和ERP两个系统共同完成的流程有:
1.物料信息维护。
当物料新增或停用时,经过层层签字,在ERP系统中做相应处理;
2.采购流程。
采购申请、审核、采购申请汇总、分单验收、入库流程;
3.付款流程。
付款申请、发票校验、审核、通知付款、付款登记;
4.报销流程。
单据填写、网上审核、票据检查、登记入帐;
工作流系统的改造或重构
按照工作流管理联盟的定义,工作流是一类能够完全或部分自动执行的经营过程,将文档、信息和任务在不同的执行者之间传递、执行。
传统的工作流系统中,每一个业务流程都要根据企业内的业务流程完整构建出来的。
这样每一个业务流程都有大量的代码来实现,流程的创建和维护工作量很大。
仔细分析企业内的众多业务流程中,相当部分的流程是有共同部分的,每个流程中都有功能重复的代码。
动态工作流把完整的工作流分解为若干个活动(Task)(对象),使工作流建模工作得以简化,可以实现更复杂的工作流系统。
活动是动态工作流的一个重要概念:
工作流是一组有关联关系的活动的集合。
一个活动与其它活动之间有顺序,分支,循环,调用的关系,还有并行、有同步的关系。
按照动态工作流的概念,一个完整的工作流程被分解为若干个活动(Task)和活动间的逻辑控制器。
每个活动不和其它活动作任何直接交互,交互完全在逻辑控制器间进行。
如图2所示:
图2动态工作流系统结构
每个活动都有进入条件,工作条件,中断条件,完成条件,暂停条件及继续条件。
执行时,判断每个工作项是否可以进入,可以则进行进入处理,然后,判断需要是否中断或暂停。
活动的结构图如图3:
图3活动的内部结构
图3中,一个活动有不同的状态集、输入集、输出集。
状态集包括等待、执行和完成。
输入集和输出集分别由若干个输入和输出组成。
输入来源可以是本活动的输出,也可以是其它活动的输入或输出或状态。
当输入集中某项输入状态发生改变时,将触发工作项的状态发生改变。
达到完成状态时,将产生输出集。
输入不同,触发的执行过程和产生的输出集不同。
当多个输入集同时被激活时,按优先级执行。
工作流系统的动作和逻辑控制器采用JavaBean和关系型数据库实现,可以设计为可视的图形元件,也可以设计为不可视的逻辑处理元件。
这样做的好处是把工作流系统的各个活动做成代码行数小、功能明确的黑盒子,实现动态的工作流系统,并在多环境下运行。
OA系统和ERP系统都可能自带工作流功能。
但ERP系统的工作流功能缺乏开放性和适应性,并且ERP系统开发商不允许对其进行修改,因此其工作流功能的存在在集成中实际上是一个障碍。
完成系统集成后,ERP的部分功能会由系统管理员设定为只能通过远程登录的方式访问,这是要对ERP系统原有的工作流系统做重新的设置,以免系统运行出错。
OA的工作流功能,如果不能实现动态工作流机制,是无法满足集成的需要的。
这时要对其工作流功能进行重构。
如果已经实现了动态工作流机制,也要增加一些访问ERP系统的功能动作。
如果选择其它的工作流系统支持集成工作,虽然理论上可行,但是开发量未必减少,系统复杂度、维护量和费用必然上升,所以本文建议采用对原有的OA系统的工作流功能进行改造,实现企业的工作流系统。
组织模型的统一
OA系统和ERP系统都有各自的组织模型。
OA的组织模型是服务于企业行政组织层面的,ERP的组织模型则是服务于企业业务层面的。
在用工作流系统对两个系统集成时,要对两个系统的组织模型进行统一。
在本方案中,就是要对OA系统的组织模型重新定义。
ERP系统的组织模型比OA系统要复杂,不同的ERP系统有不同的组织模型。
以OracleApplication为例,其组织模型为:
账簿集-法律实体-操作单元-库存组织,再往下是更细致的划分,可以做到用户-角色-所属组织-权限的一一对应,权限的设置可以明确到字段。
对OA系统的组织模型的重定义,主要是增加OA系统组织结构的层次数量,建立新组织结构数据库,把ERP用户和OA用户都在新的组织结构中反映出来。
注意OA系统中的用户名要和ERP系统中的用户名统一,因为在ERP系统中用户名和角色、权限是对应的。
但口令不能统一,登录ERP系统时,系统仍然会提示用户输入ERP系统的口令。
连接方法
本文中,WorkflowServer是使用LotusNotesServer+LinuxRedHadver7.1系统,而在ERP系统上本文所采用的是HP/Unix+鼎新Tip-topERP系统+HP9000,Client端则采用一般的Windows环境+LotusNotes客户端软件。
两个服务器通过TCP/IP协议连接。
在WorkflowServer上安装InterSoft公司编制的共享软件NetTerm4.3.0简体中文版,可以在10个以上的操作系统上运行,对远程主机环境具有良好的设置能力。
NetTerm的作用是相应客户端发出的登录ERPServer的要求,所以连接型态选TCP/IP,端口填"23",模拟型态和键盘定义都选VT100(上述设置适用于国内多数主机),主机名称和地址填入ERPServer对应的地址和内容。
例如当用户需要访问ERP的采购申请功能时,工作流系统中访问ERP系统采购申请功能的活动中包含以下语句(用Terminalsimulatorscript语言编写):
expect10”login:
”
#username“EnterUserID”
#output“^U^M”
expect10”Password:
”
#password”EnterPassword”
#output”^P^M”
output”12345^M”//工作流系统提示用户输入口令后生成该行
expect10”/”
output”exeapmt420^M”
output“a”
流程执行完这段程序时,就自动打开了ERP系统的相应功能。
在用户填写完采购申请单后,ERP系统数据库中的保存操作触发事件为:
以XML的格式,把采购申请单编号、创建实际、创建人等信息传送到用户本地,并被用户本地服务响应,填写到工作流表单。
用户可以执行修改功能再次访问ERP系统修改采购申请单。
在用户确认无误后提交,下一个申批人接到提示申批的电子邮件,点击邮件中的连接,出现反映采购流程执行情况的流程表单。
依次类推。
应用情况
在实际应用上,根据用户需求定义了采购流程、付款流程、报销流程等,并在ERP系统中开放部分数据访问和维护权限给Internet上自己的外地分子公司和上游客户,解决了ERP刚实施完本部,外地分子公司采购流程无法并入集团供应部采购流程的问题,使用户提前实现了集中采购的战略构想。
目前,该用户的上游近600家企业中,已经有60家提供大宗原材料的供应商使用这些流程,集中采购和比价采购使该企业在每年10多亿的采购额中节约了大约1.5%的采购成本,给企业带来了良好的经济效益。