从2006年底开始接触SAP集成技术,到现在已经是两年多的时间了。在这期间,一直在产品部做SAP集成方案的研究,但由于公司在这一块的技术刚刚起步,项目中没有人会这些技术,所以起初的项目,基本上都少不了我的参与。期间做过五六个项目,由于各个项目的需求不一致,最终采用的技术方案会有很大的差别。下面将从技术层面总结SAP ERP集成的经验。
首先,所谓的SAP集成技术,就是外部系统访问SAP ERP系统所采用的技术。由于工作范围的限制,本文章所涉及的外部系统主要是Domino和JAVA平台的。
1 技术方案
目前所接触的技术方案主要有以下6种:
l Lotus Connector LotusScript eXtension
l Lotus Enterprise Integrator(LEI)
l LotusScript调用SAP DLL
l SAP Exchange Infrastructure(SAP XI)
l SAP Java Connector(JCo)
l Workplace Dashboard Framework(WDF)
其中前5种技术方案都可以在Lotus Domino上面使用,但是SAP Java Connector(JCo)目前还没在Lotus Domino上面测试过。而Workplace Dashboard Framework(WDF)则是用来快速开发面向WebSphere Portal、基于面向服务架构(SOA)的portlet应用程序,可以用于实现Portal与SAP的集成。下面具体介绍这几种技术方案,以及它们的使用环境、优缺点等。
1.1 Lotus Connector LotusScript eXtension
Lotus Connector LotusScript eXtension(LCLSX)是一种传统的LotusScript的扩展,专门为企业系统设计的。它建立在Lotus Connectors的基础上,后者提供了不同企业系统的访问。这包括SAP的连接程序,即:Lotus Connector for SAP。
LCLSX 有两种强大的功能是其他LSX没有的:
连接池。可以缓冲和重用非常耗时的连接,从而提高性能,减少新建连接时要执行的活动(如安全登录到企业系统)。这些连接不局限于LotusScript的作用域,实际上在进程级别上维护。只要Domino服务器进程或者Notes客户机进程在运行,连接池就存在。
数组读/数组写。LotusScript是一种解释语言,就是说运行起来要比编译程序慢。假设要读取包含100,000个记录的DB2 表,并把每个记录中的数据写入一个新的Notes文档。在LCLSX之前,需要在LotusScript中使用执行100,000 次的循环来完成。LCLSX 从DB2表中读入第1到第1000个记录(单个 LotusScript步骤),并同时将这些记录插入Domino数据库。我们读取一个记录数组,然后写入该数组。LotusScript 循环执行100次而不是100,000 次。在底层使用编译程序执行这类重复性的工作可以极大地改善性能,特别是在读取SAP ERP系统中大数据量的报表时是非常见效的。
因为LCLSX建立在Lotus Connectors的基础上,所以它的使用环境主要受Lotus Connector的限制。下面列出了Lotus Connector for SAP的各个版本的使用环境。
1.1.2 .1 Version 1.7
l OS:Windows NT 4.0 with SP 6a ;Windows 2000;Windows XP;Windows 98;AIX 4.3.3 a nd 5.1;Solaris Sparc 2.8;OS/400 V5R 1M 0 for iSeries
l SAP:SAP R/3 3.1I and greater
l Lotus:Notes R5 client with Domino R5 server Or Notes R6 client with Domino R6 server
1.1.2 .2 Version 1.7.1 Fix Pack
l OS:W32, AIX, Solaris and Linux
l SAP:SAP 4.0 and later, including SAP 4.7 Enterprise
l Lotus:Notes 6.0 or greater client with Domino 6.0 or greater server
1.1.2 .3 Version 1.7.2
l OS:W32, AIX, Solaris and Linux
l SAP:supports SAP 4.6 and all later releases
l Lotus:Notes 6 client or greater with Domino 6 server or greater OR Notes 7 client or greater with Domino 7 server or greater.