SAP数据接口技术类型有不少,一般有RFC,ALE/IDoc,RFC/BAPI,PI,FTP等。下面简单的介绍几种:
1、RFC 方式:Java 程序直接通过RFC 访问SAP 的对象(或称函数功能)SAP 提供了BAPI(Business Application Programming Interface),BAPI 是SAP 系统对外提供的一系列接口,主要是使第三方程序通过这些接口来使用SAP,从而方便客户定制某些程序.VB,Java,C,C++等都可以通过BAPI 来访问SAP。BAPI 是通过R/3 系统上的RFC(Remote function call)功能来实现的。因为BAPI 的强大功能作为基础,SAP 就完全可以选择Java 在CRM 上加强各种功能,比如可以用Java 快速开发一个实现特定功能的客户端。针对Java,SAP 也提供了一个API叫Java Connector(JCo),可以使用它方便的调用BAPI 提供的接口。举例说明 :在某一个项目中,需要每个月从R3 取出供应商的寄售和非寄售汇总结算数据和明细数据,展现在供应商信息平台上,供供应商开发票和财务部付款进行结算,那么可以做一个定时器,通过RFC 在每个月的一号0 点将结算数据取出。
2、IDOC 方式:IDoc(Intermediate Document),顾名思义,就是用作中间媒介的一种文件。是一种通用的标准格式,这样可以方便第三方软件对IDoc 进行处理。IDOC 是SAP 系统之间或SAP 系统与外部系统之间电子数据交换的标准数据格式。在事务处理过程中,随时会产生IDOC,例如,在SAP 系统中,用户执行了一个运货交易后,可能会产生打印货运清单所需数据的主IDOC,并经过通信层进行数据传送,从主IDOC 中会生成一个或多个通信IDOC。通信层执行远程功能调用,通过端口和伙伴参数(RFC 链接)设定,与对方通信进行链接。IDOC 的接收者可能为ECC、R/3、R/2 或者一些外部系统。主要用于同一个企业不同SAP 系统之间的数据交换。一个企业比较大的话,会设有多个SAP 系统,光R/3 可能就要好几台服务器,再加上BW,XI,EP,多的去了,这个就是ALE 的用武之地。国外这样的情况很多,你可以上上国外的一些SAP 论坛,ALE/IDoc 的问题天天有人问。
3、EDI(Electronic Data Interchange),名字上来看就是电子数据交换,用于不同企业间的电子数据的交换。比如,你要用DHL 进行发货,那么就可以直接通过EDI 来通知DHL,并且进行反馈。这里的IDoc 是符合EDI 标准的,需要用EDI子系统进行转换。这里说一下分布式,听起来很玄乎的一个词。简单点来说就是,由于服务器性能和地域的限制,一个公司不可能把所有的业务都在一台机器上做,那么就要分开来。分开来之后,就有了几台,几十台,甚至几百台的服务器中。不同机器存储着相关的主数据,也就是说牵一发,而动全身,改动一台中的数据,就要使其他服务器上的数据也要做相应改动。如果人工来干这件事情的话,可想而知这个工作量和风险了,这时就引入了ALE/IDoc。有了这个技术,可以做到分布式主数据自动修改,只要有一台机器改动了,就会自动向其他相关服务器发出消息,说:“你好, 让我们一起更新吧!”。结合SAP 的Job 技术,所有的一切都是自动的。这个对于跨区域的大型公司来说是很有用的!ALE/IDoc 是实践性很强的技术,也就是说你做得越多,碰到的问题越多,提高也就越多,光是理论是没什么用得。所以请读者一定要多多实践操作,才能有更深的体会,和提高。
4、XI 方式:XI 的集成又可以分为两个层次,第一个层次称为IntegrationBroker,以消息的方式进行的数据的交换;另外一个层次是 BPM,即业务流程管理。在 XI 中,数据(可以使一条记录,比如单个的物料主数据;也可以是多条记录,比如含主单明细的供应商主数据)从某一个业务系统通过 XI 发送到另外一个业务系统,站在业务系统的角度,前者称为 Sender,后者称为 Receiver 。适配器(Adapter)进行 XI-XML 格式与业务系统的特定类型的数据格式之间的转换。依据业务系统的数据格式的不同,适配器可以分为多种类型,比如 SOAPAdapter, JDBC Adapter, File Adapter, RFC Adapter 和 IDoc Adapter 等。通常说的实现方式,譬如 SOAP+RFC,是指Sender 与 XI 之间使用 SOAPAdapter,XI 与 Receiver 之间使用 RFC Adapter。