网上报销和ORACLE ERP系统的接口实现解决方案

来源:百度文库 编辑:神马文学网 时间:2024/04/26 05:52:54
网上报销和ORACLE ERP系统的接口实现解决方案
1、引言
随着我国经济技术的发展,企业规模不断壮大,各企业对其内部信息化的建设也日益重视,很多公司引入了国外的大型管理软件,其中最为典型的是Oracle 公司的ERP产品。ERP可谓是一个完美的物流和成本管理系统,尽管其自身也包含了一套复杂的账务系统,但是整个ERP系统更加关注的是经济业务。因此,其不可避免的带来一些账务系统上的缺陷。针对这种情况,国内企业在基于ERP的财务系统的实现方式上一般存在两种方式:其一,舍弃ERP中的账务模块,直接采用国产财务软件,并将ERP中相关数据导入到财务系统中。这种方式可以充分发挥ERP系统和国产财务系统各自的优点,但是也带来了管理分散,数据不集中等问题。其二,直接使用ERP中的账务系统,其优点在于可以集中完整的处理数据,但存在录入复杂,财务人员难以适应,查询困难等系列问题。
笔者所参与实施的公司采用了后者的财务实现方式,为了弥补这种方式存在的录入负责,操作困难等缺陷,该公司针对最常见的报销业务,采用安财软件公司开发的安财网上报销系统,并实现了该系统和Oracle ERP系统的对接,有效的提高了财务人员的工作效率。本文将重点探讨如何实现网上报销和Oracle ERP系统的接口。
2、接口系统介绍
接口方案的设计需要建立在对接口系统深入理解的基础上。本文所接口的系统分别为安财网上报销系统和Oracle ERP系统,在接口设计前,我们需要清楚的认识其系统结构和系统目的。
2.1 网上报销系统
该系统是由安财软件公司开发。它的主要功能在于将各公司都会面临的大量的报销业务从纸面审批改为网络审批,在极大提高财务工作效率的同时,充分利用系统的数据存储功能提供可扩展的查询、数据接口等功能。
网上报销系统主要分为员工提单、领导审批、财务审核、财务付款等功能模块,这些模块构成了一个完整的报销流程,该流程在各个阶段的数据处理和数据存储为网上报销系统和Oracle ERP系统的接口提供了数据准备。
在该系统中接口数据获取的根源在员工提单模块中。系统采用EXCEL制作模板,财务人员可自行设计模板界面,并通过在模板中设置数据抓取用表,利用EXCEL自有的数据链接功能从模板界面中抓取必要的数据信息。而系统程序则从数据抓取表中获取符合规定格式的数据存储至系统数据库。后续模块的数据处理则均处理数据库中的数据。此种数据抓取和处理模式提供了极强的系统数据适应性,为我们的接口设计和开发打下了扎实的基础。
和传统的报销系统相比,网上报销具有更多的灵活性,更高的效率,以及强大的数据分析能力。国外的一些大型公司均认识到了网上报销的实现意义,如IBM,HP,Microsoft等公司均自行开发了内部使用的网上报销系统,但这些系统和开发公司的具体情况具有很强的关联性,而不是通用的系统,而安财软件公司开发的网络财务系统是目前国内少有的商品化的网络财务系统,在多个公司具有成功的案例。这为本文分析的通用性和典型性提供了有力的支持。
2.2 Oracle ERP系统
ERP系统首先在国外得到理论的研究和实践的应用,随着国内企业的发展规模不断壮大,管理水平的提高成为迫切的需求。因此开始由企业引入ERP的概念并开始了实践的探索。进入21世纪,ERP在国内出现了大规模的商品化推广和实施。对它的研究不仅仅在理论上有着重要的意义,更多的是它推动了企业的管理水平,创造了更多的企业价值
国内现在主流的商品化ERP系统包括从国外引入的Oracle ERP系统、SAP系统、以及国内公司自行研发的用友,金碟等小型ERP软件。这些商品化的软件在设计时出于其商品化需求的考虑,保留了和外部系统对接的可扩展性。并且都相应的开发了外部数据导入的数据接口工具。我们针对ERP的接口有两种方式,一种是利用其现有的接口工具,另一种是直接和其数据库进行数据读写。开发者可根据具体情况选择。
Oracle ERP系统是Oracle公司基于其本公司的Oracle 数据库系统开发的企业资源计划系统。其核心功能在于物流和成本管理。在此基础上该系统用于一套集成于其中的复杂的账务系统。Oracle ERP系统的账务体系采用了业务主导模式,通过每一个经济业务来推动财务业务的记录。
Oracle ERP系统最终通过GL(总账)模块出具财务报表,GL中的数据多数从其他模块中获取,也包括一部分手工录入的数据。相关接口模块主要包括应收、应付、采购、合同、库存、制造、物料、固定资产等。其中和报销业务关系密切的主要是应收应付模块。
以应付模块为例,业务以发票的形式进入系统,发票录入系统的时候借记“费用”,贷记“其他应付款”。在实际付款时借记“其他应付款”,贷记“银行存款”。通过“其他应付款”的过渡,实现对付款的控制,这也体现了Oracle ERP系统的业务主导思想。在期末通过审核、过账后的账务信息从应付模块进入总账,完成传统会计处理中的一笔完整会计业务。
3、接口方案设计
解决网上报销和Oracle ERP系统对接的关键在于接口边界和接口数据结构的确定。Oracle ERP系统的内在逻辑关系相当复杂,因此从哪里接,接哪些内容则尤为重要。Oracle ERP系统为了保护其内在的这些逻辑关系,对外部数据的进入显得尤为谨慎。它一再强调不允许外部数据直接写入系统数据库,但是为了保持良好的开放性,又不得不提供开发的接口工具允许符合其特定业务规则的数据进入系统。尽管如此,它对数据的输入还是有选择的,这就要求我们必须在做接口前明确哪些才是它接纳的。
3.1 接口边界分析
Oracle ERP系统和报销业务关系密切的模块主要包括AP(应付)、AR(应收)、GL(总账)三个模块。该公司在ERP实施的过程中对于日常报销业务均通过AP模块实现,Oracle ERP系统AP模块的发票录入主要包括标准发票、费用报表、预付款发票三种模式。其中标准发票和费用报表在业务实现效果上是一致的,而针对预付款发票实施公司明确的指出Oracle ERP系统不接受预付款发票的导入。
此外,发票导入系统并不等同于一笔会计账务的完成,在Oracle ERP系统的AP模块中还必须进行付款,核销等操作才可以生成一笔完整的会计分录。而这些后续操作中除了付款计划可以导入外其他都是必须通过手工来完成的。
这样我们确定了Oracle ERP系统对该公司数据接受边界的分析:AP模块中的标准发票或费用报表,以及付款计划的导入。其中标准发票和费用报表必须以头信息和行信息的形式分列。
网上报销系统作为一个相对独立的系统具有相当的可扩展性,它可以完全接受Oracle ERP系统的边界限制并提供数据,因此最终两系统的接口边界是一致的。
3.2 接口数据分析
根据上文对接口边界的分析,我们可以看出Oracle ERP系统对接口数据的要求主要涉及标准发票和费用报表中头信息包含的数据,行信息包含的数据以及付款计划中包含的数据。
(1)头信息主要是针对一张发票的通用信息,用于描述发票基本属性和汇总发票信息,主要包括发票类型,供应商,供应商地点,核算体系,组织ID,发票金额,币别,汇率,摘要,支付方式,付款组等一系列信息。
(2)行信息主要用于分析一张发票所包含的多条业务记录,是对头信息中的汇总发票信息的细分,主要包括每条业务记录的金额,会计科目,摘要和辅助核算信息。其中辅助核算信息是根据各公司需要设置的如部门,项目等信息结构。
(3)付款计划主要用于对一张发票进行付款安排,它是汇总头信息以付款条件的不同进行的进一步细分。主要包括支付日期,支付金额,支付方式,收方类型,以及收款方账户信息。
网上报销系统对Oracle ERP系统提出的数据内容进行分析后进行前端抓取并提供给Oracle ERP系统。Oracle ERP系统需要的数据在网上报销系统的抓取过程中可以分为静态数据和动态数据,其中静态数据可以直接定义,动态数据则由网上报销的前端环节提供。这样,我们实现了接口边界和接口数据两系统的一致性。
3.3 接口实现
在确定了接口边界和接口数据后,剩下的问题即要解决接口过程的实现。接口的实现过程主要包括四个阶段的数据处理,网上报销系统中的数据导出前处理,数据在网上报销系统和Oracle ERP系统间的传递,Oracle ERP系统中的校验和实际导入处理和Oracle ERP系统和网上报销系统数据回传和再处理。
(1) 网上报销系统中的数据导出前处理。为了最大限度保证接口传递数据的准确性,我们有必要对传递前的数据进行加工过滤以保证用于接口传递的数据具有较高的准确性。此时存在的数据失真来源于网上报销系统前端数据所收到各种不确定因素的干扰。数据导出前处理主要包括对数据质量的校验,对数据有用性的判断。数据质量的校验主要通过网上报销系统中内置的校验规则进行自动校验,这些校验规则一部分来自于网上报销系统中自定义的校验,一部分来自于Oracle ERP系统。这样可以保证我们传递到Oracle ERP系统中的数据是准确的。数据有用性判断是对于网上报销系统中抓取的数据判断是否需要导入Oracle ERP系统,对于不需要导入Oracle ERP系统的数据在进入接口过程前进行分离,从而保证导入Oracle ERP系统的数据是有用的。
(2)数据在网上报销系统和Oracle ERP系统间的传递。网上报销系统向Oracle ERP系统传递数据可以通过临时表进行中转的方式进行传递。由于从网上报销系统中传出的数据并还需要Oracle ERP系统的再次校验后才可以进入,所以,我们不能直接将数据从网上报销系统中导入到Oracle ERP系统。为了解决此问题,可以在两系统间设立临时表,将其作为中转用的数据池,网上报销系统中的数据导出后存放在数据池中,Oracle ERP系统从数据池中抓取数据后进行下一步的校验处理。
(3)Oracle ERP系统中的校验和实际导入处理。Oracle ERP系统中通过开发请求来进行从数据池中的数据抓取。执行请求后,Oracle ERP系统读取数据池中的数据进行校验。Oracle ERP系统自身有一套完善的校验机制,为了防止外部进入数据破坏其系统内部的自身逻辑,它制定了一系列的校验规则进行校验,执行请求后,能够通过校验的数据可以进入系统并成为系统认可的真实数据。
(4)Oracle ERP系统和网上报销系统数据回传和再处理。对于没有通过校验的数据Oracle ERP系统反馈校验出错原因,并在数据池中标识出错数据。网上报销系统执行反馈查询动作后从数据池中读取表识的出错数据,业务人员对出错数据再次处理后再进入接口循环。
这样系统间通过接口实现了数据传递和反馈修正的全过程。
4、实现接口的其他辅助条件
网上报销和Oracle ERP系统接口的过程在上述的数据传递过程基础上,需要辅以相应的程序开发和硬件辅助方可最终完成。在网上报销系统和Oracle ERP系统均已成型的条件下,程序的开发需要以外挂模块和请求的模式实现。开发主要涉及网上报销系统前端数据的抓取和数据的预处理过程以及数据向临时表的导出抓取过程。Oracle ERP系统的请求开发主要包括从临时表的数据获取和校验过程,以及失败数据向临时表的标记过程。
根据系统的数据量判断硬件条件的需求,在数据量较小的情况下可将临时表直接搭载在Oracle ERP系统的服务器上,这是因为临时表搭载在Oracle ERP的数据库上并利用Oracle ERP系统的服务器具有更高的稳定性。在数据量较大的情况下,Oracle ERP系统的服务器如用做数据的接口处理,会影响系统的稳定性,在这种情况下建议单独增加一台服务器作为接口服务器。
5、本方案接口的实现和应用
本方案实施运行后三个月进入稳定运行状态。日均导入单据800条,差错率逐步下降,已达到可接受范围。出错原因在于实施初期,开发的校验程序不完善,并且在前端的数据抓取过程中存在四舍五入等问题造成的误差。上线运行过程中对发现的问题及时处理改善后系统差错有明显下降。
5.1 接口开发环境
所在公司从引入ERP开始到现在的ERP系统的全面应用已有近三年的历史,而网上报销系统从思路到实现也经过了多年的时间,应该说在ERP实施前已经有了网上报销的应用,而网上报销系统和账务系统的对接也经过了多次的尝试。从金碟到ERP,从接口表,到接口工具,到后台数据库的直接读写。系统接口的开发环境也在不断的变化。
安财网上报销系统通过多年的开发和完善,形成了一套完善的体系。整个系统的设计基于工作流设计流程,成功的解决了包括业务会签和项目会签的复杂的审批流程的实现。并实现了对权限的多方位管理。系统在设计上采用了B/S的架构模式,将更多的功能实现通过服务器完成,从而减少了客户端出现故障的可能性,也增强了系统跨地域工作的能力。
基于这些设计环境的考虑,系统的接口开发着重关注了接口过程的安全性,以及接口数据的一致性,完整性以及可靠性。在安全性上,系统接口的设计应该完全在封闭过程中实现,任何的非系统内人工干预均可能带来安全隐患。而数据的一致完整和可靠性正是依靠我们对上文设计模型在现有环境基础上的实现来保障的。
5.2 接口开发关键技术
在系统开发接口过程中,关键技术的应用发挥了主要的作用。系统接口开发的关键技术主要包括EXCEL的数据读取技术,Oracle ERP系统提供的核心API编程接口,以及基于该接口的数据读写技术,数据回传技术。
EXCEL的数据可以分解为程序代码,新版本的EXCEL更可以直接将表格输出为XML的数据格式。因此,EXCEL的数据读取即时从分解的代码中获取已有的数据。
6、结束语
本文通过对Oracle ERP系统和网上报销系统接口的方法和过程的阐述,解决了网上报销系统和Oracle ERP系统间数据传递的关键问题,并提供了一种可扩展的接口模式。提高了网上报销系统和Oracle ERP系统的使用效率。通过实际运行证明,该模式稳定有效的提高企业财务工作效率。

胡万军(因为平时工作比较忙,所以建议大家先发帖,然后把地址用短消息的方式发给我)
http://www.erp100.com
Module: Oracle ERP
QQ:27675401(加我的朋友,请主动出示在erp100的博客站点地址)
MSN:huwanjun@baidu.com(加我的朋友,请主动出示在erp100的博客站点地址)
email:huwanjun@baidu.com
personal home:http://zonghengsihai.erp100.com