前言
SAP BW(Business information Warehouse,BW)业务信息仓库是SAP公司推出的数据仓库产品,是实施企业商务智能系统的重要组成部分,也是商务智能前端展现的数据基础。由于BW能够和SAP的相关解决方案,如SAP ERP(Enterprise Resources Planning,ERP)系统、SAP CRM(Customer Relationship Management,CRM)系统等,进行天然无缝的数据集成,同时也能很好地集成其他应用系统,因此越来越多的企业选择实施和应用BW,以构建企业的数据仓库解决方案。
在BW数据仓库中,BW本身提供了标准的“最佳业务实践”,也就是通常所说的业务目录(Business Content,BCT)。在标准的业务目录中,SAP提供了除用户名以外的几乎涵盖所有与业务流程相关的数据仓库对象,其中包括数据源、信息包、转换、数据传输进程、数据存储对象DSO、信息块、多信息提供者、信息集、查询、权限对象、甚至是角色,因此,大大降低了构建和运行数据仓库的企业总体拥有成本。但是,由于标准的业务目录不能满足用户所有的需求,因此在项目实施过程中必须基于BW标准功能进行增强和开发,以满足用户独特的需求。
由于BW系统本身是基于SAP ABAP应用服务器和SAP JAVA应用服务器进行设计和开发的,因此,项目中大部分的增强或个性化开发都需要使用SAP ABAP(Advanced Business Application Programming,ABAP)语言。但是,在项目的实施和后续维护过程中,很多顾问或BW的从业者已经在个人脑海中建立起了固定的、对于BW涉及的ABAP语言程序的喜好,而对自己不熟悉的内容会说“这个需求BW系统满足不了”。这种喜好是因为这些人没有从BW的实施过程中获得足够多的ABAP语言知识,因此,作者建议所有的BW顾问或从业者都能参与SAP标准的ABAP培训课程,以获得日常工作所需的所有ABAP语言知识,因为具有丰富经验的BW顾问能够从大量的系统BADI对象增强接口和User Exit用户出口中对特定用户的特定需求进行完美的实施(而不是通过大量的其他工作,甚至是系统外的工具来实现既定的目标),从而大大减少项目的工作量、降低实施难度,以完美地满足用户需求,这在项目实施中尤为重要。
本书的目的就是尽量将BW系统中的功能增强点列示出来,并且说明这些接口的应用场景、数据接口规格、具体使用方法及案例,使本书的读者在阅读完本书之后能够对后续的BW相关工作有所帮助,也为BW顾问的项目实施提供一份技术参考。
本书结构和通常实施BW数据仓库的过程是紧密相关的,也和BW数据仓库的数据流流向紧密相关,也就是从数据抽取、数据转换、数据加载、数据管理、数据展现等环节逐一展开进行讲解。
第1章主要讲解计算机技术的发展、数据处理的历史过程和数据仓库的由来。
第2章主要对SAP公司以及SAP公司的相关产品进行简要介绍,同时,重点对BW相关的基本概念做详细介绍,如商务智能、数据仓库、星形模型、特性、关键指标、数据提供者、信息块和数据存储对象(DSO)等。
第3章在对SAP ABAP语言和SAP增强的概念进行简要介绍的同时,还对BW系统的增强以及在BW系统中使用ABAP语言的注意事项和性能提升建议进行了描述。
第4章主要讲解在ERP源系统中设置和增强数据源的各种方法。
第5章主要讲解在BW数据仓库中数据上载过程的各种增强,包括信息包的增强、转换的增强、数据传输进程的增强等。为了覆盖之前的版本,作者在最后也对BW 3.x的相关增强进行了说明。
第6章主要讲解数据仓库管理中的对象,包括对信息块的访问,以及在虚拟信息块和虚拟关键指标等数据管理过程中的增强。
第7章主要讲解BW数据展现过程中的增强。
第8章主要讲解使用BW-BPS和BW-IP进行企业全面预算管理过程中会涉及的ABAP例程增强的开发。
第9章主要讲解BW系统建成上线后,在后期维护过程中通常会使用的一些ABAP应用场景,包括处理链的调度和监控,以及数据的管理。
第10章主要将与BW数据仓库系统相关的、重要的BADI、UserExit、函数、程序、程序类以及相关重要的表格等进行了罗列,这也是作者多年实施BW数据仓库的经验总结。
最后,附录列举了本书中涉及的相关技术术语的对照查询索引。
本书的ABAP语言逻辑和示例都是基于BW 7.01进行设计和说明的,但是这些增强点和实施方法同样适用于BW 3.x以及当前的最新版本BW 7.4,只是部分代码段需要做一些调整。
为了使本书简单易懂,本书的相关代码段都尽量不使用面向对象语言ABAP OO的方式进行描述,因为根据作者的经验,很多顾问或用户对ABAP OO的知识了解甚少,同时也因为在BW中,使用ABAP OO的优点不是特别明显,所以作者更倾向于使用功能模块,也就是Function Module的方式进行代码的编写。当然,这对于那些已经熟悉掌握了ABAP OO程序编写方式的人来说,看懂本书和按照本书举例的代码去实施项目同样不是一件太难的事情。但是,在本书的第8章中,由于BW-IP预算和计划中ABAP OO新技术所带来的冲击,不可避免地涉及了一些ABAP OO的代码,所以相关代码也为初学者做了一步一步地详细讲解。正是因为最近几年ABAP OO技术的突飞猛进,所以作者建议所有的SAP从业者都应该掌握或至少了解ABAP OO技术。
目前,商务智能和数据仓库都还在不断地飞速发展中,新的概念和理念在不断地涌现,作者希望通过本书,能够给从业者一些建议和指引。限于作者的水平,书中难免存在疏漏,甚至是错误,欢迎广大读者批评指正。作者私人邮箱为aihuaxie939@163.com,有任何意见或建议请通过邮件的方式联系作者。
编者