随着SAP R/3(system application and products in data processing这款主流的ERP企业管理软件平台)成为国内越来越多大企业ERP应用的首选,很多企业都面临着同样一个问题,即如何让新的ERP平台和一些老的,或是新增加的子系统/子平台默契配合。在保证既有功能的前提下,提高系统和系统间信息传递的效率。从而保证和提高企业的生产竞争力。在这样的背景之下,ERP系统接口的应用、开发、甚至规范,会起到积极的作用。好的接口会使得系统之间能真正做到“无缝”连接,有效的整合各系统间的数据,以达到资源共享和协同工作的目的。本文的目的在于通过对SAP接口技术的介绍和实例的验证,普及和推广以规范这一接口技术为核心的一体化信息集成架构。
RFC(Remote Function Call,远程功能调用)是SAP系统和其他(SAP或非SAP)系统问的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议。其他更高级的SAP接口和通信技术,如后续的BAPI和ALE等都是基于RFC实现的。简单地说,RFC过程就是系统调用当前系统外的程序模块,从而实现某个功能,而且调用系统和被调用系统中,至少有一个必须是SAP ABAP系统。这种远程功能调用,也可在同一系统内部进行(如本地SAP系统内的远程调用):但通常情况下,调用程序和被调用程序处于不同系统。SAP系统RFC应用的原理很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。根据通信方向和通信类型,共有3种RFC通信:
ALE是Application Link and Enabling的缩写,是SAP专门为SAP与SAP之间所设计的整合中间件。IDocs是中介文本(Intermediate DOCument)的缩写,是SAP提供的系统整合专用的数据/消息格式,可用于EDI、ALE或导出导入(XML,ASCII)文件等。当然也可ALE在SAP 3.0版本开始就作为SAP整个应用体系的一部分,为分布式数据交换提供了可靠安全的通讯机制。ALE的设计,原本作为两个SAP流程之间的一种消息传递服务(Messaging Service),使SAP与SAP的业务流程之间企业数据能够有效的交换.为两个独立的SAP之问提供了的系统整合服务。不过,随着应用的发展,ALE/IDocs接口机制也已成为与其它非SAP系统的标准的整合方式。ALE的设计结构可以分为3层,即应用层、数据/消息分配层和通讯层。通讯层是SAP整合机制的基础,它利用远程功能呼叫RFC(Remote Function Call)凋用SAP系统的功能模块。
ALE的机制代替了原来的SAP所提供的批数据通讯BDC(Batch Data Communication)方式。顾名思义,BDC为系统之间提供了简单的数据批处理服务,还不能作为一种中间件技术,它没有提供系统之间进行无缝整合所要求的纠错功能、系统管理和其它安全措施。总的说来,应用SAP的ALE机制进行SAP与SAP或非SAP系统整合有以下几个好处:ALE技术不受SAP版本升级的影响,它提供了版本向后兼容性。ALE定义于SAP应用层,与SAP的逻辑层相对独立,整个ALE中间件独立于发送和接收系统。ALE消息设计逻辑保证消息的“一次且只有一次”的消息传递。ALE采用“存储.发送”技术确保消息即使系统发生故障或接收方没有准备接收时,也可以达到目的地。这样就保证接收方不至于收到重复消息。ALE也提供了IDocs管理功能。主要有文本缩减、文本版本控制以及文本数据过滤。3种控制机制使得SAP开发人员可以根据实际需要,对IDocs文本在运行中进行动态处理。ALE提供了系统管理功能,允许对ALE系统进行启动/复位/恢复等系统操作,为开发人员提供了进一步的管理控制。IDoc几乎可以传带任何SAP应用的数据,是。种“外围”定义格式,与SAP的应用数据定义不直接相关。IDocs已经广泛应用于早期的SAP.EDI的数据交换,因而它的设计有点类似于EDI的标准,即EDIFACT标准。IDocs是以字符基础的,因而是可读的。它有3种纪录类型,即: