《SAP ABAP面向对象程序设计:原则、模式及实践》

您所在的位置:网站首页 abap语言入门读什么书 《SAP ABAP面向对象程序设计:原则、模式及实践》

《SAP ABAP面向对象程序设计:原则、模式及实践》

2024-07-15 06:48:53| 来源: 网络整理| 查看: 265

《SAP ABAP面向对象程序设计:原则、模式及实践》

 

https://book.douban.com/subject/30317853/ http://www.duokan.com/shop/tbt/book/179473 https://item.jd.com/12423999.html https://e.jd.com/30429611.html

 

目录

《SAP ABAP面向对象程序设计 – 原则.模式.实践》SAP ABAP Object Oriented Programming – Principles,Patterns and Practices. 1

内容简介... 8

前言... 8

本书内容结构... 8

读者对象与声明... 8

联系作者... 8

致谢... 8

作者简介... 8

绪论  为什么要学习面向对象的ABAP OOP.. 8

第一篇 ABAP语言程序设计基础... 17

第一章 ABAP语言概述... 17

1.1          ABAP的特点... 17

1.2          ABAP 开发基础... 20

1.2.1 ABAP SAP GUI开发环境... 21

1.2.2 ABAP 开发环境的设置... 21

1.2.3 ABAP的语法结构... 25

1.2.4 ABAP的语法帮助... 27

1.3          ABAP的数据类型... 28

1.3.1 ABAP预定义数据类型(Predefined ABAP types)... 28

1.3.2 全局数据类型(数据字典类型)ABAP Data Dictionary Type. 31

1.3.3 局部类型(用户定义类型)ABAP local data types. 33

1.3.4 按结构区分的数据类型... 34

1.4 ABAP 变量命名规则(Naming Convention)... 35

1.4.1全局变量的命名规则... 37

1.4.2局部变量的命名规则... 39

1.4.3面向对象变量的命名规则... 40

第二章 ABAP语言关键知识点... 45

2.1          ABAP的变量... 45

2.1.1 变量的分类... 45

2.1.2 采用LIKE 定义变量... 53

2.1.3 采用REF TO 定义变量... 54

2.1.4 变量的赋值... 59

2.1.5 变量的动态传入... 59

2.2 內表(Internal Table)... 61

2.2.1 内表的定义和分类... 61

2.2.2 内表的操作... 64

2.3          ABAP的SQL语句... 84

2.3.1 OPEN SQL简介... 85

2.3.3查询数据... 86

2.3.4插入数据... 91

2.3.5更新数据... 92

2.3.6删除数据... 93

2.3.7 MODIFY 数据... 94

2.3.8 NATIVE SQL简介... 95

2.3.9 HANA SQL Script简介... 99

第二篇 面向对象ABAP语言程序设计基础... 103

第三章 面向对象程序设计基础... 103

3.1面向对象语言发展史... 103

3.2 面向对象的理论基础... 117

3.3 面向对象的概念 - 对象(Object)... 119

3.4 面向对象的概念 - 类(Class)... 120

3.5 类之间的关系... 121

第四章 ABAP 面向对象程序设计基础... 126

4.1 创建局部类... 126

4.2 创建全局类... 129

4.3 类的属性(Attributes)... 133

4.4 类的方法(Methods)... 144

4.5 类的事件(Event)... 157

4.6 类的构造方法(Constructor)... 162

4.7 类方法的异常(Exception)... 168

4.8 类的友元(Friends)... 176

4.9 ABAP调用类对象... 183

4.10 类对象的内存释放... 190

第三篇 面向对象程序设计概念与思想... 193

第五章 面向对象程序设计重要概念... 193

5.1 面向对象设计的基本概念... 194

5.2 封装... 194

5.2.1封装的概述... 195

5.2.2封装的实现... 198

5.3 继承... 211

5.3.1 继承的概述... 211

5.3.2 继承的实现... 214

5.4 多态... 231

5.4.1 多态的概述... 231

5.4.2 多态的实现(基于非抽象类)... 240

5.4.3 多态的实现(基于抽象类)... 255

5.4.3 多态的小结... 274

5.5 接口... 275

5.5.1 接口的概述... 275

5.5.2 接口的实现... 278

第六章 面向对象程序设计基本原则... 290

6.1 面向对象设计基本原则概述... 290

6.2 单一责任原则(SRP)... 292

6.3 开放封闭原则(OCP)... 294

6.4 里氏替换原则(LSP)... 316

6.5 接口分离原则(ISP)... 323

6.6 依赖倒置原则(DIP)... 324

6.7 合成复用原则(CRP)... 334

6.8 迪米特(得墨忒耳)法则(LoD)... 336

6.9 面向对象设计基本原则总结... 338

第七章 面向对象设计常用的设计模式... 340

7.1 设计模式概述... 340

7.2 单例模式 Singleton Pattern.. 345

7.3 简单工厂模式 Simple Factory Pattern.. 353

7.4 适配器模式 Adapter Pattern.. 355

7.5 桥接模式 Bridge Pattern.. 364

7.6 外观模式 Facade Pattern.. 377

7.7 观察者模式 Observer Pattern.. 386

7.8 策略模式 Strategy Pattern.. 408

7.9 设计模式总结... 422

第四篇 面向对象程序设计实例... 424

第八章 ABAP OOP 开发实例... 424

8.1 ABAP中数据和对象的动态创建和调用... 424

8.2 字段符号在ABAP OOP中的应用... 428

8.3 ABAP中的泛型... 434

8.4 ABAP日志类的使用... 445

8.5 调试(Debug)的使用... 456

8.6 OO ALV的应用... 471

8.7 ABAP OOP实现网店购物车... 485

8.8 持久类和对象的持久化的应用... 492

8.9 基于面向对象的BAdI的使用... 508

8.9.1 旧BAdI(Classic BAdI)... 511

8.9.2 新BAdI(Kernel BAdI)... 521

8.10 ABAP代码的重构(Refactoring)... 532

第九章 面向对象分析设计过程... 541

9.1 面向对象分析设计的基本过程... 541

9.2 Design Thinking在SAP程序设计中的应用... 547

9.3 Agile Scrum在SAP开发中的应用... 563

9.4 基于面向对象的单元测试(Unit Test)... 573

9.5 分析实例 - IoT物联网应用设计与开发... 582

参考书籍... 611

 

前言  SAP与SAP ABAP简介

德国SAP公司成立于1972年,总部位于德国沃尔多夫,是全球领先的企业管理软件解决方案提供商。

SAP的业务覆盖制造,物流,消费,服务,金融服务和公共服务等行业,根据福布斯的排名,截至2016年,SAP是世界第三大软件公司。

经过历年发展,SAP在2005年推出了SAP ERP 6.0,其中的核心产品是SAP ECC 6.0 (ERP Central Component)即企业资源计划(Enterprise Resource Planning)ERP核心组件,提供了生产资源计划,制造管理,财务管理,销售管理,采购管理,质量管理,存货管理,分销与运输管理,人力资源管理等企业集成管理功能。

2010年SAP推出SAP HANA平台,提供了一个软硬件结合的解决方案,提供高性能的数据处理平台。

2011年开始,SAP陆续推出了ECC的更新版本SAP ECC 605。2012年推出了SAP ECC 606,2013年推出了SAP ECC 607。

2014年SAP推出了SAP HANA云平台, 2015年推出了最新的ERP产品SAP S/4 HANA。

 

ABAP (Advanced Business Application Programming,即高级业务应用编程语言)是由SAP公司开发的一种高级程序语言,用于SAP软件系统(如SAP ECC系统, SAP S/4 HANA等)的商务应用开发。在SAP系统的企业级应用与开发中有着广泛和重要的应用。

SAP公司在1983年推出面向过程的ABAP,1999年发布了面向对象的ABAP,2003年发布了用于Web UI开发的Web Dynpro for ABAP, 2015年推出了支持S/4 HANA内存计算新特性的ABAP for HANA。目前,SAP的云平台SAP Cloud Platform也全面支持ABAP语言。

 

随着SAP平台的升级,面向对象的内容也越来越多的出现在SAP ABAP的架构之内,尤其是S/4 HANA和 Fiori的推出,ABAP开发方式也随之更新,许多基础的服务如AMDP,BOPF, ADBC, SAP Gateway等都是基于面向对象的ABAP的,掌握一定的面向对象的ABAP的特性和设计原则与方法,是ABAP技术顾问技术升级的必要选择。

 

为什么要学习面向对象的ABAP

如果在软件论坛上提一个问题 - 世界上最好的编程语言是什么?一定会引发一场持久的争论,虽然目前趋于一致的回答是“世界上最好的编程语言是PHP”。但第二好的编程语言之争依然没有结论。

但无论如何争论,基于封闭系统的ABAP语言(Advanced Business Application Programming)都不会出现在争论中,我们ABAP语言的开发者(ABAPer)们也似乎从来没有这样一争的念想。这样一来倒是显得ABAP语言和我们ABAPer很是高冷 –– “我和谁都不争,和谁争我都不屑。(I strove with none, for none was worth my strife”- Walter Savage Landor 作,杨绛先生译)。

作为ABAP语言的进一步发展的成果,Object-Oriented ABAP(面向对象的ABAP程序)在高冷中尤其显得超凡脱俗,冰清玉洁。

 

面向对象的ABAP虽然脱俗,但很是有点曲高和寡,给人的感觉是应用寥寥,如果读者不确定是否需要深入看这本书,可以先看以下几个问题,看看是否有必要浏览本书。

 

一.SAP已经向HANA和云平台(SaaS平台S/4 HANA Cloud)转移了,ABAP还需要学么?恩,如果你能看到这本书被出版了,就证明还有学习的必要。主要原因是:

作为SAP ECC等SAP核心系统的编程语言(也就是说SAP ECC是用ABAP开发出来的),ABAP有深厚的历史背景,其开发成本之大也是不可考量。无论基于技术原因,还是基于商业战略,SAP都不可能放弃ABAP语言而转用更通用的语言作为核心系统的语言。 ABAP在后台业务和商业逻辑开发是重点,即便数据库平台升级为HANA,还有应用平台移到云端,或者前端开始部分使用更为轻量的SAP Fiori,但无论在SAP ECC或者S/4 HANA平台上,ABAP依然是应用平台核心开发语言。 除了SAP自己发布的系统是基于ABAP代码,现实中还有大量的客户的定制化开发,数量众多的客户的核心业务逻辑还需要大量的ABAP程序的支撑和维护,尤其在SAP的大型企业用户中,SAP的应用实施大多已经完成,而深入业务开发的ABAP的二次开发却数量巨大,并且难度越发艰深,基于SAP平台的ABAP语言在后台逻辑的定制开发还是无法替代的。

 

综上所述,ABAP不仅要继续学习,而且不光技术顾问要深入学习ABAP,为了适应企业的深入业务开发,业务顾问也要学习一定的ABAP知识。

 

二.既然还是有继续学习SAP ABAP的必要,但针对目前大多时候的普通需求,一般的ABAP开发从效率和效果上都有很好的表现,那我们为什么要学习面向对象的ABAP语言呢?

第一大原因就是SAP HANA和Fiori的推出。

SAP HANA(High-Performance Analytic Appliance)是SAP提供的软硬件结合的计算平台,HANA基于内存数据库技术,可以提供高性能的数据分析与处理的解决方案。

SAP所推出的最新版本的ERP产品S/4 HANA就是以HANA作为平台的。

SAP Fiori是一套新的用户界面交互系统标准,提供简洁化,平面化,用户可定制的个性化的终端。SAP新发布的SAP第四代ERP产品SAP S/4 HANA的推荐的前端用户交互系统就是SAP Fiori Apps。

SAP Fiori 是新一代SAP ERP系统在PC机,平板电脑,智能手机和设备上的推荐的客户端。

而传统的SAP GUI的人机交互界面客户端,则将仅能运行在PC机上(SAP GUI客户端还是会长期的存在,但更多是作为SAP实施工作的配置界面;和作为SAP专职工作人员的日常工作界面;而企业中很多的SAP用户更需要的是PC机上更简洁的,仅和自己业务相关的定制化的Fiori界面,或者需要的是移动办公的相关设备上的Fiori界面界面)。

针对SAP HANA和Fiori,SAP ABAP也有相当多的改变:

1. 如最新版本的ABAP for HANA version 7.40/7.50,为充分运用HANA的数据处理与运算能力,ABAP引入了AMDP:

AMDP (ABAP-Managed Database Procedures),是一组预定义的ABAP的类,用户可以通过这些类方法,调用HANA SQL Script或Native SQL, SQL Script是SAP HANA 内置的SQL扩展语言,用来实现快速内存计算。

2. 为实现ABAP的快速开发,ABAP采用了SAP ABAP BOPF框架:

BOPF(Business Object Processing Framework, t-code BOPF_EWB)是SAP业务对象处理框架,是一个基于面向对象ABAP的开发框架,提供了一组通用的服务和功能,加快标准化,模块化的开发。

 3. 为实现Fiori 应用,前端采用了UI5(HTML5)技术,而后端系统依然是SAP ABAP,采用了SAP 网关平台(SAP Gateway,t-code SEGW)。

SAP Gateway是一个技术平台,提供了一个SAP系统和外部移动设备和系统(如浏览器)的连接平台,SAP Gateway与ABAP采用了BOPF的集成方式,SAP Gateway与Fiori则采用了REST和OData协议进行集成。

 

以上提到的这些技术,都是基于面向对象ABAP的,如果要深入学习ABAP for HANA和Fiori,则目前ECC平台上存在的ABAP OOP就是重要的基础知识。

 

三.虽然平台的更新需要大家开始使用面向对象的设计,如果我们的企业一直不更新SAP平台到HANA,我们一直用传统的ABAP不也可以吗?

 

先不讨论HANA的优越性和升级的必然性,也不仅从技术的角度来分析,我们换一个新的角度来看:虽然面向对象的ABAP在很多情况下不是目前ECC系统上必须的开发方案,但从ABAP开发者的认知和竞争发展的角度来说,学习ABAP OOP却是很必要的,原因如下:

1. 技术壁垒:当你的美国或印度开发团队纷纷开始ABAP面向对象程序设计(现实中我所做的项目就是如此),而中国的开发团队连看也看不大懂,或者只了解些概念和皮毛,合作起来完全没有形成对等合作的关系,这并不很高的技术壁垒会显得我们见识不高,也很可能会让我们丧商业失机会和信任。

 2. SAP运维和实施的必然方向:随着国内外企业的SAP ERP产品实施越来越普遍,企业会逐渐深挖和定制化已经实施的SAP系统,那么必然采用的就是ABAP开发和接口开发,除了一些简单的报表不用深挖和重构,深入业务开发的ABAP的代码会随着业务的改动越来越复杂和冗长,开发和维护难度越发艰难。而良好设计的面向对象的ABAP在作者做过的项目中已经发挥出了优秀的功效。代码的可维护性,可扩展性都比过程化ABAP优秀很多。面向对象也是ABAP开发的必然趋势。

 3. 能力的证明:客户或团队的合作前提,很多时候是基于共同的语言和理解,ABAP OOP我们可以不用,但却不能不懂,即便我们不使用OOP,也要让人觉得你是基于某些考虑没有使用,而不是因为不会或不熟悉而放弃使用。让大家觉得你是“不为也,非不能也”(《孟子•梁惠王上》),这样才以便继续ABAPer的高冷情怀。

 4. 获得发展的主动权:当我们掌握了这门基础而重要的技术和方法,我们才能拥有必要的知识上的储备,为能够迎接必然的平台升级而带来的冲击而做好准备,不至于临阵磨枪,亦步亦趋,从容地获得发展的主动权。

根据上文的提问回答,如果大家想继续深入学习面向对象的ABAP,可以参考本书,共同讨论学习。本书将遵从概念到实例,从实例到经验,由浅入深介绍面向对象的ABAP语言和面向对象的设计。

 

本书分为以下几个部分:

1. ABAP语言基础

传统的ABAP语言的入门,语法,关键知识点,也是面向对象ABAP的基础,有经验的ABAPer们可以略过此部分。

 

2. ABAP 面向对象设计:

介绍面向对象ABAP的概念,ABAP OOP的关键知识点,程序实例,此部分主要介绍的是ABAP OOP的语法和规则。

 

3. 面向对象程序设计思想:

面向对象的一些重要概念的理解和深入讨论,此部分也是作者和一些经验丰富的传统ABAP开发者们讨论的结果,对于资深的传统ABAP开发者来说,迅速掌握面向对象的ABAP的语法并开始用OOP规则写程序都不是什么难题,难的是传统语言开发者对面向对象的设计思想和概念的理解和认可,此部分就是针对面向思想和一些设计原则和模式的讨论。

 

4. 面向对象程序设计实例:

此部分是对一些面向对象ABAP的工程实践的总结,如动态创建数据,泛型,OOALV,对象持久化等实例。并且讨论了面向对象的分析设计过程,如OOA,OOD,ABAP的敏捷开发Agile Scrum,单元测试等。

本书所有的代码均运行调试通过,示例代码可以从中下载。

 

 

本书内容结构

第一部分:第一篇 ABAP语言程序设计基础(第1章-第2章)

SAP ABAP 程序设计基础,此部分介绍传统ABAP的核心知识,同时也是面向对象ABAP的必要基础。

 

第二部分:第二篇 面向对象ABAP语言程序设计基础(第3章-第4章)

通过实例说明SAP ABAP OOP的基础知识。介绍如何创建面向对象程序,和ABAP OOP的概念,OOP的基础语法等。

 

第三部分:第三篇 面向对象程序设计概念与思想(第5章-第7章)

是面向对象的重要概念和设计思想,这些概念的实现都使用ABAP OOP实现。

 

第四部分:第四篇 面向对象程序设计实例(第8章-第9章)

通过一些工程应用实例,解说SAP ABAP OOP的工程应用设计和模式应用。

 

本书所有的代码均运行调试通过,所用测试系统环境有两个:

1. ABAP OOP on ECC部分:

 IDES EHP7 for SAP ERP 6.0;

SAP Basis Component SAP_BASIS 740;

SAP_ABA 740;

数据库为MS SQL Server 2008 R2

 

2. ABAP for HANA部分:(代码中会标注为HANA 1610)

SAP S/4 HANA 1610;

SAP Basis Component SAP_BASIS 751;

SAP_ABA 75B;

数据库为SAP HANA Database

SAP HANA Studio环境:

Eclipse Neon 3 Release (4.6.3)

SAP_HANA_CLIENT: SAP HANA Lifecycle Management 1.00

 

读者对象与声明

本书结合实际开发案例,系统地讲解了SAP ABAP面向对象程序设计的基础与原理,面向对象设计的重要概念和思想,本书中的程序示例都采用了面向对象ABAP以及HANA平台上的ABAP代码进行实现。

本书适合实施企业的SAP ERP开发者,项目经理,技术与业务顾问,企业内部的SAP ERP开发者与业务顾问,以及大专院校的相关专业的师生阅读和参考。

SAP实施公司和企业内部的SAP ERP ABAP技术顾问,可以略过入门级别的ABAP基础内容,参考面向对象的设计思想和概念的部分,对比传统的开发思路的不同之处。

SAP实施公司的项目管理人员和业务顾问,可以从ABAP语言入门开始逐步了解到ABAP面向对象的设计,了解语言和功能的逐步更新。

本书也适合大专院校计算机科学与技术,软件工程,信息管理,信息科学等专业的师生参考。

本书遵循着能从入门到熟练的步骤,尤其适用于刚开始学习SAP ABAP和在S/4 HANA平台上开发的读者。

 

本书在编辑过程中参考了大量资料,包括SAP官方资源,图书及网络资源等,为了遵守相关的保密原则和职业道德,作者对客户和任职公司的商业秘密和数据未作任何披露,本书仅采用了作者在多年的实际工作中遇到的真实业务场景和设计方法,用于说明程序设计的一些经验。

限于本人的水平有限,就本书中的不足之处和错误,敬请联系作者邮箱:[email protected],欢迎指正。

 


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭